JMeter逻辑控制器之ForEach Controller


ForEach控制器循环遍历一组相关变量的值。当您向ForEach控制器添加采样器(或控制器)时,每一个线程下执行时该控制器下的采样器(或控制器)都会执行一次或多次,在每次循环中变量都有一个新值。输入应该由几个变量组成,每个变量都有下划线和数字。每个这样的变量都必须有一个值。一般和用户自定义变量(User Defined Variables)一起使用,其在用户自定义变量中读取一系列相关的变量。例如,当输入变量的名称为inputVar时,应该定义以下变量:

  • inputVar_1 = wendy
  • inputVar_2 = charles
  • inputVar_3 = peter
  • inputVar_4 = john
    用户自定义变量如下图所示:
    在这里插入图片描述

参数介绍

ForEach Controller界面如下图所示:
在这里插入图片描述

属性描述必填
Name控制器名称,可以根据实际情况进行设置
Comments注释,描述在业务中的作用
Input variable prefix输入变量前缀
Start index for loop(exclusive)循环变量的起始索引,默认从0开始
End index for loop(inclusive)循环结束的索引,默认从0开始
Output variable name输出变量名称,提供给其它控件引用
Add“_”before number输入变量名称中是否使用“_”进行间隔。

与自定义变量一起使用

在这个示例中,我们创建了一个测试计划,我们将线程组配置为单个线程并且循环次数设置为1,然后添加配置原件为用户自定义变量(User Defined Variables),自定义如上图所示,然后再添加一个ForEach Controller,添加一个节点为JAVA请求。ForEach 控制器配置如下图所示:
在这里插入图片描述
而JAVA请求配置如下所示:
在这里插入图片描述
执行结果如下图所示:
在这里插入图片描述

循环变量下标起点

如果不写,默认从下标为0开始,即从Wendy开始执行。如果写1,即从“charles”开始,如果超过变量数量,则不会执行

循环变量下标终点

如果不写,默认最后一个终止,即“jona”终止;如果写1,则在“charles”终止。
在上面的示例中,下标起点为1,下标终点为3,则执行结果如下图所示:
在这里插入图片描述

正则表达式提取数组数据

假如有这样一个业务有多个订单,我们查询到每笔订单后根据订单号进行出库,所以我们就需要遍历每一笔订单。那么此种情况下我们真好可以用ForEach Controller。
在这个示例中,我们创建一个测试计划,我们将线程组配置为单个线程并且循环次数设置为1,我们需要登录用户后将查询订单,然后在订单请求下添加一个后置处理器(正则表达式提取器),如下图所示:
在这里插入图片描述
然后再添加一个ForEach控制器,并在该控制器下添加一个出库请求的取样器。如下图所示:
在这里插入图片描述
订单取样器需要获取订单号${returnval}(即控制器生成的变量名),设置如下所示:
在这里插入图片描述
执行结果如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值