MeterSphere自动化测试的循环控制使用教程
1 循环控制器及示例
通过使用循环控制器,可以重复执行循环控制器下的子步骤,目前 MeterSphere 提供了 次数循环、ForEach 循环 和 While 循环 三种循环方式
1.1 循环变量
- 列表变量:除ForEach循环外,其他循环里面的请求可填写【列表变量名_下标】,执行循环可从列表变量中取值,但是不会自动循环取值,只能根据下标取值。
- 计数器:计数器可直接使用变量名引用,在所有循环控制器里都不会循环取值,只会取值一次,如设置计数器从1开始到10结束,循环控制器设置为次数循环,则每次循环都会取为1,不会依次取为1,2,3……
- 随机数:随机数可直接使用变量名引用,在所有循环控制器里的值都会随循环次数更新。
- csv文件:ForEach循环暂时不支持读取CSV文件中的变量,在while和次数循环中可直接使用变量名引用,会随每次循环自动取下一个值。
1.2 次数循环及示例
1.2.1 说明
次数循环是最简单的循环方式,设置循环次数x次,循环间隔时间x ms后,即可执行循环。
参数说明:
- 循环次数:该循环控制器下的子步骤总共执行的次数。
- 循环间隔:每次执行间的时间间隔,以毫秒为单位。
- 成功后是否继续循环:选项,默认开启,意思是执行接口或脚本成功后继续下一次循环,当前循环下只有一个请求时可开启或关闭,有多个请求时只能开启。关闭后请求执行成功则停止循环。可以用在异步请求后轮询查询执行结果的场景,当查询结果符合预期时终止循环,避免多余的查询操作。
1.2.2 示例1
开启 成功后继续循环,循环总共执行了 5 次。
关闭 成功后继续循环,由于循环下的请求第一次便执行成功,循环仅执行了 1 次
1.2.3 示例2
若有设置列表变量,循环里面的请求可填写【列表变量名_下标】,执行循环可从列表变量中取值,但是不会自动循环取值,只能根据下标取值。
1.2.4 示例3
若有设置csv场景变量,循环里面的请求可填写csv变量名,执行循环会从csv变量中取值,取完所有值后会循环取值
1.3 ForEach循环
1.3.1 说明
ForEach 循环一般配合列表变量使用,例如存在 ID_1,ID_2,ID_3 形式的一组变量时,可以通过 ForEach 循环使用其中每个 ID 发送特定请求。
参数说明 - 输出变量名称:在循环中可以通过该变量引用到列表变量中当前迭代的变量值。
- 输入变量前缀:列表变量的变量前缀。
- 循环间隔:每次执行间的时间间隔,以毫秒为单位。
1.3.2 示例1
在场景变量里设置列表变量或常量。列表变量可正常设置,常量变量设置在设置变量名时需增加后缀(设置方式如下图)
列表设置:
常量设置:
系统引用时会自动增加后缀。变量有几个就循环几次,所有变量取值完后停止循环。图中请求中的name变量从列表变量/常量变量中进行遍历取值
1.3.3 示例2
变量引用CSV文件和列表来控制,变量设置如下
Foreach循环引用如下
1.4 While循环及示例
1.4.1 说明
While 循环更为灵活,当配置的条件满足时循环会一直进行。While循环可配合常量变量或csv变量使用。根据循环条件设置和超时时间设置进行循环,条件为true时进行循环,条件为false停止循环。循环条件设置里的变量可从场景变量中取值,也可从csv文件中取值。
参数说明:
- 变量:要进行判断的变量。
- 判断条件:变量与期望值的比较方式。
- 值:要对变量进行判断的值。
- 循环超时时间:由于 while 循环的特殊性,当条件满足时将会一直循环,为了避免死循环的情况出现,用户可以配置循环超时时间,到超过该事件后,不管循环条件是否满足,循环都将被终止。
1.4.2 示例1
在while节点前添加了一个自定义脚本,给变量赋值
设置while节点的条件
1.4.3 示例2
循环条件设置里的变量从场景变量csv文件中取值