JMeter連接及操作Redis


 背景介紹

問題背景:業務數據中多個字段做唯一性自增,但是相同業務層面的數據希望存在同一張表中,無法使用Mysql主鍵自增功能實現。
目前實施:封裝redis連接與調用的方法,數據由Redis自增生成。
優 點:利用Redis寫入讀取內存的優勢,保證數據唯一性。
影 響:使用JMeter進行接口自動化或模擬並發時,由Redis自增生成的值無法獲取作為接口入參。

以下是使用BeanShell Slamper實現的,具體步驟如下:

一、下載插件

  • 下載Plugins Manager JAR文件:https://jmeter-plugins.org/get/
  • 將文件復制到JMeter的lib/ext目錄下

  啟動JMeter后可看到剛才添加的插件管理器

  • 通過插件管理器添加redis插件 

  添加后可在ext中看到插件已添加成功

二、抽取Redis連接信息

 

三、添加BeanShell Slamper

import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;
 
String host = "${redis-host}";  //服務器地址
int port = ${redis-port};  //端口號
String password = "${redis-password}";  //redis密碼
int index = 6;  //redis db
String key = "${key}";  //key值
String value = "";
 
Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
 
jedis.select(index);
String get = jedis.incr(key).toString();
//String get = jedis.get(key); 
vars.put("get",get);  //將key值保存為變量

四、添加Debug Slamper確認結果

  與Redis一致

拓展

1.業務數據的唯一編碼往往使用時間流水如‘2019030900001’,時間流水可用公共方法生成
2.BeanShell調用略顯麻煩,考慮使用JAR包引用或改寫插件的方法實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM