Jmeter各Element介绍4:ForEach控制器

ForEach介绍

ForEach控制器(官方文档)是jmeter提供的另一种循环控制器。遍历一个变量集合,循环运行被其包裹的其他控制器,用shell脚本模拟ForEach:

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/bash

__jm__foreach_1__idx=0 # Jmeter暴露出来的循环计数
inputVar=`seq 5`

for _ in $inputVar; do
# do somthing & returnVar=xxxx
returnVar="return ${__jm__foreach_1__idx}"
__jm__foreach_1__idx=`expr ${__jm__foreach_1__idx} + 1`
done

ForEach遍历变量时所有变量名应该符合这个规则:变量名前缀_数字(注:现在下划线已变更为可选项),在ForEach控制器的设置中,设置好前缀和起,止编号,Jmeter会自动根据规则引用变量。

ForEach控制器和While控制器一样,可以通过变量__jm__controller_name__idx来获取当前循环计数,计数从0开始。如下图例子中__jm__foreach_1__idx

ForEach控制器

这玩意儿有啥用

ForEach控制器特别适用同一个接口,同一参数,但是需要验证参数各种取值(或比较多的取值)时,可将参数存在一个set/一组变量中,然后使用ForEach控制器