Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)

一.逻辑控制器

  • 什么时逻辑控制器
    用于控制采样器(sampler)的执行顺序,它有多个逻辑控制语句封装成不同功能的组件组成(仅对节点的sampler有效)。Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第1张图片

  • 逻辑控制器分类
    1)控制测试计划节点的路径执行顺序,如,loop controller(循环控制器)、if controller(if控制器);
    2)对测试计划中的脚本进行分组,方便jmeter统计执行结果以及进行脚本的运行时控制,如,throughput controller(吞吐量控制器)、transaction controller(事务控制器)。

二.如果(If)控制器

  • 作用:条件为真时,执行控制器下所有取样器
  • 使用方法
    1)测试计划-线程-用户自定义变量
    2)线程组-如果(If)控制器-HTTP请求
    3)测计划-监听器-查看结果树
  • 如果(If)控制器配置
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第2张图片
    1)勾选“Interpret Condition as Variable Expression?”:若在Expression输入框录入“${name}==test"条件,执行Run后查看结果树中并没有监控到执行的记录…这是因为要使用”_jexl3 “或”_groovy“函数(直接输出true或false)
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第3张图片
    groovy函数
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第4张图片
    jexl3函数
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第5张图片
    ”_jexl3 “或”_groovy“函数生成的表达式粘贴至“如果(if)控制器”配置页面中“Expression录入框”内
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第6张图片
    2)勾选“Interpret Condition as Variable Expression?”和“Evaluate for all children?”:
    借用$ (JMeterThread.last_sample_ok) 函数:若上一个取样器执行结果通过(true),则下一个取样器正常执行,否则下一个取样器不执行。

3)不勾选“Interpret Condition as Variable Expression?”和“Evaluate for all children?”:在“如果(if)控制器”配置页面中“Expression录入框”内直接录入表达式
Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第7张图片
Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第8张图片

备注:(1)字符串比较:参数和值都要加“双引号”,如:KaTeX parse error: Expected group after '_' at position 2: {_̲_groovy("{name}"==“test”,)}
( 2)数字比较:${id}==000000
(3)布尔值:直接录入true或false(必须小写)Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第9张图片

      (4)在Expression输入框中直接输入判断的表达式,如0== 0、${id} > 2,则不做求值计算(true/false),达不到预期的效果。

三.循环控制器(loop controller)

  • 作用:仅对循环控制器层级下的取样器有效
  • 使用方法
    1)线程组-循环控制器-HTTP请求
    3)测计划-监听器-查看结果树
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第10张图片
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第11张图片
    三.foreach控制器(与“用户定义变量”元件一起使用)
  • 位置:线程组-逻辑控制器-foreach控制器
  • 配置“用户定义变量”元件
    1)设置用户定义变量
    变量名称——格式:前缀_数字,如 id_1
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第12张图片
    备注:后缀数字一定时连续的

2) 配置foreach控制器
输入变量名前缀:id
开始循环字段(不包括):
结束的循环字段(包含):
输出的变量名称:用户定义变量通过foreach控制器后产生的新名称:coin
Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第13张图片

  • 使用foreach控制器输出的变量:${coin}
    Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)_第14张图片

你可能感兴趣的:(Jmeter)