JMeter如何通过Beanshell使用redis呢

本文详细介绍了如何在JMeter中集成Redis,包括添加jedis.jar到JMeter目录,重启JMeter,以及通过beanshell脚本实现Redis的get、set、del等操作,还提供了相关下载链接。
摘要由CSDN通过智能技术生成

简单3步走:

1、在JMeter的安装目录下的/lib,放置jedis-3.3.0.jar

版本可以高点,例如:jedis-2.1.0.jar,在调用del方法是会报异常。

文章末尾有redis-3.3.0.jar下载链接。

2、重启JMeter

3、使用beanshell引用jar

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils

常用命令

redis 操作get

入参: redis_key

返回: getredis_value

断言:大小断言 -> 0字节

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;

// 获取JMeter【自定义变量】的redis变量信息,在beanshell中使用
// vars、变量类型的转换,可以阅读前面发的博文
String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String key = vars.get("redis_key");

Jedis jedis = new Jedis(host, port);  // 创建连接
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);  // 输入密码
    }
jedis.select(index);  // 选择redis操作的库

String redis_value = jedis.get(key); 
vars.put("redis_value",redis_value);  //将key值保存为变量

redis 操作set

入参: redis_key

           redis_value

断言:OK

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;


String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String key = vars.get("redis_key");
String value = vars.get("redis_value");

Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
jedis.select(index);

jedis.set(key, value);

redis 操作del

入参: redis_key

断言:1

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;


String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String key = vars.get("redis_key");

Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
jedis.select(index);

jedis.del(key);

redis 操作hset

入参: redis_key

            field

            redis_value

断言:1

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;


String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String redis_key= vars.get("redis_key");
String field = vars.get("field");
String value = vars.get("redis_value");

Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
jedis.select(index);

jedis.hset(redis_key,field,value);

redis 操作hget

入参: testkey

            field

返回:getredis_value

断言:大小断言 -> 0字节

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;


String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String redis_key = vars.get("redis_key");
String field = vars.get("field");

Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
jedis.select(index);

String redis_value = jedis.hget(redis_key,field); 
vars.put("redis_value",redis_value);

redis 操作hgetAll

入参: redis_key

返回: 变量名是map的key,变量的value是map的value,例如:${testfeild}=testredis_value

下图是redis缓存的值:

断言:大小断言 -> 0字节

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;


String host = vars.get("redis_host");
String password = vars.get("redis_password");
int port = Integer.parseInt(vars.get("redis_port").trim());
int index = Integer.parseInt(index = vars.get("redis_db").trim());

String key = vars.get("redis_key");

Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
jedis.select(index);

Map map = new HashMap();
map = jedis.hgetAll(key);
log.info("map的key --> " + map.keySet());
// 如果key是字符串,则定义String,如果是整型,则定义Integer
for(String key : map.keySet()) {
	log.info(key + ": " + map.get(key));
	vars.put(key, map.get(key));
    }

其他操作

判断键是否存在:

boolean keyExists = jedis.exists("mykey");

设置键的过期时间

jedis.set("mykey", "myvalue");
jedis.expire("mykey", 6010);  // 这该键将在10秒后过期

reids.3.3.0.jar下载链接

https://mvnrepository.com/artifact/redis.clients/jedis

也可以通过百度云下载:

链接:https://pan.baidu.com/s/1fCW_Nu7MtqPv0dbJlPrMYQ 
提取码:5566

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值