JMeter笔记17 | JMeter逻辑控制器简介

简介: JMeter笔记17 | JMeter逻辑控制器简介
  • 逻辑控制器可以对元件的执行逻辑进行控制;
  • 逻辑控制器下可以嵌套别的逻辑控制器(一次控制器除外);
  • 如图:

在这里插入图片描述

1 ForEach Controller

  • 遍历循环控制器;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Input variable prefix 输入变量前缀:输入需要遍历的用户参数
Start index for loop(exclusive) 开始的值,不填默认为1
End index for loop(inclusive) 结束的值,
Output variable name 输出变量名称,将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}
Add”_”before number 输入变量名称中是否使用“_”进行间隔
  • 一般配合正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。

2 Simple Controller

  • 简单控制器;
  • 提供一个块的结构和控制,不具有任何的逻辑控制和运行时的功能,比如可做分组功能;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空

3 Loop Controller

  • 循环控制器;
  • 指定其子节点运行的次数;
  • 参数:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Loop Conunt 要么选Infinite(永远),要么设置具体数字

4 Include Controller

  • 包含控制器;
  • 用来导入外部的测试片段(非完整的测试计划);
  • 被导入的测试计划不能有线程组,只能包含简单控制器及控制器下的元件;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Filemame 文件名,必选,未选会报错

5 Runtime Controller

  • 生命周期/运行周期控制器;
  • 用来控制其子元件的执行时长;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Runtime 执行时长,默认为1,不填默认为0,此时不执行子元件

6 Switch Controller

  • Switch条件控制器;
  • 类似于编程语言中的Switch控制语句;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Switch Value 匹配值,可为数字(即取样器编号从0开始);可为字符,为字符时匹配取样器名称

7 While Controller

  • While条件控制器;
  • 其下的元件一直执行,直到while的条件为False;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Condition(function or variable) 可输入变量或变量表达式。为空:直到某次请求失败退出循环;LAST:直到最后一个请求请求失败退出循环; 其他:当判断条件为false时停止循环

8 Interleave Controller

  • 交替控制器;
  • 其节点下的取样器交替执行;
  • 比如该控制器下有2个取样器1和2,交替执行1和2请求,即每次传递一个子请求到这个测试,按子元件的排列顺序;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Ignore sub-controller blocks 忽略子控制器模块,子控制器失败由交替控制器接管
Interleave across threads 允许跨线程交替执行

9 Once Only controller

  • 仅一次控制器;
  • 在测试计划执行期间,该控制器下的子结点对每个线程只执行一次;
  • 登录场景经常会使用到这个控制器;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空

10 Throughput Controller

  • 吞吐量控制器;
  • 用来控制其下元件的执行次数;
  • 并无吞吐量的功能,想要控制吞吐量需要使用 Constant Throughput Timer;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Based on:Percent Ececutions 按执行次数的百分比来执行次数,此时Throughput 取值0-100,是否勾选Per Uner对 Percent Ececutions模式无影响。
Based on:Total Ececutions 按Throughput 的值来指定执行次数, 此时Per Uner 和Total Ececutions一起影响执行次数。
Throughput 指定执行次数
Per Uner 每个用户

11 If Controller

  • If条件控制器;
  • 可通过某个条件控制此节点下的元件是否运行;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Condition 判断条件
Condition(default javascript) 使用JavaScript的函数或变量进行评估判断条件为真或假
interpret condition as variable expression 如果勾选该项,那么变量表达式会进行求值,并与“ture”或“false”进行比较,而无需使用JavaScript
evaluate for all children 如果勾选该项,则该controller在没一个子节点执行时执行一次

12 Module Controller

  • 模块控制器;
  • 测试控制器子节点下的某一个模块,而不是整个测试计划;
  • 用于跳转到选定的控制器位置并执行对应的控制器;
  • 应用场景为业务逻辑的跳转;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Module to Run 选择需要跳转到的目标控制器

13 Random Controller

  • 随机控制器;
  • 节点下的元件随机运行,与交替控制器不一样的是节点下的元件执行顺序不定;
  • 参数说明:

加粗样式

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
MIgnore sub-controller blocks 忽略子控制器,控制器失败由随机控制器接管

14 Random Order Controller

  • 随机顺序控制器;
  • 随机执行其下的所有子结点;
  • 与Random Controller不同的是,这个控制器会先将需要随机的内容均执行一遍,但次序不定;
  • 参数如下:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空

15 Recording Controller

  • 录制控制器;
  • 类似代理服务器的作用,在测试执行期间记录测试样本;

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Clear all the recorded samples 注清除之前执行时记录的所有脚本

16 Transaction Controller

  • 事务控制器;
  • 把其节点下的取样器执行消耗时间累加在一起;
  • 如果事务控制器下的取样器有多个,只有每一个取样器都运行成功,整个事务控制器定义的事务才算成功;
  • 参数说明:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Generate parent sample 注选择是否生成一个父取样结果
Include duration of timer and pre-post processors in generated sample 是否包含定时器,选中的话在取样器前和后加上延时

17 Critical Section Controller

  • 临界区控制器;
  • 确保其子节点下的取样器或控制器将被执行(只有一个线程作为一个锁);
  • 参数说明:

在这里插入图片描述

参数 说明
Name 名称:随意设置,可为空
Comments 注释:随意设置,可为空
Lock name 锁的名称,最好作为唯一值
目录
相关文章
|
7月前
|
JSON Java 测试技术
Jmeter--控制器--详解(1),技术协会Python部面试
Jmeter--控制器--详解(1),技术协会Python部面试
|
6月前
|
测试技术 API Apache
使用 Apache JMeter 吞吐量控制器的详细指南
Apache JMeter是开源的负载和性能测试工具,其吞吐量控制器用于控制采样器执行频率以达到特定吞吐量。要使用它,首先启动JMeter,创建测试计划,添加线程组和逻辑控制器。配置吞吐量控制器的参数,如总执行次数或百分比,并添加HTTP请求采样器。例如,创建两个控制器,一个设定执行次数,另一个设定执行百分比。通过监听器如汇总报告和查看结果树来分析测试结果,从而模拟不同负载并识别性能瓶颈。吞吐量控制器是实现复杂测试场景的关键组件。
|
6月前
|
测试技术 Apache 数据安全/隐私保护
使用 Apache JMeter 事务控制器的详细指南
Apache JMeter 的事务控制器用于组合多个请求成一个事务,以便衡量整体性能。创建测试计划涉及添加线程组、事务控制器和采样器,配置参数如线程数、Ramp-Up时间和循环次数。在事务控制器内,添加HTTP请求模拟用户登录和访问主页等操作。通过勾选选项,包括计时器和处理器时间。添加监听器如汇总报告和查看结果树来分析结果,从而评估系统性能瓶颈。事务控制器对于测试复杂业务流程的性能非常有用。
|
7月前
|
编解码 Java API
Jmeter--控制器--详解,2024年最新系统学Python从零开始
Jmeter--控制器--详解,2024年最新系统学Python从零开始