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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 锁的名称,最好作为唯一值

以上是关于JMeter笔记17 | JMeter逻辑控制器简介的主要内容,如果未能解决你的问题,请参考以下文章

JMeter笔记11 | JMeter事务

jmeter学习笔记

JMeter笔记11 | JMeter事务

JMeter笔记11 | JMeter事务

jmeter逻辑控制器简介及使用方向

JMeter笔记2 | JMeter原理及测试计划要素