JMeter-如果(if)控制器

目录

前言

需求

一:添加商品信息接口

二、打开函数助手,选择__jexl3函数

三、添加逻辑控制器-如果(if)控制器

四、在如果(if)控制器下添加登录http请求

五、添加监听器-察看结果树


前言

在实际工作中,当使用JMeter做性能脚本或者接口脚本时,当遇到需要对不同的条件做不同的操作时,我们可以使用JMeter中if控制器来实现

我们先来了解一下if控制器,含义:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和字符串 都需要加引号 

条件格式:${__jexl3(条件表达式)}:

== 是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1

!=不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1

!非,如${__jexl3(!(${VAR}!=1),)}对${VAR}!=1的结果取反

&&或||且与或,如  ${__jexl3(${VAR}==1 && ${name} != "heima",)}

> 或者>== 大于等于,如${__jexl3(${count}>=10,)}

Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)

Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式 

需求

如果商品信息接口返回参数skuId的参数值为1,则执行登录接口,否则不执行

一:添加商品信息接口

写入正确的接口地址和参数,添加后置处理器-JSON提取器,获取skuId的值,变量名称为mySkuId

 

二、打开函数助手,选择__jexl3函数

引用JSON提取器的变量名mySkuId

 

三、添加逻辑控制器-如果(if)控制器

写入${__jexl3(${mySkuId}=="1",)}

或者不勾选Interpret Condition as Variable Expression?选项,设置条件为mySkuId等于1,进行执行

四、在如果(if)控制器下添加登录http请求

写入正确的接口地址和参数

五、添加监听器-察看结果树

点击运行,查看执行结果

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter中的If控制器可以用于根据某些条件来控制测试计划中的执行流程。如果条件为真,则执行If控制器中的所有子元素,否则跳过它们。 以下是If控制器的使用步骤: 1. 添加If控制器:在测试计划中右键单击线程组,选择添加 -> 逻辑控制器 -> If控制器。 2. 添加条件:在If控制器中添加一个条件,可以使用函数、变量或表达式来定义条件。 3. 添加子元素:如果条件为真,则执行If控制器中的所有子元素。因此,在If控制器中添加需要执行的子元素,如HTTP请求、数据库请求等。 4. 配置条件:在条件中输入函数、变量或表达式,以便JMeter可以根据条件来控制执行流程。 5. 运行测试计划:运行测试计划并观察执行流程是否符合预期。 示例: 假设我们需要在测试计划中添加一个If控制器,以便在响应时间大于5秒时暂停5秒钟。可以按照以下步骤操作: 1. 添加If控制器:右键单击线程组,选择添加 -> 逻辑控制器 -> If控制器。 2. 添加条件:在条件中输入${__jexl3(${JMeterThread.last_sample_ok} && ${JMeterThread.last_sample_time}>5000)}。此条件使用JEXL函数和变量来检查最后一个样本的响应时间是否大于5秒。 3. 添加子元素:在If控制器中添加一个定时器,设置时间为5000毫秒。 4. 配置条件:在条件中输入函数、变量或表达式。 5. 运行测试计划:运行测试计划并观察执行流程是否符合预期。如果响应时间大于5秒,则会暂停5秒钟。否则,不会执行暂停操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值