Jmeter接口实战(二)之get请求结果写入文件
第二式:get请求结果写入文件
文章目录
- Jmeter接口实战(二)之get请求结果写入文件
- 前言
- 一、效果图
- 二、知识点分析
- 1.获取页面数据的接口怎么找
- 2.json提取器
- 使用场景①:提取一个值,例如token
- 使用场景②:同一个字段出现多次,全部提取出来,例如响应中ID出现10次
- 3.Beanshell将数据写入文件
- 总结
前言
本系列文章将会教你由浅入深,快速上手Jmeter。
场景:要写一个审核接口的压测,发现传入的参数是变化的,例如ID,number之类的,那我就要在审核接口前实时获取一下这些参数信息,两种方法:
①简单点直接JDBC连数据库,写SQL取值
②有些时候不方便连数据库怎么办呢,那就通过接口获取一下吧
一、效果图
先上效果图,思路:一般打开某个菜单时,会有一个获取数据接口,我们拿到response之后,从众多的响应数据中,利用json提取器提取出想要的字段信息,然后写入文件中,方便下一个接口取数据用。
import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
File file = new File("${filepath}"+"test.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String data="";
for(int i=1;i<=Integer.parseInt("${page}");i++){
data += vars.get("taskid_"+i)+","
+ vars.get("CCID_"+i);
if(i != Integer.parseInt("${page}")){
data = data + "\n";
}
}
bw.write(data);
bw.close();
二、知识点分析
1.获取页面数据的接口怎么找
瞪大你铜铃般的小眼睛看看,假如你当前页面有10条数据,打开F12,看preview,找一个有一列数字的接口,数值和当面页面数据条数相对应,把这个接口填到jmeter里面,给两个例子看看
这个是在csdn中进行搜索拿到的接口数据
2.json提取器
使用场景①:提取一个值,例如token
右键–》添加后置处理器–》json提取器
使用场景②:同一个字段出现多次,全部提取出来,例如响应中ID出现10次
如果想取10条数据的taskid,怎么写呢
分析:
1.首先是一个根节点,下面找到detaDetail–>$.detaDetail
2.在下面是一个数组,每个数组下面都有字符串,类似这种[{…},{…},{…}…]
我想取的是每个字符串里面的taskid,这就表示把[]
中每个taskid都取出来
$.detaDetail[*].taskid
3.如果只想取指定花括号下的taskid怎么写呢,想取第几个,n就写几
$.detaDetail[n].taskid
4.如果想取多个字段的值,中间用分号隔开
3.Beanshell将数据写入文件
右键–》添加后置处理器–》添加beanshell postprocessor
里面有两个参数${filepath}–》是要写入的文件的路径,可以添加一个配置原件【用户自定义的变量】,或者在测试计划下面添加变量,很灵活的,怎么喜欢怎么来
用户自定义的变量
测试计划变量
${page}是我取数接口中的条数,这个条数,我想根据压测情况来自定义值
来看下具体写法
先创建文件,然后把参数以逗号分隔进行拼接,然后写入文件中
import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
// 创建文件
File file = new File("${filepath}"+"test.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String data="";
// 拼接参数
for(int i=1;i<=Integer.parseInt("${page}");i++){
data += vars.get("dw_taskid_"+i)+","
+ vars.get("dw_CCID_"+i);
if(i != Integer.parseInt("${page}")){
data = data + "\n";
}
}
// 写入文件
bw.write(data);
bw.close();
总结
tips:在选项下面有个【日志查看】执行脚本时,可以打开日志,注意路径中有中文符号时,日志会报错,改成英文格式即可
我觉得两点比较重要吧
①json提取器提取多个值,要用星号去匹配
②beanshell将结果写入文件,需要有一点代码基础,或者能看懂大概复制粘贴也行,最重要的是,要根据自己的业务接口去思考。
下期预告,讲讲怎么读取文件中的数据,小伙伴们要有耐心多多练习呀~