Jmeter批量执行接口并持续输出变量到txt文件

需求

批量执行100个接口并提取返回的json中的数据保存到本地txt文件

实现

1.循环控制器

线程组下添加循环控制器,循环次数100次

Jmeter批量执行接口并持续输出变量到txt文件

2.从csv文件中批量读取接口地址

分析需要批量执行的接口发现接口格式为https://xxx.com/api/queryPTZPag?pageNum={num}

变量num为1-100

用python简单一个for循环生成所有的接口地址,此处不再列出

添加csv数据文件设置,变量名称分别代表从第一列开始依次向右的列,如果再csv文件中第一行写明了变量的名称,可勾选“忽略首行”

例如:

case_id:每个接口的序号;apiName:接口名称; url:接口域名;api:接口地址;method:接口请求方式 ;puepose:描述接口验证类型;parameter:接口所需参数拼接,以:“mobilephone=13129154220&pwd=123456”的形式,参数间以“&”连接

Jmeter批量执行接口并持续输出变量到txt文件

Jmeter批量执行接口并持续输出变量到txt文件

http请求中直接调用变量即可,${变量名}

3.提取json所需内容

JSON提取器说明:

**Apply to:**应用范围

**Names of created variables :**接收值的变量名,自定义,多个变量用分号分隔

JSON Path expression: json path表达式,也是用分号分隔

Match No.(0 for Random):
0表示随机;
n取第几个匹配值;
-1匹配所有。
若只要获取到匹配的第一个值,则填写1

**Compute concatenation var(suffix_ALL)😗*如果找到许多结果,则插件将使用’ , '分隔符将它们连接起来,并将其存储在名为 _ALL的var中

Default Values: 缺省值,匹配不到值的时候取该值,可写error。
例如:

$.data.result[*].data.tradeTitle
$表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到result,[*]表示该节点下有多个子节点。然后找到data,再找到tradeTitle

4.BeanShell后置处理程序将循环提取的json以追加写入的方式保存到本地文件

FileWriter fstream = new FileWriter("D:\\1.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("urls_ALL")+",");
out.close();
fstream.close();

参考内容:
https://www.cnblogs.com/zhangwuxuan/p/12404111.html
https://blog.csdn.net/you_you0329/article/details/116016677
https://blog.csdn.net/qq_36717210/article/details/124613539
https://www.cnblogs.com/whitewasher/p/9504728.html

性能测试

测试中并发用户数的获取及性能指标之间的关系

2022-12-21 10:14:05

接口测试脚本

Postman用JavaScript前置脚本处理接口验签

2023-4-21 16:14:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索
Array ( [0] => post [1] => user [2] => document [3] => newsflashes )