概述

在接口自动化的过程中,经常遇到需要遍历的参数组。jmeter在中,foreach控制器可以实现遍历参数,但是只能有一个入参。一旦遇到数组,foreach控制器表示我也无能为力。。。

为了解决这个问题,今天教大家一个实现数组遍历的方法

涉及元件

json表达式+循环控制器+计数器+matchNr函数+beanshell脚本

案例分析

首先我们来看一个例子 。在下图中,我们需要把三组返回值中的参数遍历写入本地文件。如省份:人口

首先我们需要把通过JSON Extractor把这三组参数提取出来

 

观察debug我们可以发现这三组数据都是成对出现的。{name_1,population_1};{name_2,population_2};{name_3,population_3}。总数是通过matchNr函数计算

添加一个循环计数器,循环次数为matchNr。意思就是统计出几组数据,脚本就遍历几次

在循环控制器下面添加计数器,用于指定数据读取的行数。最大值也是matchNr计算得出的数值

在控制器下面添加beanshell脚本,用于将读取的参数遍历写入本地文件。通过计数器的函数嵌套方式,遍历每一组数据,循环写入本地文件。

FileWriter fstream = new FileWriter("D:\\\参数表.txt",true);
BufferedWriter out =new BufferedWriter(fstream);
out.write(vars.get("name_${num}")+"人口"+":"+ vars.get("population_${num}")+"万");
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();

观察响应结果

 

写入的本地文件

image.png