JMeter 连接Redis

使用 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
原文地址:https://www.cnblogs.com/scholars-xian/p/11751963.html