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 ...
随机推荐
- C# 获取天气 JSON解析
说明: winform获取中国天气的数据 中国天气返回的是JSON数据格式,这里做简单的解析. 用的http://www.weather.com.cn/data/sk/.html获取的天气. [ ...
- linux之fstab文件详解
/etc/fstab是用来存放文件系统的静态信息的文件.位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改. 当系统启 ...
- Flask之性能
5.5 性能 一.不同角度的网站性能 普通用户认为的网站性能 网站性能对于普通用户来说,最直接的体现就是响应时间.用户在浏览器上直观感受到的网站响应速度,即从客户端发送请求,到服务器返回响应内容的时间 ...
- leetcode804
int uniqueMorseRepresentations(vector<string>& words) { map<char, string> st; st.ins ...
- ocx控件针对网页刷新和关闭分别进行区分处理
当ocx加载在网页上时,如果对网页执行F5刷新事件,ocx控件会销毁ocx的窗口类,但是ocx的APP类是不会销毁的. 只有当网页被关闭时,才销毁app类. --------------------- ...
- android获取mp4视频文件总时长和视频宽高<转>
android使用 MediaMetadataRetriever 获取视频文件的 总时长 和视频的分辨率. 根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错 ...
- 【289】◀▶ Python I/O & 读写文本文件
参考:Python 文件 I/O 参考:Python OS 文件/目录方法 目录: 01 open 函数 用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写. 02 F ...
- 0k6410定时器详细分析
看到一篇很好的博文,分析2410定时器中断的使用的,很详细,和大家分享一下 转载来源于http://www.cnblogs.com/Neddy/archive/2011/07/01/2095176.h ...
- Scala语言简介和开发环境配置
Scala语言的简介和开发环境搭建 Scala是一门结合了面向对象特征和函数式编程特征的语言,它是一个创新的编程语言产品.Scala可以做脚本(就像shell脚本一样),可以做服务端编程语言,可以写数 ...
- IP地址分类和子网划分
IP地址: 地址范围 网络地址规律 子网掩码 私有地址 保留地址 A类地址:从1.0.0.0 到1 ...