Jmeter5-连接redis

应用场景:
使用手机验证码登录时,需要从redis缓存中获取短信验证码。
目前想到了两种方式,
1.使用BeanShell取样器直接连接redis;
2.使用BeanShell取样器调用Python脚本连接redis。

1、使用BeanShell取样器直接连接redis

首先,添加配置元件-用户定义的变量,添加变量服务器ip,端口号,秘钥,key值
在这里插入图片描述
然后,添加HTTP请求-发送短信验证码
在这里插入图片描述
接着,添加BeanShell取样器连接redis
在这里插入图片描述
代码:

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 = 0;  //redis db
String key2 = "${redis-key}";  //key值
print(key2);
String value = "";
 
Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
 
jedis.select(index);
//String get = jedis.incr(key).toString();//将 key 中储存的数字值增1
String phone_code = jedis.get(key2); //获取key值对应的value值
print(phone_code);
vars.put("phone_code",phone_code);  //将value值保存为变量

可以添加Debug PostProcessor查看连接redis是否成功
在这里插入图片描述
根据key值取到了value值代表连接redis成功了

2、使用BeanShell取样器调用Python脚本连接redis

在这里插入图片描述
代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

String command="cmd /c python D://python_work//automation//get_message_code.py -t ${phone}";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
pr.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
StringBuilder response = new StringBuilder();
while ((line = b.readLine()) != null) {
    response.append(line); 
}
String response_data = response.toString();
System.out.println(response_data);
b.close();
//System.out.println(response.toString());
vars.put("phone_code",response.toString()); //把结果赋值给变量phone_code ,方便后面调用

Python脚本:
在这里插入图片描述
在这里给大家讲解一下怎么利用cmd给Python脚本传参
废话不多说,直接上实例

import sys

print('有',len(sys.argv),'个参数')
print('参数类型type(sys.argv):',type(sys.argv))
print('打印参数:',sys.argv)
print('打印第一个参数:',sys.argv[0])
a=sys.argv[1]
b=sys.argv[2]
print(a,b,type(a),type(b))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值