接口测试如何使用多个List进入ForEach循环控制器

经常会有同学问到,ForEach循环控制器只能遍历一个列表,但是实际中多个列表需要同时遍历该怎么办呢?
image
image
image
这种情况可以使用一个列表进行ForEach循环,同时配合计数器获取当前循环次数,也就是遍历次数,根据遍历次数,结合函数拼接或者嵌套引用来达到遍历其他列表的效果。

提取多个列表

设置计数器

在场景变量中添加计数器。

使用ForEach循环控制器

使用ForEach循环控制器遍历name列表。

嵌套引用其他列表和计数器遍历

使用嵌套引用${__BeanShell(vars.get(“var_${num}”))},达到遍历多个列表的效果。



如上图所示,第一个步骤提取的所有列表都在循环控制器中实现了遍历引用。

2 个赞

我刚刚试了下 ,不行啊 ,${BeanShell(vars.get("finance_name${num}"))} ,没有取到值

${__BeanShell(vars.get(“finance_name_${num}”))}
要这样,因为语法问题,有个下划线展示不出来。

这篇文章讲的就是用ForEach循环。

使用计数器,双层循环就不行了。

请问列表型场景变量怎么转义逗号?里面有一个值有逗号,就直接隔开了。
比如a,b,(a,b) 期望的第三个元素是(a,b),但是循环里面变成了四个循环。

这种情况,你可以使用脚本中自定义的变量做为计数器,也就是在不同的循环中让不同的计数器变量加1,而不使用场景变量中的计数器。

不可以哦,列表类型场景变量一定会按照逗号分隔的,不可以转义。建议把逗号换成其他符号吧。