JMeter循环控制器的使用

if逻辑控制器

假设我们在创建脚本的时候,有个场景是期望根据不同的服务器 ip 去压测不同环境的接口,如我们需要即测试 test环境,又测 online环境,只需要通过逻辑控制器去判断不同环境的区域即可。

首先我们创建一个if循环控制器,点击「添加」–> 「逻辑控制器」–> 「如果(if)控制器」
在这里插入图片描述
这里我们在if控制器中,写入条件表达式 ${__jexl3("${host}" == "localhost")}

在这里插入图片描述

  1. if控制器的表达式为 ${__jexl3(判断条件)}。 这里我们有一点需要注意的时,假设我们判断的数据,他是一个字符串形式的话,那么他的表达式我们都需要给他加上双引号。
  2. 如上方图中,我们判断 请求的 host 是否是本地,则判断条件为"${host}" == "localhost" ,我们可以看到,"${host}"是加了双引号的。
  3. 如果我们判断的条件是数字,如 ${__jexl3(${num} == 0)},是数字条件的话,则不需要加双引号

在这里插入图片描述

上面我们已经创建了表达式,并且 host就是本地的,我们来看看是否会运行。
可以看到在查看结果树中,所有的接口都正常执行了。

在这里插入图片描述
那我现在我们来改一下条件表达式,我们判断当 host 不是本地的时候,则去执行下面的脚本。

在这里插入图片描述
运行之后,我们可以看到,程序并没有执行脚本。
在这里插入图片描述
仅一次控制器

首先我们来创建一个仅一次控制器,点击「添加」–> 「逻辑控制器」–> 「仅一次控制器」

在这里插入图片描述
这个控制器,使用最常见的场景是登录,我们通常都是希望一个用户他只会登录一次。下面我们来看看设置一个线程,循环两次的结果。

在这里插入图片描述

在这里插入图片描述
我们在查看聚合报告中可以看到,其他的结果多运行了两次,登录的结果,只运行了一次。
在这里插入图片描述

这里需要注意的是,仅一次控制器,是根据线程数的数量来执行的,假设我们还是以登录接口为例,但是我们线程组设置为2个,并且循环两次,实际上登录的接口就会执行2次,我们来实战演示一下。

在这里插入图片描述
在这里插入图片描述
上方的图中,我们可以看到,登录接口执行了2次,其他的接口都执行了4次。

foreach控制器

foreach控制器,可以遍历某个数组中的所有数据,这里类似我们代码中的for循环。

首先,我们在创建循环控制器之前,需要先从用户列表中将所有的手机号码提取出来,提取出来之后,数据会以数组的形式展示。关于Json提取器中不理解的可以看我这篇博客。链接: https://blog.csdn.net/weixin_43865008/article/details/118371620.
在这里插入图片描述
我们在调试取样器中,可以看到已经提取出10组数据

在这里插入图片描述

下面我们来创建一个 foreach控制器, 点击「添加」–> 「逻辑控制器」–> 「foreach控制器」

在这里插入图片描述
在这里插入图片描述

  • 输入变量前缀:这里我们是从 Json提取器中,提取出的变量参数
  • 开始循环字段(不包含):这里我们从0开始,可以看到上方调试取样器中,数据是从第一个开始的,这里写着不包含,那么我们从0开始,否则写1的话,第一组数据会遍历不到
  • 结束循环字段(包含):这里同理,我们有10组数据,设置10,则包含第十条数据
  • 输出变量名称:顾名思义,我们可以自定义一个输入变量名
  • 数组之前加上下划线:默认勾选,如下图,我们看到PhoneNumList_1有个下划线,勾选之后,则变量中不需要在写这个下划线了。

在这里插入图片描述

设置成功之后,我们来看一下聚合报告,这里用户列表的接口执行了一次,用户认证执行了10次。

在这里插入图片描述

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值