zoukankan      html  css  js  c++  java
  • 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包引用或改写插件的方法实现

  • 相关阅读:
    PAT 1059. Prime Factors
    PAT 1058. A+B in Hogwarts
    关于树状数组
    PAT 1057. Stack
    PAT 1056. Mice and Rice
    PAT 1055. The World's Richest
    PAT 1054. The Dominant Color
    fft_filter  designed to filter gridded data in an a
    matlab 1 yr oscillations
    RMVANNUAL
  • 原文地址:https://www.cnblogs.com/susanhonly/p/10636422.html
Copyright © 2011-2022 走看看