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包引用或改写插件的方法实现

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值