Jmeter2-手机验证码方式进行用户登录

使用手机验证码实现登录,调用了两个接口,一是发送短信验证码,二是用户登录。
思路:
1.使用CSV Data Set Config参数化;
2.获取时间戳;
3.发送短信验证码;
4.使用BeanShell取样器从redis缓存中获取短信验证码;
5.用户登录;
6.使用jp@gc - JSON/YAML Path Extractor获取token;
7.使用CSV Data Set Config将token写入csv文件。
思路理清楚了,开干!!!

一、使用CSV Data Set Config参数化

在这里插入图片描述

在这里插入图片描述

二、获取时间戳

大家一定很好奇,获取时间戳干嘛使啊,那是因为发送短信验证码接口的入参包含了时间戳,如步骤二所示。
使用BeanShell取样器获取时间戳
在这里插入图片描述
备注:timestamp以${timestamp}的形式被同一线程组内的线程引用。

三、HTTP请求-发送短信验证码

在这里插入图片描述
备注:变量${phone}是步骤一中设置的变量phone,变量${timestamp}是步骤二生成的时间戳

四、使用BeanShell取样器从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脚本:
在这里插入图片描述

五、HTTP请求-用户登录

在这里插入图片描述
备注:变量 a e s p h o n e 是 步 骤 一 中 设 置 的 变 量 a e s p h o n e , 变 量 {aes_phone}是步骤一中设置的变量aes_phone,变量 aesphoneaesphone{phone_code}是步骤四从redis缓存中获取的短信验证码

六、使用jp@gc - JSON/YAML Path Extractor获取token

接口返回的json响应结果格式如下所示
{
“msg”:“登录成功”,
“code”:“1”,
“data”:{
“userType”:“01”,
“accessToken”:“fadc8c84b548e7508a4b3f78489”
}
}
1.安装插件JSON/YAML Plugins;
2.添加一个jp@gc - JSON/YAML Path Extractor;
在这里插入图片描述
在这里插入图片描述
备注:token以${token}的形式被后续请求引用

七、使用BeanShell后置处理程序将token写入csv文件

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

FileWriter fstream = new FileWriter("D:\\朗新科技\\项目资料\\锡证通\\性能测试\\token.csv", true);//定义本地文件路径
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("phone"));//写入手机号
out.write(",");//换列
out.write(vars.get("token"));//写入token
out.write(System.getProperty("line.separator"));//换行
out.close();
fstream.close();

在这里插入图片描述
备注:token值为error的数据,是因为手机号没有被注册,所以回写缺省值error
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值