使用 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);