小程序区分用户是通过token,由于token都有一个有效期,数据库中很多token都失效了,必须要登录后获取最新的才有效,只是接口压测没有登录环节,所以想搞个自动化自动登录并获取token到文件中,再从文件中获取token执行接口压测;
1.下载一个 fastjson-1.2.79.jar 包到jmeter安装目录的lib或lib/ext 文件夹中。
https://pan.baidu.com/s/1-uNbQp5HKc6A2ui1eweaoA?pwd=v8v3
提取码:v8v3
2.重启jmeter后,在http请求处添加一个后置处理器 BeanShell PostProcessor
3.在处理器中添加以下内容即可
import com.alibaba.fastjson.JSONObject;
//备注:BeanShell PostProcessor中代码如下:
//JMeter的内置API:prev.getResponseData()获取请求的响应内容
byte[] responseData = prev.getResponseData();
//①仅以文件名作为filepath的值,则导出的文件会默认保存在Jmeter安装路径的bin(即JVM的启动路径);
//private String filePath = "${ExportExcelName}";
//②指定绝对路径
private String filePath = "E:/jmeter/storeuser-token.csv"; //存放response内容的csv路径
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
JSONObject json =JSONObject.parseObject(new String(responseData));
String token_=json.getJSONObject("data").getString("token")+","+json.getJSONObject("data").getString("sid")+","+"`"+json.getJSONObject("data").getString("phone");
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(filePath, true)));
out.write(token_+"\r\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
4.执行jmeter(执行过程中excel需处于关闭状态,否则写不进去)
1)第一次创建文件时执行后内容如下:
2)清空文件内容后执行,第一行为空,截图如下:
3)txt开启状态可以写入,重新打开显示新内容。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理