JMeter逻辑控制器之IF控制器

Jmeter控制器之IF控制器

  • 1.应用背景
  • 2.介绍
  • 3.使用
  • 4.添加控制器
  • 5.表达式说明
  • 6.函数助手调用
  • 7.举例

1.应用背景

  存在一些使用场景,比如:一个测试场景中,包含多个请求,当上一个请求的结果不符合要求,就不需要执行下一个请求。(例如:某产品的功能,质量任务执行,如果当现在的任务状态是执行中,就不用再执行下一个请求了

2.介绍

  如下是JMeter官网对IF控制器的介绍
JMeter逻辑控制器之IF控制器_第1张图片

3.使用

  IF条件判断,IF控制器可以在循环的基础上加判断,当条件为True的时候执行下一个请求。反之,当条件为false的时候,就不执行下一个请求。

4.添加控制器

  在线程组中或相关控制器中,选中“线程组”右键 —> 添加 —> 逻辑控制器 —> 如果(If)控制器,如图所示:
JMeter逻辑控制器之IF控制器_第2张图片

JMeter逻辑控制器之IF控制器_第3张图片

Expression (must evaluate to true or false) : 表达式(结果值必须是true或false)。在右边文本框中输入的条件值必须是true 或 false。

Interpret Condition as Variable Expression:默认勾选项,将条件解释为变量表达式(需要使用__jexl3 or __groovy 表达式)

Evaluate for all children:条件作用与每个子节点,默认不勾选。仅在If Controller入口处判断一次

use status of last sample: 作用就是只有当上一个请求成功后,才会执行if控制器下的请求。

注意:
1、文本框上的黄色感叹号,就是建议采用默认的jexl3 or groovy 表达式,以提高性能。
2、if 控制器 只能作用于其下的子项。

5.表达式说明

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

groovy 表达式
${__groovy(条件表达式}
逻辑表达式说明

==
含义:是否等于
示例:如KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({VAR}==1,)},判断${VAR}变量是否等于1。

!=
含义:不等于
含义:如KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({VAR}!=1,)},判断${VAR}变量是否不等于1。

!
含义:非
示例:如KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3(!({VAR}!=2),)},对${VAR}的值不等于2,其判断为真,那么执行IF下的子项。

&&
含义:并且
示例:如KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({VAR}1 && "KaTeX parse error: Expected 'EOF', got '}' at position 18: …ame}" != "李四",)}̲,也就是{VAR}1和表达式 “${name}” != "张四"均为真时,执行IF控制器下的子项。

||
含义:或
示例:如KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({VAR}1 && "KaTeX parse error: Expected 'EOF', got '}' at position 18: …ame}" != "李四",)}̲,也就是{VAR}1和表达式 “${name}” != "张四"其中一项为真时,执行IF控制器下的子项。

>=
含义:大于等于

示例:如${__jexl3(${count}>=15,)}。也就是${count}>=15,其判断为真,那么执行IF控制器下的子项。

注意:
如果判断表达式是字符串,此时,必须要用引号,变量都认为时字符串的形式,如:

${__jexl3("${name}"=="成都",)},不能用${__jexl3(${name}=="成都",)}

6.函数助手调用

  启动jmeter界面后,可以在JMeter的选项菜单中找到函数助手对话框,如下图所示:
JMeter逻辑控制器之IF控制器_第4张图片

7.举例

应用场景

  在实际项目测试油这样一个场景,质量任务执行,同一个任务,如果任务的状态在运行中,再次进行任务提交的话就不会提交。

重点

  在实际应用IF控制器的时候,需要确定IF条件的判断结果。
如下是测试产品过程中IF条件的判断标志。
JMeter逻辑控制器之IF控制器_第5张图片
实现

通过if控制器进行判断是否需要执行任务,其中data就是上图所示得值即“false”。

${__jexl3("${data}"!="true",)}

你可能感兴趣的:(jmeter)