Jmeter进阶篇13-ForEach控制器遍历调用JSON提取器得到的数组

使用Jmeter时进程会遇到这样一种情况,上一个请求得到的数据为json格式,下一个请求要将上一个请求结果的某个参数作为入参全部完整遍历一遍,而且这个结果有多个值。

如:
有一个人员列表,默认为10条数据,列表中每条数据都有头像的图片显示。
业务逻辑实现为,先获取人员列表信息,再通过列表人员中的头像id为参数,重复去调用一个下载头像的接口。

实现如下:
在获取人员列表请求中添加后置处理器-JSON提取器
Jmeter进阶篇13-ForEach控制器遍历调用JSON提取器得到的数组

其中
portraitIds表示得到的一组结果的变量名前缀
$.data.pageBean.list[*].portraitId表达式可以匹配到多个值,为列表中所有人员的头像的id
Match No.值填写-1 ,表示匹配所有结果,并将结果保存为portraitIds_1、portraitIds_2、……portraitIds_n

然后将下载头像的接口放置在ForEach控制器下,ForEach控制器配置如下
Jmeter进阶篇13-ForEach控制器遍历调用JSON提取器得到的数组
由于上面的结果保存格式为portraitIds_n,是有下划线“”的,所以此处需要勾选“数字之前加上下划线“””选项,将变量portraitId引用为下载头像所使用的参数,即可完成遍历列表头像下载的操作了。

Jmeter进阶篇13-ForEach控制器遍历调用JSON提取器得到的数组