在接口自动化的过程中,经常遇到需要遍历的参数组。jmeter中,foreach控制器可以实现遍历参数,但是只能有一个入参,一旦遇到数组,foreach控制器也无能为力。。。
为了解决这个问题,今天使用json提取器+循环控制器+计数器+beanshell请求脚本;
a) 首先我们使用easy mock构造一个json数组;
b) 使用jmeter访问该接口;http://47.98.106.11:7300/mock/5e78ac9fa71368001cbe9dcd/hui/cp;返回一组数据;
c) 添加json提取器;
json Path表达式;
$ 表示 根节点;@ 表示 当前节点; . 或 [] 表示子节点;.. 表示所有符合条件的节点;* 表示所有节点; [ ] 迭代器标示,如数组下标;[,] 支持迭代器中做多选;() 支持表达式计算;
d) 添加循环控制器;debug请求中可以看出peop_matchNr代表数组的参数个数;所以循环控制器中循环次数取该值;
e)总循环次数弄清楚了,那每次取哪个参数呢?可以添加Counter计数器,计数,并将此数字
传递给请求使用;
f) 添加 BeanShell请求;新建文件,读取数据,并将数据写入文件夹;