Jmeter配置之逻辑控制器

一、说明

1、Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。意思是说,逻辑控制器可以控制采样器(samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被执行。
2、逻辑控制器分为两种,一类是运行控制器用于分组之类如Critical Section Controller,一类是运行逻辑控制器用于循环判断等如If Controller;

二、逻辑控制器配置说明

1、If Controller

此为条件判断控制器,根据内容判断是否执行此控制器之后的内容;

(1)配置说明:

Name:此控制器名称,可以自己设置;
Comments:此if控制器说明;
Expression:用于判断的表达式,可以是根据表达式获取的参数值,也可以是一个”${变量}”==”变量值”这样的表达式;
Interpret Condition as Variable Expression?:中这一项时表示:判断变量值是否等于字符串true(不区分大小写)即如果勾选则会判断表达式为true或者false,如果不勾选则需要自己写判断表达式;比如有个参数FOUND,如果勾选此项则表达式填${FOUND},如果不勾选则填“${FOUND}”==“true”
Evaluate for all children:如果选中这一项,则在每个此控制器下的采样器的执行前都会计算表达式;

2、Transaction Controller

此为事物控制器,用于采集其下采样器的花费时间;

(1)配置说明:

Name:控制器名称;
Generate Parent Sample:勾选此项,则会在查看结果树监听器中此为父节点,其下采样器为子节点来展示,否则独立显示;
Include duration of timer and pre-post processors in generated sample:如勾选此项,则会计算定时器、Pre Processors和Post Processors的时间;

3、Loop Controller

顾名思义为一个循环控制器,用于控制循环次数;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Loop Count:循环次数;
Forever:勾选此项则无限循环;

4、While Controller

这是一个循环判断控制器,如果表达式值为“false”时跳出,否则一直循环运行其下的sample;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Condition:可以为blank, LAST, 或者参数、表达式,如${FOUND}或者“${FOUND}”==“true”

5、Critical Section Controller

关键部分控制器,用于核心部分的控制,确保其子节点下的取样器或控制器在一个线程中仅会执行一次

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Lock Name:要锁定的子元素名称;

(2)范例:

如下所示,在一个线程中,DS2-{__threadNum}和DS4-{__threadNum}和DS4-{__threadNum}和DS4-{__threadNum}将只执行一次,

6、ForEach Controller

ForEach控制器,ForEach控制器一般和用户自定义变量或者正则表达式提取器一起使用,其在用户自定义变量或者从正则表达式提取器的返回结果中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Input Variable Prefix:输入变量前缀;
Output variable name:输出变量名称;
Start index for loop(exclusive):循环开始的索引(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错);
End index for loop(inclusive):循环结束的索引;
Add “” before number:输入变量名称中是否使用””进行间隔;

(2)范例1:

如下所示,ForEach Controller会根据从正则表达式提取器中返回的结果进行循环输出到定义的变量名称,HTTP2再调用此变量;

7、Include Controller

引用外部测试计划控制器,测试过程中,需要引用外部的测试计划,注意如果jmx文件中有cookie或者用户自定义变量,可能无法起效;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Filename:引用的外部jmx文件路径;

8、Interleave Controller

间隔控制器,也称交替控制器,使得该控制器包含的取样器步骤交错执行在每个循环中,每个线程用户仅执行一次控制器内的请求,线程用户依据循环的次数请求控制器中的请求数;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Ignore sub-controller blocks:勾选此项,则此控制器下的子控制器会作为一个整体进行迭代,;
Interleave across threads:勾选此项,则交替控制器下的请求将应用至所有线程和循环中迭代。如有四个请求,三个线程,两轮循环,那么第一轮三个线程分别运行请求1,请求2,请求3,第二轮循环的三个线程运行请求4,请求1,请求2;

(2)范例1:

如下所示执行结果为News Page–>Log Page–>FAQ Page–>Log Page–>Gump Page–>Log Page,此处如果循环次数为2,则结果为News Page–>Log Page–>FAQ Page–>Log Page;

(2)范例2:

如下所示,为Interleave Controller下又套了两个Interleave Controller,此范例未勾选Ignore sub-controller blocks;

结果:

备注:我试过在此范例勾选Ignore sub-controller blocks,但结果与不勾选相同,不知道为什么,在官网上不勾选此项运行结果应该为Home Page, CVS Page, Interleaved, Bug Page, FAQ Page, Interleaved;

9、Once Only Controller

仅一次控制器,此控制器在每个线程中只会运行一次,无论多少个循环;常用于登录这种只需要做一次的部分;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;

10、Random Controller

随机控制器,与交替控制器类似,不过并非按照顺序迭代,而是随机的;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Ignore sub-controller blocks:与交替控制器的此项设置意义相同,子控制器作为块进行迭代,参考其范例2;

11、Random Order Controller

随机顺序控制器,类似简单的控制器,每个子元素每次只运行一次,但是节点的执行顺序将是随机的。

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;

12、Recording Controller

记录控制器,用于录制脚本,此控制器是用于指示代理服务器应该将样本记录到何处的位置保持器,即此控制器放在何处,则录制脚本时脚本就将方在何处;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Clear all the recorded samples:清除所录制的所有sample;

13、Runtime Controller

运行时间控制器,此控制器用于控制其下子元素的运行时间,如超过设置时间则终止该子元素运行;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Runtime(seconds):子元素超时时间;

14、Simple Controller

简单控制器,无特别意义,基本上作为分类所用,其下子元素按顺序执行,每轮执行一次;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;

15、Throughput Controller

吞吐量控制器,控制其下的子节点的执行次数与负载比例分配,也有两种方式;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Throughput:吞吐量,如为Total Excutions模式,其下子元素的执行按照此数值来执行,如线程循环设置为5,此数值设置为3,则其下子元素只执行3次;如为Percent Excutions模式,则此处设置为百分比(不带百分号),如循环5次,此值为40,则执行5*40%=2次;
Per User:如勾选此项,则此控制器的设置单独应用于每个线程,如不勾选,则应用于全部线程;

(2)范例:

设置:



结果:

16、Module Controller

模块控制器,用于跳转到选定的控制器位置并执行对应的控制器;

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Module to Run:要跳转的控制器;

(2)范例:

如下所示进入此模块控制器时会跳转到Android节点;

17、Switch Controller

Switch控制器,Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式:
第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。
第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。
当Value为空时,默认执行第1个子节点元素

(1)配置说明:

Name:控制器名称;
Comments:控制器说明;
Switch Value:要切换到的子元素的编号或者是名称;

(2)范例:

配置如下:

结果如下:

Jmeter配置之逻辑控制器相关推荐

  1. jmeter中控制器3个请求其中一个访问不到_性能测试干货丨盘点JMeter常见的逻辑控制器...

    JMeter提供了不同种类的逻辑控制器,包括循环(Loop),简单(Simple),事务型(Transaction),模块(Module),随机(Random)等.对于刚接触JMeter不久的用户,甚 ...

  2. JMeter配置元件

    JMeter配置元件 一:管理请求服务器信息和Headers参数 如果使用Jmeter同时执行多个http请求任务,就需要创建多个HTTP取样器,每一个取样器都来手动填写服务器信息和端口号,会非常消耗 ...

  3. 【JMeter】各种逻辑控制器(Logic Controller)

    文章目录 一.JMeter 逻辑控制器 二.逻辑控制器分类 1.简单控制器(Simple Controller) 2.循环控制器(Loop Controller) 3.仅一次控制器(Once Only ...

  4. 官方指定Jmeter配置JVM堆内存方式

    官方指定Jmeter配置JVM堆内存方式 文章目录 官方指定Jmeter配置JVM堆内存方式 1.概述 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmeter在windows环境 ...

  5. 文件上传功能测试、性能测试解决方案(含Jmeter配置及加压参数分析)

    一.背景和测试用例 上传是每个系统非常常见的功能,但是多半时候开发.测试容易忽略很多细节,测试虽不可穷尽,但前人踩过的坑.我们踩过的坑,坚决不能再出第二次.看到一篇博客考虑的很全面,拿来主义了,感谢博 ...

  6. jmeter(三):逻辑控制器详解

    jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序. jmeter提供了17种逻辑控制器,它们各个功能都不尽相同,大概可 ...

  7. 性能测试之JMeter配置元件【HTTP信息头管理器】

    JMeter提供了丰富的配置元件,常用的包括参数化配置元件.HTTP请求默认值.HTTP信息头管理器.计数器等,这些配置元件用于设置默认值和变量,提供给后面的sampler(取样器)使用. 提示:本文 ...

  8. 性能测试之JMeter配置元件【计数器】

    1.计数器介绍 如果需要引用的数据量较大,且要求不能重复或者需要自增,那么可以使用计数器组件来实现. 计数器组件中的数据,允许在一个线程组之内都可以被引用. 2.计数器界面详解 添加计数器组件的操作: ...

  9. 性能测试之JMeter配置元件【随机变量】

    1.随机变量介绍 随机变量应用场景:在一些数据要求不重复,或者对数据取值需要正态分布的时候,我们可以采用随机变量组件来满足需求. 随机变量与用户自定义变量的区别: 随机变量(random variab ...

最新文章

  1. 为什么MySQL不推荐使用uuid或者雪花id作为主键?
  2. 『前端规范化』CSS命名规范化
  3. Matlab中设置图形窗口的大小、字体、axis等
  4. javascript 日期控件
  5. jpi多表联查_数据库两表联查、多表联查,多重联查
  6. paylinks.php_毕业设计-基于PHP的网上购物网站系统设计
  7. 当自动化遇见数字化——德资企业儒拉玛特的数字化实践
  8. Archlinux 简明安装指南
  9. 爬虫实例6 爬取联英人才网147页招聘信息,并导入数据库
  10. Android5.0特性阴影效果和裁剪
  11. CC2541蓝牙低功耗芯片中文资料提供
  12. 来自H3C的降维打击:H3C BX54鲸路由评测体验
  13. C++之策略(Strategy)模式
  14. PDF怎么转换成Word文档呢?不妨试试这两种方法!
  15. Anaconda创建Pytorch虚拟环境(排坑详细)
  16. 破土Plan遇到的keng
  17. 使用Certbot工具从Let’s Encrypt获取免费SSL证书
  18. kali Linux的下载与安装
  19. Mysql(三)索引、视图、存储过程、触发器、分区表
  20. 2.4.1 HMC连接状态

热门文章

  1. DNS原理及DHCP原理
  2. pc上android模拟器,最好的Android模拟器在PC上玩Android游戏
  3. php 5 399.00,5-溴-4-氟-2-羟基苯甲醛,399-00-8
  4. 编译是检查C语言源程序的,编译是检查C语言源程序的( [1] )错误。
  5. VS 创建assemblyinfo项目信息文件
  6. uniapp,vue中的身份证格式校验
  7. 日本零售的发展,给未来中国零售数字化转型带来哪些启发?
  8. Electron中自定义窗口导航条
  9. 使用Qt制作二维码生成器
  10. Bugku好像需要密码