需求
批量执行100个接口并提取返回的json中的数据保存到本地txt文件
实现
1.循环控制器
线程组下添加循环控制器,循环次数100次
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”的形式,参数间以“&”连接
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