Jmeter——ForEach Controller&Loop Controller

今天来分享下Jmeter中的2款循环控制器,ForEach Controller和Loop Controller,在使用上还是有所区别。

ForEach Controller ForEach Controller简介

ForEach Controller可以理解为迭代器(iterator),就是遍历当前符合条件的所有数据,可用于Jmeter脚本中的参数化。

我们直接看图来说,如下所示:

Jmeter——ForEach Controller&Loop Controller

如上所示,就是ForEach Controller的配置界面,界面有如下参数,一一讲解:

Name:控制器名称,可根据用户需要任意填写,也可不填

Comments:用户可根据需要任意填写,也可不填

Input variable prefix:输入变量前缀,数据来源:①用户可以在“用户自定义变量”中定义一组变量,循环控制器可以从中获取到变量对应值,然后作为循环条件;②用户可将提取的参数作为循环条件

Start index for loop(exclusive): 开始循环字段,循环变量下标起点(不包含)

End index for loop(inclusive):循环变量下标终点(包含)

Output variable name:输出变量名称,循环控制器生成的变量名称,引用时填写的参数名称与输出变量名称一致

Add "_"before number?:数字之前加上下划线“_”,变量前缀是否加“_”作为分隔符

ForEach Controller使用

我们直接通过案例来看,ForEach Controller如何使用。如上所述,变量的来源,取自于2种情况,那我们就一一了解下。不过在操作之前,各自要有Jmeter环境哦,环境配置可以参考以前博文。

用户定义变量

用户定义变量是配置元件中的一个元件,可定义参数,便于后续接口直接使用,也是参数化的一种方式。元件添加入口如下所示:

Jmeter——ForEach Controller&Loop Controller

我们来定义一组数据,我就以自己的博客为例了,配置参数后,如下所示:

Jmeter——ForEach Controller&Loop Controller

我们可以看出,变量名称是有规律可循的,都是以wd_number开头。或许有疑问,为什么要这样来设置,继续往下看,马上就能知道其作用了。

参数来源我们配置好后,这就需要在ForEach Controller配置对应数据了,跟上节奏一起来。

我们在之前ForEach Controller简介中了解到,有个参数是Input variable prefix 输入变量前缀,在这里输入的内容就是wd_number。因为我们在用户定义变量的元件中,配置的一组数据都是以此开头的。

Start index for loop(exclusive)和End index for loop(inclusive)可以不配置,非必填数据。如果配置的话,需要注意的是,起始位是不包含的,这个到时候具体看案例截图就清楚。

Output variable name输出变量,这个参数是用于后续参数的引用名称,比如我们平时用到的正则提取器,也是需要定义一个变量的,同一个意思。

Add "\_"before number 这个是看各自定义的变量名称是怎样的,变量间有_,则需要勾选,没有的话,不勾选即可。

配置结果如下所示:

Jmeter——ForEach Controller&Loop Controller

我们再用outwd变量引用到对应接口参数中即可,如下所示:

Jmeter——ForEach Controller&Loop Controller

到现在为止,已经完成了配置步骤,我们直接来运行脚本,看下运行结果,如下所示:

Jmeter——ForEach Controller&Loop Controller

从运行的结果可以看出,我们并没有设置循环次数,可为什么是5次了,是因为我们设置的变量只有5个,并且是依次替换变量请求接口,这不就是普通的参数化嘛,是不是很简单。

刚才的结果,我们没有配置循环的起止位,现在我们配置上起止位,配置如下:

Jmeter——ForEach Controller&Loop Controller

再次运行脚本,看下是什么个结果,如下所示:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzsjd.html