使用 jp@gc - Redis Data Set 连接Redis(只能获取List、Set类型的数据)
1、在JMeter Plugins Manager 中安装插件 Redis Data Set,重启JMeter
2、右键添加配置元件 jp@gc - Redis Data Set
3、填写相关信息
Redis key:Redis中的key,Redis数据库中列表(有序数据)或集(无序数据)的名称
Variable Names:由数据集导出到测试元素的变量的名称(设置取出来的value存放在哪个变量中)
Delimiter:存储在Redis列表或集合中的行中使用的分隔符(取出的value有多个值时,变量名之间的分隔符)
Date Sources Type:数据源类型,有List、Set两种选择,String、hash、zset类型取不到(在JMeter 3 中RANDOM_REMOVE 对应 List,RANDOM_KEEP 对应 Set)
Timeout for connection in ms:连接超时时间
Recycle data on use:是否循环使用数据
Redis server host:Redis服务器地址
Redis server port:Redis服务器端口
Password for connection:连接Redis的密码
Database:数据库名称,连接Redis的第几个数据库,默认为0
whenExhaustedAction:当Redis连接池被分配时的操作,GROW(自动新建一个实例)、BLOCK(阻塞,超过等待时间后抛出异常)、FAIL(失败,直接抛出异常)
使用Java代码连接Redis
1)安装Redis Data Set,或下载 jedis-2.2.1.jar 放入lib目录
2)右键添加 BeanShell Sampler,代码如下:
import redis.clients.jedis.Jedis; String tag = vars.get("environment"); if(tag.equals("future")){ String ip = vars.get("redis_ip"); int port = Integer.parseInt(vars.get("redis_port")); String auth = vars.get("redis_auth"); Jedis jedis = new Jedis(ip,port); jedis.auth(auth); jedis.select(0); String str = vars.get("securityId"); String key = "KAPTCHA_SESSION_KEY_ID:"+str; String value = jedis.get(key); vars.put("securityCode",value); //future环境从Redis中取数据 }else{ vars.put("securityCode","1234"); //UAT环境使用1234 }
处理String、list、set 类型的数据
//处理String、list、set 类型的数据
String key = "KAPTCHA_SESSION_KEY_ID:3p6ubdda90n";
jedis.set("1234");
String value = jedis.get(key);
处理 hash 类型的数据
//处理 hash 类型的数据 String key = "spring:session:sessions:015644a2-2e3e-4191-b204-c2ae4e9702b8"; String filed = "sessionAttr: KAPTCHA_SESSION_KEY"; jedis.hset(key,filed,1234); int value=jedis.hget(key,filed);
使用 Python 连接 Redis
地址:https://github.com/MicrosoftArchive/redis/releases
import redis class ConnectionRedis: def connection_redis(self, host, port, password, db, key): conn = redis.Redis(host = host, port = port, password = password, db = db, decode_responses=True) value = conn.get(key) if len(value) > 0: return value else: return False