zl程序教程

您现在的位置是:首页 >  Python

当前栏目

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

2023-03-07 09:16:12 时间
  • 逻辑控制器可以对元件的执行逻辑进行控制;
  • 逻辑控制器下可以嵌套别的逻辑控制器(一次控制器除外);
  • 如图:
    在这里插入图片描述

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

锁的名称,最好作为唯一值