逻辑控制器主要用来控制采样器的执行顺序,仅对其子节点的逻辑控制器和采样器其作用。

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(逻辑控制器)的更多相关文章

  1. Jmeter之逻辑控制器(Logic Controller)

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  2. 【jmter】逻辑控制器(Logic Controller)

    1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”.意思是说, ...

  3. Jmeter之逻辑控制器(Logic Controller)【转】

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  4. jmeter 逻辑控制器Logic Controller详解

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  5. (四)Jmeter之逻辑控制器(Logic Controller)

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  6. jmeter(二十):Logic Controller:逻辑控制器(上)

    逻辑控制器用来控制采样器(samplers)的执行顺序,根据实际需要定制执行规则.在控制器层级下面的所有的采样器都会当做一个整体,执行时也会一起被执行. Logic Controller种类: 以上L ...

  7. Jmeter----逻辑控制器(Logic Controller)

    前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”.意 ...

  8. 转:JMeter基础--逻辑控制器Logic Controller

    1.ForEach控制器 ForEach控制器在用户自定义变量中读取一系列相关的变量.该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值.所以ForEach总是和User Defin ...

  9. Jmeter(十四)Logic Controller 之 If Controller

    If Controller---如果控制器:属于逻辑判断类型的组件,其实学过代码的都知道if--else,while等都是常用的逻辑判断关键词,Jmeter也提供了逻辑判断--If Controlle ...

随机推荐

  1. 3 SpringBoot与微服务

    SpringBoot的使用? 化繁为简: Spring MVC 需要定义各种配置,配置文件多. SpringBoot的核心功能? 独立运行: java -jar XXX.jar (以前启动SPring ...

  2. SecureCRT乱码问题解决方法

    环境:SecureCRT登陆REDHAT5.3 LINUX系统 问题:vi编辑器编辑文件时文件中的内容中文显示乱码,但是直接使用linux系统terminal打开此文件时中文显示正常,确诊问题出现在客 ...

  3. U-boot分析与移植(2)----U-boot stage1分析

    我们要生成u-boot.bin文件,它首先依赖于很多.o文件和.lds链接脚本文件 我们只要找到对应的.lds链接脚本文件就可以分析u-boot的启动流程. 1.打开u-boot-1.1.6\u-bo ...

  4. 用Dos黑窗口运行Cmd命令

    public class BlackWindow { private static BlackWindow _instance; public static BlackWindow Instance ...

  5. c++builder Form重载WindowProc、WndProc 截获消息

    c++builder 重载WindowProc.WndProc 截获消息 方法一WindowProc void __fastcall  myWindowProc(Messages::TMessage ...

  6. 清除苹果手机input的默认样式

    在手机端上写了一个页面,按钮的地方是用input标签button按钮,给的是绿色的背景颜色,在安卓手机上显示正常,在苹果手机上显示不正常,如下图 解决办法: css加上下面这一行代码就可以了,inpu ...

  7. Spring Cloud Zuul 2(基于配置中心的动态API网关)

    在大体了解了API Zuul 和 配置中心Config后我们来尝试完成一个基于配置中心的动态API网关 创建项目 命名为api-gateway-dynamic-route并加入config 和 Zuu ...

  8. spring mvc default-servlet mvc:resources mvc:default-servlet-handler区别

    mvc:default-servlet-handler其实就是default-servlet 交由web容器自己处理 mvc:resources spring来处理 没有被映射的url web容器来处 ...

  9. GIT常用命令以及作用【备忘】

    git commit  提交一个修改 git branch branchName  新建一个branchName的分支 git merge branchName 将当前分支与branchName分支合 ...

  10. Docker学习笔记_Dockerfile常用指令

    Dockerfile常用指令