Switch Controller(Switch控制器)
Switch控制器类似交替控制器,与交替控制器不同的是switch控制器每次迭代运行子节点的其中一个,通过给该控制器中的Value赋值,来指定运行哪个采样器,而不是交替执行。
有两种赋值方式:
- 数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素,当switch的value超过区间时,执行第0个元素。
- 直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。
例:通过数字和名称指定
例:超过元素的个数示例
例子中的threadgroup的名称忘记改了,不要在意,名字而已
ForEach Controller(ForEach控制器)
用来遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值.
Input Variable Prefix:输入变量前缀
Output variable name:输出变量名称
Start index for loop(exclusive):循环开始的索引(不包含索引开始的值)(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)
End index for loop(inclusive):循环结束的索引
Add “_”before number:输入变量名称中是否使用“_”进行间隔。
例:使用用户自定义变量
在实际的测试中更实用的是结合正则表达式,将正则表达式的输出进行操作^_^
Module Controller(模块控制器)
模块控制器提供了一种在运行时将测试计划片段替换为当前的测试计划的机制。
测试计划片断由控制器和包含在其中的所有测试元素(samplers等)组成。片段可以位于任何线程组中,也可以位于工作台。如果这个片段位于一个线程组中,那么它的控制器就可以被禁用,以防止这个片段被运行,除非是模块控制器。或者可以将这些片段存储在一个虚拟的线程组中,并禁用整个线程组。
可以有多个片段,每个片段都有不同的samplers。模块控制器可以简单地通过在它的下拉框中选择适当的控制器,轻松地在多个测试用例之间切换。这为快速和轻松地运行许多替代测试计划提供了方便。
模块控制器使用的任何片段都必须有一个惟一的名称,因为在重新加载测试计划时,该名称用于查找目标控制器。出于这个原因,最好确保控制器名不使用默认值,否则,当将新元素添加到测试计划时,可能会意外地创建一个副本。
由于工作台测试元素不是测试计划的一部分,所以模块控制器不应该与工作台组件一起使用进行远程测试或非gui测试。任何这样的测试都将失败。
Include Controller(包含控制器)
用于引用外部的Jmx文件;从而控制多个测试计划组合include Test Plan:包含测试计划的文件名,可以点击浏览,从文件夹保存的JMX文件夹目录下选择对应的JMX文件
被include测试的测试计划中的线程组将被忽略,仅有测试片段有效,其下可以添加任何采样器,控制器。为了方便调试,还可以在外部JMX文件中添加一个线程组,模块控制器引用测试片段。在include过程中,调试线程组将被忽略。
被包含的jmx
例:被包含的jmx中的线程被忽略
如果测试使用Cookie或用户定义的变量,这些应放置在顶层(包括文件),否则无法正常工作;此元素不支持变量/函数在文件名字段中;但是,如果属于包含控制器定义的内容,则使用前缀路径名。
当使用包含控制器中包含相同的JMX文件,则要确保文件名不同,以避免无法读取;如果文件不能被发现,那么控制器会尝试打开文件名相对于JMX启动目录。
事务控制器(Transaction Controller):
事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。
有两种操作模式,通过Generate parent sample来控制
- 在嵌套的示例之后添加了额外的示例,不勾选Generate parent sample
- 额外的示例作为嵌套示例的父元素添加,勾选Generate parent sample
在父模式中,仍然可以在树视图侦听器中看到单个示例,但不再作为其他侦听器中的单独条目出现。而且,子样例不会出现在CSV日志文件中,但是它们可以保存到XML文件中。
Include duration of timer and pre-post processors in generated sample:选中这一项会统计定时器(timer)的时间,否则只统计采样器(sample)的时间
生成的样例时间包括默认情况下的嵌套采样器的所有时间,不包含计时器和预处理处理器的处理时间,除非复选框 “包括在生成的样本中包含的时间和预处理的处理器” 。
根据时钟分辨率,它可能会比单个采样器和计时器的总和稍长一些。
如果所有的子样例都成功了,那么生成的示例只会被认为是成功的。
Recording Controller
记录控制器是一个占位符,指示代理服务器应该将样本记录到什么地方。在测试运行期间,它没有效果,类似于简单的控制器。但是在使用HTTP(S)测试脚本记录器的记录过程中,所有记录的样本将默认保存在记录控制器下。
Critical Section Controller
临界段控制器确保它的子元素(取样器/控制器等)在执行控制器的子进程之前,只执行一个线程作为一个指定的锁。
Lock name:锁名称,这里可以填入其子节点下执行的线程的名称,这个线程作为一个全局锁存在
HR B请求不是同时执行的,就代表HR b请求在同一时间只能执行一个
jmeter应用—逻辑控制器(一)
jmeter应用—逻辑控制器(二)
原文连接 http://blog.csdn.net/yue530tomtom/article/details/78663787