Logic Controller(逻辑控制器)
逻辑控制器主要用来控制采样器的执行顺序,仅对其子节点的逻辑控制器和采样器其作用。
1.Simple Controller(简单控制器)
简单控制器主要用来组织其他逻辑控制器和采样器,提供了一个块的结构和控制,更方便,更清晰,该控制器不具有逻辑控制功能。
如下:把两个Ant Http Request和两个Log4J Http Request分别放在两个Simple Controller中,执行顺序为Ant Home Page,Ant News Page,Log Home Page,Log History Page。

2.Loop Controler(循环控制器)
循环控制器指定子节点循环的次数,如果线程组中设置了循环次数,则子节点采样器执行的数量为循环控制器数量乘以线程组中设置循环次数,循环控制器中循环次数可以用变量。
如下:Jakarta Users设置的循环数量为1,Loop Controller设置的循环次数为3,则Home Page执行的次数为1次,News Page执行的次数为3次。

3.Once Only Controller(仅一次控制器)
用来控制每个线程只执行一次该控制器下的采样器,如果该控制器在Loop Controller的子节点,则不论Loop Controller设置循环次数为多少次,则Once Only Controller在一个线程只允许一次,如果Thread Group的循环次数设置为多次,而Once Only Controller在Loop Controller的子节点,则Once Only Controller执行循环的次数。一般该控制器用来控制登录,因为通常一个线程只需要登录一次。
a)Loop Controller循环次数为5次,Once Only Controller只执行一次。


2)线程组的循环次数设置为5次,则Once Only Controller执行5次。


4.ForEach Controller
ForEach Controller用来遍历变量的值,每次循环,取的值都不一样,每个变量都是使用下划线和数字扩展,一般和用户定义的变量配置元件一起使用。
示例:
新增加配置元件,用户自定义变量,然后新增加五个用户,如下:

新增加ForEach控制器:

名称:为该Foreach控制器设置一个名称。
输入变量前缀:需要遍历的变量名的前缀,就是下划线前面的,如上就是username。
开始循环字段:开始编号,不包括在循环的值里面。
结束循环字段:结束编号,包含在循环的值里面。
输出变量名称:定义每次循环中我们取的值。
Add“_” before number?是否在数字前面加上下划线。
在ForEach Controller子节点添加Debug Sampler,运行测试,并查看结果,可以看到myDefValue,每次取的值都不一样。


5.Transaction Controller(事务控制器)
事务控制器可以产生一个额外的采样器,用来统计子节点采样器执行的总时间。

说明:Generate parent sample,产生额外的采样器为父节点,如下是勾选和不勾选的区别。

Include duration of timer and pre-post processors in generated sample:计算的总的时间包括定时器和前置处理器的时间。
6.IF Controller
IF Controller用来控制其子节点的元素是否执行,IF Controller中可以使用变量。
示例:
在Thread Group下新增加User Defined Variables,然后添加五组数据:

在Thread Group下新增加ForEach Controller,配置如下:

在ForEach Controller下新增加If Controller,配置如下:

说明:
1)在JMeter4.0版本后If Controller中的表达式部分不支持直接写判断表达式,需要使用__jexl3或者__groovy计算表达式true或false;
2)Evaluate for all children,勾选时执行子节点每个采样器时都会使用If Controller进行判断,不勾选时只在入口执行一次If Controller。
在If Controller下新增加HTTP Request采样器:

运行测试,可以看到只有username为boxiaoyuan时才运行登录请求:

7.Switch Controller
Switch Controller可以根据Switch中设置的值来决定执行子节点的测试元件,有两种方式可以指定,一种是使用索引,从0开始;一种是使用测试元件的名称。
如下,第一个结果为Switch控制器中的Switch Value设置为1,第二个结果为Switch控制器中的Switch Value设置为搜狗。

8.Throught Controller(吞吐量控制器)
吞吐量控制器用来控制子节点测试元素的执行频率,有两种方式,一种是按照百分比的方式;一种是按照数量的方式。

假设线程组设置线程数位2,循环数为4,控制器1设置的吞吐量为百分之50,即所有用户的百分之50,2*4*0.5=4;控制器2设置的吞吐量为3次,即所有用户3次。

现在勾选控制器1的Per User,即每个用户百分之50,4*0.5*2=4,勾选控制2的Per User,即每个用户3次,两个用户就是6次。


Logic Controller(逻辑控制器)的更多相关文章
- Jmeter之逻辑控制器(Logic Controller)
Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...
- 【jmter】逻辑控制器(Logic Controller)
1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”.意思是说, ...
- Jmeter之逻辑控制器(Logic Controller)【转】
Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...
- jmeter 逻辑控制器Logic Controller详解
Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...
- (四)Jmeter之逻辑控制器(Logic Controller)
Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...
- jmeter(二十):Logic Controller:逻辑控制器(上)
逻辑控制器用来控制采样器(samplers)的执行顺序,根据实际需要定制执行规则.在控制器层级下面的所有的采样器都会当做一个整体,执行时也会一起被执行. Logic Controller种类: 以上L ...
- Jmeter----逻辑控制器(Logic Controller)
前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”.意 ...
- 转:JMeter基础--逻辑控制器Logic Controller
1.ForEach控制器 ForEach控制器在用户自定义变量中读取一系列相关的变量.该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值.所以ForEach总是和User Defin ...
- Jmeter(十四)Logic Controller 之 If Controller
If Controller---如果控制器:属于逻辑判断类型的组件,其实学过代码的都知道if--else,while等都是常用的逻辑判断关键词,Jmeter也提供了逻辑判断--If Controlle ...
随机推荐
- Swift中用正规表达式判断String是否是手机号码
func isTelNumber(num:NSString)->Bool { var mobile = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$&qu ...
- .Net Core 迁移之坑一 《WebAPI Get请求参数传入输入带有[]不识别问题》
在Framwork 体系下 WebAPI项目 会有很多默认特性,例如:Get查询竟然支持三种数组查询方式 1.https://localhost:44390/api/values?status=1&a ...
- Laravel 5.3 auth中间件底层实现详解(转)
1. 注册认证中间件, 在文件 app/Http/Kernel.php 内完成: protected $routeMiddleware = [ 'auth' => \Illuminate\Aut ...
- Collision Detection
[Collision Detection] Collision Detection是Rigidbody中的一个属性.所以显然Collision Detection指定的类型只在Rigidbody之间才 ...
- FastDFS和apache/nginx整合
因为FastDFS默认自带的http服务器性能不好, 所以一般建议用外置的apache或者nginx 来解决http下载,以应付大并发的情况 注意nginx扩展模块只支持GET和HEAD模式获取文件, ...
- 获取文件的后缀名。phpinfo
1: function get_extension($file){ //strrchr 返回 .jpg substr :1 是从1开始. substr(strrchr($file,'.'),1) } ...
- SpringMVC 课程第一天
SpringMVC第一天 框架课程 1. 课程计划 第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合My ...
- Linux内核的特征
Linux内核的特征 Linux是个人计算机和工作站上的Unix类操作系统.但是,它绝不是简化的Unix.相反,Linux是强有力和具有创新意义的Unix类操作系统.它不仅继承了Unix的特征,而且在 ...
- Linux yum失败解决
Linux yum失败解决 问题: 在CentOS 5.5中需要使用yum安装程序,出现错误: There was a problem importing one of the Python modu ...
- jq遍历table表demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...