参考资料:官网

概述

逻辑控制器控制Samplers执行的顺序;作用域是具体逻辑控制器元件的子节点,就是说放在控制器下面的所有的采样器都会当做一个整体,均受逻辑控制器控制。

jmeter提供了多样的逻辑控制器,如下图:

jmeter共提供17个逻辑控制器,下面逐个介绍

Simple Controller(简单控制器)

Jmeter里最简单的一个控制器,它可以组织采样器和其它的逻辑控制器(分组功能),提供一个块的结构和控制,并不具有任何的逻辑控制或运行时的功能,对jmeter测试运行没有任何影响。


例如将业务逻辑和监听器分别放入不同的组用来维护脚本,groupA用来存放控制逻辑控制器和具体sampler,groupB用来存放所有的监听器。

Loop Controller(循环控制器)

指定其子节点运行的次数

这里的设置类似线程组中的设置,Forever选项:勾选上这一项表示一直循环下去,直至计划结束或者人为结束,再或者异常结束。
如果清空loop count对应的数值,当离开该节点后,后自动勾选forever。
如果loop count中设置的是非数字,则不会运行。

如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行的次数为两个数值相乘的结果。

Once Only Controller(仅一次控制器)

在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,在整个测试计划中同一个线程的多次请求会被跳过。
Once Only Controller总是在任何循环父控制器的第一次迭代中执行,因此,如果once only controller放入loop controller中并设置循环次数为5,once only Controller只会在第一次迭代的时候执行一次;若在loop Controller的父级元素(这里是threadGroup)中设置循环次数,那么once only Controller会被执行父级的总循环次数

例1:分别设置threadgroup运行1次和2次,父子关系如图

例2:once only Controller的所在循环的父级共执行10次(2*5),once only Controller执行10次

interleave controller(交替控制器)

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

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

例1:简单的两个请求交替

例2:配合控制块完成复杂交替若有交替操作的有多个请求,请使用simple Controller

例3:勾选Ignore sub-contorller blocks(顺便演示3个请求块交替)

可以嵌套完成更复杂的混合交替

Random Controller(随机控制器)

类似交替控制器,但该控制器随机选取某一个取样器请求(或者一个块)并执行,不是轮询而是随机,完全可以参考interleave controller

从例子的结果看啊3个分组是没有按顺序执行,而是没有规律的随机执行

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

随机顺序控制器类似简单的控制器,它会一次执行每个子元素,但是节点的执行顺序是随机的(正常的情况下是依次按顺序执行)

从例子的结果看,simpleController中的sampler是按顺序执行的,randomOrderController中的sampler是乱序的(为了更好看出结果的差异,可以多执行几次,或者在外部加入循环控制器)

Throughput Controller(吞吐量控制器)

控制其下的子节点的执行次数与负载比例分配。

控制方式有两种:

  • Total Executions:设置运行次数
  • Percent Executions:设置运行比例(1~100之间)

Throughput:设置具体值

Per User:每个用户
如果勾选此项,控制器在每个用户(线程)的基础上计算是否应该执行;否则计算所有用户(线程)

例1:设置线程组循环10次,throughput Controller的控制策略设置Total Executions为1,最终throughput控制的sampler只执行一次

例2:将上述用例做修改Throughput Controller的控制策略设置Percent Executions为20,结果执行2次

Runtime Controller(运行周期控制器)

控制该控制器下子元素的运行时间

例:设置runtime为5秒(设置太大结果过多不好演示),在sampler的name中加入时间

If Controller(If 控制器)

有点变成知识的都懂得,if是条件判断。根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断。

condition:表达式,true/false。若结果不是boolean值,认为是false
Interpret Condition as Variable Expression:是否判断变量值是否等于字符串true(不区分大小写)
Evaluate for all children:是否在每个子结点执行前都会计算表达式

默认情况下,条件只在初始条目上进行一次评估,但是可以选择对控制器中包含的每个可运行元素。

While Controller(while循环控制器)

循环控制器的一种:while(condition表达式) action 。根据给定表达式的值决定是否执行该节点下的子节点。

blank - 当取样器发生错误时,退出循环
LAST - 当取样器发生错误时,退出循环.如果在循环前面的取样器失败,不进入循环
Otherwise - 当条件是false时退出循环


jmeter应用—逻辑控制器(一)
jmeter应用—逻辑控制器(二)

原文连接 http://blog.csdn.net/yue530tomtom/article/details/78658890

jmeter应用---逻辑控制器(一)相关推荐

  1. jmeter应用---逻辑控制器(二)

    接上篇 jmeter应用-逻辑控制器(一) Switch Controller(Switch控制器) Switch控制器类似交替控制器,与交替控制器不同的是switch控制器每次迭代运行子节点的其中一 ...

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

    一.简单控制器(Simple Controller): 作用:这是Jmeter里最简单的一个控制器,它可以让我们组织我们的采样器和其它的逻辑控制器(分组功能),提供一个块的结构和控制,并不具有任何的逻 ...

  3. 【四】Jmeter:逻辑控制器

    一.Logic Controller(逻辑控制器) Jmeter 逻辑控制器: 1.可以对元件的执行逻辑进行控制,除仅一次控制器外,其他控制器下可以嵌套别的种类的逻辑控制器. 2.以下详解均以简体中文 ...

  4. jmeter常用逻辑控制器的使用(如果(if)控制器)

    jmeter很强大,他无所不及 今天,这篇文字着重讲述jmeter的一些常用的控制器,老规矩,不懂的,先赞后问,咱们开始吧 一, 如果(if)控制器 1.1 大概意思 从这个名称不难理解意思,这个控制 ...

  5. Jmeter 常见逻辑控制器详解

    简介 Jmeter有很多逻辑控制器,可以控制请求的执行顺序和执行逻辑,本文就Jmeter常见的逻辑控制器做一个详细的描述,并通过示例让大家了解逻辑控制器的作用. 代码的逻辑分支通常有: 条件判断IF ...

  6. jmeter常用逻辑控制器(事务控制器,循环控制器)

    jmeter很强大,誓要干倒postman 一,事务控制器 1.1 打开方式: 鼠标右键)线程组--->(鼠标悬停)添加--->(鼠标悬停)逻辑控制器--->(左键点击)事务控制器. ...

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

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

  8. Jmeter之逻辑控制器操作

    1.事务控制器 添加事务控制器 2.循环控制器 添加循环控制器

  9. jmeter的逻辑控制器

    简介:本文章介绍foreach控制器,if控制器,交替控制器,循环控制器 一.foreach控制器 1.按照下面的顺序放置元件 2.选择foreach控制器,start index 等于0,表示从第一 ...

最新文章

  1. [转] 理解RESTful架构
  2. 周志华:“深”为什么重要,以及还有什么深的网络
  3. #6279. 数列分块入门 3(区间修改,查询权值前驱)
  4. TCP_Wrappers 基于TCP的安全控制
  5. 蚂蚁御术:我的前端十年成长之路
  6. GridView中的CheckBox单击事件(oncheckedchanged)
  7. java url参数转换:_提示:通过URL激活并发送参数
  8. js验证固定电话、手机号码(代码大全)
  9. 使用D9的SetFVF无法控制数据字段在内存中的顺序,所有字段的顺序都是固定的。自能选择好用还是不用。...
  10. pygame-KidsCanCode系列jumpy-part15-PowerUp加速器
  11. 熊猫支持html5么,Steam疯狂周三特惠推荐:你给我看大熊猫,我就给你钱
  12. 阿里发力线下渠道,腾讯京东该如何打破其流量优势?
  13. [Linux] Ubuntu13.04 搭建OK6410-A开发板的开发环境
  14. 双目估计方法_基于双目视觉的自动驾驶技术
  15. 疑似SSD掉盘:自动重启;进BIOS看不到SSD;断电重启才能看到
  16. 三峡大坝水位落差达40层楼高,船舶要如何翻越?
  17. iOS 在线下载字体
  18. 霸榜COCO!DINO: 让目标检测拥抱Transformer
  19. 苹果快捷键怎么调出来_原来还有这么好用的CAD快捷键,文末附赠快捷键鼠标垫!留言走起...
  20. CentOS7 安装 Oracle

热门文章

  1. 生活机器人 live tiny-作者:逝秋
  2. 【FPGA学习】3-基于FPGA的DDS参考设计
  3. 作业—STM32串口通讯
  4. SDN实战团技术分享(三十八):DPDK助力NFV与云计算
  5. 龙格-库塔法(Runge-Kutta)
  6. 艾默生UPS状态监视系统的设计
  7. 国内首款免。费打电话的软件-想省钱的进
  8. python2.7使用教程_Python 2.7基础教程之:概要介绍
  9. 小米9android系统耗电量大,小米9品控翻车,大批手机出现耗电异常情况!
  10. redis进程占用CPU很高-达到100