简单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