一、背景
在使用 MeterSphere 做接口测试过程中,有时候会碰到一些场景,后置脚本的列表数据作为接口参数传递,而 MeterSphere 循环控制器中的 ForEach 循环不支持这种列表循环,目前只支持列表前缀方式循环,例如存在 ID_1,ID_2,ID_3 形式的一组变量时,可以通过 ForEach 循环使用其中每个 ID 发送特定请求。那么脚本的列表数据如何通过循环控制器参数传递?以下以后置脚本列表数据为例介绍如何通过循环控制器参数传递。
1.后置脚本存储列表数据
后置脚本创建一个列表,然后遍历列表数据,将遍历的数据以 id_1,id_2 形式存储。
代码如下:
import java.util.ArrayList;
import java.util.List;
//创建列表
List<String> sites = new ArrayList<String>();
//在列表里加入数据
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
int num=1;
for (int i = 0; i < sites.size(); i++) {
//循环列表,将列表的数据以id_1,id_2方便存储
String index= "id_"+num;
vars.put(index,sites.get(i));
num+=1;
}
添加循环控制器,类型选择 ForEach 循环,变量前缀填写上一步存储的 id,定义变量名称可以自定义。我这里填的是 i ,然后加自定义脚本输出。