在做性能测试的时候,需要模拟多个不同的用户同时进行操作,此时可以将响应数据中的某些字段(比如token字段)提取出来,以供下一接口作为入参。
一、将响应结果中的字段提取,并保存至CSV文件【分为2个步骤】
1) 将响应结果中的字段提取
json提取:https://blog.csdn.net/Moonlight_16/article/details/119797715
正则提取:https://blog.csdn.net/Moonlight_16/article/details/122253904
2) 将提取出来的字段保存至csv文件中【需本地文件夹中先新建该文件,token.csv】
后置处理器: BeanShell PostProcessor,具体代码见下:
//导入json包
import org.json.JSONObject;
//写入文件
//本地存储文件路径
FileWriter fs=new FileWriter("D://study//jmeter//token.csv",true);
BufferedWriter out=new BufferedWriter(fs);
//提取出来的token,并通过,换列
out.write(vars.get("token")+",");
//换行
out.write(System.getProperty("line.separator"));
//关闭文件
out.close();
fs.close();
3) 添加线程数,执行请求,运行jmeter
手机号随机函数:137${__Random(17090000,17099999,)}
4) 运行结束后,查看csv文件
二、读取CSV文件
1)添加->配置文件->csv 数据文件设置
2)设置对应字段:
文件名:
如果csv文件放在jmeter的bin目录下,可以只写文件名即可(建议:脚本和csv文件都放在Jmeter的bin目录下,避免分布式执行时踩坑);
如果csv文件在别的地方,则需要填写完整的路径:D:/soft/jmeter/token.csv
文件编码:UTF-8
变量名称:token---相当于表格中的“列名”
忽略首行:true
分隔符:默认是逗号,可改
备注:
1、JMeter运行时报Typed variable declaration : Class: JSONObject not found in namespace解决方案
因为${JMETER}\lib\下缺少json.jar包,下载链接如:
https://pan.baidu.com/s/1KFDUIq40BhUXcy2NYo7YkA 密码: c91m