转载链接:http://www.cnblogs.com/imyalost/p/6183569.html

jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。

jmeter提供了17种逻辑控制器,它们各个功能都不尽相同,大概可以分为2种使用类型:

①.控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller(循环控制器)、If Controller(如果if控制器)等;

②.对测试计划中的脚本进行分组,方便JMeter统计执行结果以及进行脚本的运行时控制等,如:Throughput Controller(吞吐量控制器)、Transaction Controller(事务控制器)等

jmeter提供如下17种逻辑控制器:

一、临界区控制器(critical section Controller)

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

名称和注释很简单,就是给控制器添加一个备注,使人明白这个控制器的解释含义的意思

Lock name:锁名称,这里可以填入其子节点下执行的线程的名称,这个线程作为一个全局锁存在

2、遍历循环控制器(ForEach Controller)

作用:用来遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值;

输入变量前缀:在其中输入需要遍历的用户参数(User Parameter)

Start index for loop(exclusive):循环指数开始(唯一)→ 遍历查询的变量范围,开始的值(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)

End index for loop(inclusive):循环指数结束(包含)→ 遍历查询的变量范围,结束的值

输出变量名称:将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}

Add”_”before number:输入变量名称中是否使用“_”进行间隔

PS:这个控制器一般配合配置元件→ 正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。

3、包含控制器(Include Controller)

作用:用于引用外部的Jmx文件;从而控制多个测试计划组合

include Test Plan:包含测试计划的文件名,可以点击浏览,从文件夹保存的JMX文件夹目录下选择对应的JMX文件

使用方法:创建一个测试计划,下面可添加取样器/控制器等,然后保存测试计划,为了方便起见, 线程组也可以添加外部JMX文件中用于调试;

如果测试使用Cookie或用户定义的变量,这些应放置在顶层(包括文件),否则无法正常工作;此元素不支持变量/函数在文件名字段中;但是,如果属于包含控制器定义的内容,则使用前缀路径名。

当使用包含控制器中包含相同的JMX文件,则要确保文件名不同,以避免无法读取;如果文件不能被发现,那么控制器会尝试打开文件名相对于JMX启动目录。

4、生命周期/运行周期控制器(Runtime Controller)

作用:用于控制该控制器下的取样器/控制器的运行时间

Runtime(seconds):运行时间,单位为:秒

5、转换控制器(Switch Controller)

作用:通过给该控制器中的value赋值,来指定运行哪个取样器(也可以理解为开关控制器)

Switch value:控制器具体赋值的value值字段

有两种赋值方式:

①.第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。

②.第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。

当Value为空时,默认执行第1个子节点元素。

6、当/判断控制器(While Controller)

作用:运行其子节点下的取样器/控制器,直到条件为“假”

Condition(function or variable):条件(函数或变量):里面可填入判断依据的条件,参照

使用方法:可能的条件值有:

①.空白:最后一个示例循环失败时退出循环

②.最后一个值:最后一个示例循环失败时退出循环。 如果之前的最后一个示例只是循环失败,不进入循环。

③.否则:退出时(或不输入)循环条件等于字符串“ 假 ”

条件可以是任何变量或函数,最终等于字符串” 假 ”。需要注意的是:条件是评估两次,一次取样前,一次随机取样

7、事务控制器(transaction controller)

作用:生成一个额外的采样器来测量其下测试元素的总体时间;值得注意的是,这个时间包含该控制器范围内的所有处理时间,而不仅仅是采样器的

Generate parent sample:生成父样本(不同的模式选择)

include duration of timer and pre-post processors in generated sample:包含时间的计时器和前后处理器生成的示例(不同的模式选择)

对于Jmeter2.3以上的版本,有两种模式的操作

①.事务采样器是添加到其下采样器后面的

②.事务采样器是作为其下采样器的父采样器

生成的事务采样器的测量的时间包括其下采样器以及其他的一切时间。由于时钟频率问题,这个时间可能略大于单个采样器的时间之和;

时钟开始时间介于控制器记录开始时间与第一个采样器开始之间,时钟结束时间亦然。

事务采样器只有在其子采样器都成功的情况下才显示成功。

在父模式下,事务控制器下的各个采样器只有在结果树里才能看到;同时,子采样器的数据也不会在CSV文件中显示,但是在XML文件中可以看到。

8、交替控制器(creatleave controller)

作用: 交替控制,使得该控制器包含的取样器步骤交错执行在每个循环中

忽略子控制器模块(Ignore sub-contorller blocks):如果勾选此项,交错控制器将sub-controllers像单一请求元素一样,一次只允许一个请求/控制器

使用方法:假使该控制器下有2个取样器A和B,交替执行A和B2个请求,即每次传递一个子请求到这个测试,按子元件的排列顺序

9、仅一次控制器(once only controller)

作用:在多线程循环的时候,将使其子节点下的取样器请求只运行一次

10、流量控制器(throughput controller)

作用:jmeter自带的翻译这里是错误的,因为它并不能控制吞吐量(吞吐量的概念请自行百度);其实质作用是允许用户控制执行的频率

总共有两种执行模式:百分比执行和总执行

总执行(Total Executions):使控制器停止执行一定数量的测试计划

百分比执行(Percent Executions):使控制器按一定比例执行迭代的测试计划

流量(Throughput):对应上面的执行数量或者比例

每个用户(Per User):每个用户

如果勾选此项,将导致控制器计算是否应该执行在每个用户(每个线程)的基础上;如果不加以控制,那么将计算全球所有用户

11、IF控制器(If Controller)

作用:允许用户控制该控制器下面的取样器/控制器是否执行该节点下的子节点;

条件(默认JavaScript)(Condition(default javascript)):使用JavaScript的函数或变量进行评估判断条件为真或假

条件解释为变量表达式(interpret condition as variable expression):如果勾选该项,那么变量表达式会进行求值,并与“ture”或“false”进行比较,而无需使用JavaScript

对所有子条件执行(evaluate for all children):如果勾选该项,则该controller在没一个子节点执行时执行一次;

默认情况下,该控制器可以对包含在其下面的所有可运行的元素进行执行,但只在入口执行一次

12、录制控制器(Recording Controller)

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

清除所有记录的样本(Clear all the recorded samples):点击可以清除所有已经记录的测试样本

一般情况下,在测试执行时候,它没有效果,但是在执行HTTPS测试脚本时,会记录下所有测试样本

13、循环控制器(Loop Controller)

作用:该控制器下的取样器请求可以循环运行

循环次数(Loop Count):在输入框中输入需要循环的次数,控制器下的请求即可循环运行

永远(forever):如果勾选该项,那么控制器下的请求可一直运行

14、模块控制器(Module Controller)

作用:测试控制器子节点下的某一个模块,而不是整个测试计划

寻找目标元素(Find target element):寻找测试计划中需要特定测试的元素,模块;也可理解为该控制器可以控制已经封装好的模块元素

△ :一个测试计划由一个控制器和所有的测试元素(取样器等)组成,测试计划可以位于任何线程组或工作台;如果计划位于线程组,则可以禁用其他控制器,防止正在运行的测试计划被影响(除了模块控制器)

模块控制器的优势在于:当存在多个线程组时,该控制器可以轻松切换,只需要选择对应的取样器,方便快捷,替代了创建很多测试计划的繁琐操作

△ :任何一个模块所用的控制器名字必须唯一,因为其名字被用来找到目标控制器时重新加载;出于这个原因,最好保证控制器名字不同,否则执行测试时候可能发生意外

△ :模块控制器与远程测试不应使用或非gui测试与工作台部件,因为工作台测试元素并没有测试计划的一部分 jmx 文件。 任何这样的测试就会失败

15、简单控制器(Simple Controller)

作用:用来组合取样器和其他逻辑控制器

简单控制器是最基本的控制器,对jmeter测试运行没有任何影响,可用来命名某些操作

16、随机控制器(Random Controller)

作用:类似交替控制器,但该控制器随机选取某一个取样器请求并执行

忽略子控制器模块(Ignore sub-controller blocks):如果勾选此项,交错控制器将sub-controllers像单一请求元素一样,一次只允许一个请求/控制器

17、随机顺序控制器(Random Order Controller)

作用:类似于简单控制器,将执行每个子节点下的取样器请求一次,但是执行是随机的

查询了很多资料,参考了其他博客作者的内容,可以说结果很不理想,大部分都是直接将jmeter官网文档用翻译词典翻译出来就贴上去了,错别字,解释语句不通;

偶尔看见一篇,也是寥寥几笔,关于这些控制器的具体使用方法,我自己也尝试的使用了一下,还是不难的,可能会有点误差,请谅解。。。

官网文档地址:http://jmeter.apache.org/usermanual/component_reference.html#logic_controllers

参考博客:http://www.cnblogs.com/kuihua/p/5537083.html

http://www.cnblogs.com/puresoul/p/4886574.html

Jmeter简单控制器相关推荐

  1. 5.4.1 jmeter组件—逻辑控制器-简单控制器、IF控制器、事务控制器、循环控制器、交替控制器

    1.简单控制器 这是最简单的逻辑控制器,他没有额外的功能,只是一个容器的功能,存放取样器等等原件. 2.IF控制器 IF控制器:条件满足时,才执行控制器下的元件 3.事务控制器 将控制器下的所有取样器 ...

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

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

  3. 压测工具Jmeter简单入门教程

    Jmeter简介 Jmeter的基本概念 百度百科: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其 ...

  4. JMeter事务控制器(Transaction controller)

    JMeter事务控制器(Transaction controller) 事务控制器会产生一个额外的取样器(sampler),用来计算衡量它所包含的所有测试组件(比如包含2个http采样器)的总体时间. ...

  5. 06 使用VS2012开发简单控制器程序 1214

    06 使用VS2012开发简单控制器程序 1214 01 02

  6. 【Jmeter 简单使用】

    Jmeter 简单使用 现在想要在服务器压测一下 查了一圈,发现Jmeter这个工具比较合适 安装过程参考其他文章 简单说一下使用: 1.确定次数的测试 总测试次数 = 线程数量 x 重复次数 上图为 ...

  7. Jmeter事务控制器 Transation Controller

    Jmeter事务控制器 Transation Controller 一.Transation Controller界面 Transation Controller元素名称 Transation Con ...

  8. jmeter事务控制器

    jmeter事务控制器 作用:可以用于测试执行嵌套测试元素所花费的总时间,即相当于用户进行一系列操作的测试,只有整个事务控制器定义的事务成功,才算成功. 结构如下: Generate Parent S ...

  9. Jmeter 随机控制器-随机顺序控制器

    随机控制器 随机逻辑控制器的行为与交替控制器相似,不同之处在于它不是按顺序执行其中的请求,而是每次执行时,在控制的请求中随机一个. 随机控制器中,每个线程每次循环时,可能调用其中的一个请求,调用一个请 ...

  10. Linux下 运行Jmeter (含一个jmeter简单示例)

    本文的方法是现在图形界面下添加好组件,生成jmx脚本文件,然后将jmx文件放到linux环境下用命令行运行脚本,进行性能测试. 1.  用Jmeter进行打压测试 如果可以打开图形界面,则可以参看图形 ...

最新文章

  1. .net下的富文本编辑器FCKeditor的配置方法(图)原创
  2. Windows Server 2008 定义用户桌面图标
  3. python课程设计报告总结-上海python课程设计报告目的
  4. Hive记录-配置远程连接(JAVA/beeline)
  5. 2018.7.6 TX射频调试-PP
  6. Groove 2007 恢复用户配置文件(grv)文件 提示过旧,解决方法
  7. 高通量数据中批次效应的鉴定和处理(一)
  8. android thread 用法,我们如何在Android中使用runOnUiThread?
  9. asp.net中怎样动态调用对象事件的处理方法?
  10. 软件项目估算是一件很难的事情
  11. java如何获取wsdl文件,如何使用Java获取WSDL文件中的复杂类型?
  12. 傻妞机器人对接TG【无需QQ】
  13. c语言千位分隔符代码if函数,JavaScript实现千位分隔符
  14. 【期末大作业】简单的学生网页作业源码 基于html css javascript南京大学网页校园教育网站html模板(3页)
  15. linux d14 Apache、 Vsftpd
  16. 百度地图只显示指定的行政区域地图
  17. 服务器和应用服务器迁移方案,服务器和应用统迁移方案.doc
  18. 嵌入式C设计模式---状态机设计模式
  19. 【强化学习论文合集】十八.2019国际表征学习大会论文(ICLR2019)
  20. 公司部门刚来个00后,从腾讯拿18K出来的这么卷?

热门文章

  1. 《NFC开发实战详解》笔记
  2. sqlserver2008表里的数据生成insert语句
  3. 【附源码】JAVA汽车年审管理系统fc13o9【附源码】计算机毕设SSM
  4. CVPR2022论文速递(2022.4.20)!共13篇!Transformer+Person ReID
  5. docker部署发布工具jenkins
  6. openGauss内核分析(三):SQL解析
  7. cocos2dx ios入口类_cocos2d x 3.3 015 程序入口main
  8. 机智云智能家电运营管理服务平台获艾普兰智能创新奖
  9. C# 异步回调练习记录
  10. 51精密电路工艺科普:你了解金手指吗?