JMeter使用逻辑控制器来决定采样器的处理顺序

  • 简单控制器(Simple Controller):存储设备(将某些采样器归组)
  • 循环控制器(Loop Controller:设置循环次数
  • 仅一次控制器(Once Only Controller)
  • 交替控制器(Interleave Controller)
  • 随机控制器(Random Controller)
  • 随机顺序控制器(Random Order Controller): 每个子测试元件都至多执行一次,但是执行顺序是随机的
  • 吞吐量控制器(Throughput Controller):容许用户设定其被执行的频率,这里有两种模式:Percent Execution,该控制器会执行固定比例的循环次数(以测试计划总的循环次数为基准);Total Executions模式,该控制器会在执行数次(设定值)后停止执行。同仅一次控制器,当父循环控制器开始新一轮循环时,控制器的设定值会被重置。另外参数Per User选中,吞吐量控制器就会以虚拟用户为基础来计算它是否该执行,如果没选,就是基于所有用户来计算的。例如:Total Execution模式下,不勾选"per user”,设定值就是吞吐量控制器的总执行数,勾选,则是虚拟用户数乘以Troughput设定值。
  • 运行时长控制器(Runtime Controller):设定运行时长
  • 如果控制器(If Controller):控制其下子测试元件是否执行,容许将脚本作为变量表达式处理(默认是JavaScript),判断条件可以使用函数和变量,例如,${__jexl(${VAR}==23)}或者${COUNT} < 10或者${JMeterThread.last_sample_ok}检查最后一个采样是否成功, 如果选中“Interpret Condition as Variable Expression", 那么对应的表达式将会被计算,并与”true"比较,而不需使用JavaScript.注意:如果判断条件以JavaScript方式解释执行,那么脚本就无法访问任何变量。如果要访问变量,需勾选,并使用__javaScript()函数调用。如果在解释执行代码时发生错误,那么条件就被认定为false,并在jmeter.log记录一条消息
  • While Controller: conditon可能值
    • Blank:当循环中有采样失败了后退出循环
    • LAST:当循环中有采样失败了后退出循环,如果循环前最近的采样失败了,布进入循环
    • Otherwise:当条件等同于字符串”false"时,退出(或者不进入)循环,举个例子:
      • ${VAR} --当VAR被其他测试元件设置为false
      • ${__javaScript("${VAR2}"=="abcd")}
      • ${_P(property)}--当属性在其他地方被设置为"false"
  • Switch Controller:switch value,选择执行的子测试元件对应数字(或名称)。子测试元件从0开始编号
  • ForEach控制器(ForEach Controller):循环遍历一系列相关变量,ForEach控制器非常适合于前置处理器正则表达式一起使用,前置处理器正则表达式可以从一个请求的结果数据中提取需要的输入变量。通过省略“_"分隔符,ForEach 控制器使用输入变量refName_g可以循环遍历所有组合。使用refName_${C}_g格式的输入变量还可以循环遍历所有匹配的所有组合,其中C是一个计数器变量。
  • 模块控制器(Module Controller):提供了一个机制,即在当前测试计划中动态地替换测试计划判断。不应该在远程测试或者非GUI模式下雨工作件一起使用。
  • Include Controller:使用外部JMX文件,将采样器添加到简单控制器之下,接着将简单控制器保存为JMX文件。该文件接下来被用到测试计划中。被包含的测试计划中不能含有线程组。它只能是简单控制器及其子元器件等。(Cookie Manager/User Defined Variables不应该在被包含文件中) ,该控制器在Filename域中不支持变量、函数,但是,如果定义了属性includecontroller.prefix,其内容将作为路径名前缀。
  • 事务控制器(Transaction Controller) : 会产生一个额外的采样,用于衡量执行嵌套测试所耗费的全部时间(包含了控制器范围内的所有处理,不仅是采样),有两种操作模式 1)附加采样在嵌套采样之后添加 ;2)附加采样作为嵌套采样的父采样来添加
  • 录制控制器

JMeter学习笔记--详解JMeter逻辑控制器的更多相关文章

  1. JMeter学习笔记--详解JMeter配置元件

    JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...

  2. JMeter学习笔记--详解JMeter定时器

    定时器的处理优先于同一作用域内的采样器,如果在同一作用域内有多个定时器,那么所有的定时器都会在每个采样器之前处理. 若定时器所在作用域内无采样器,那么定时器不会被处理 固定定时器,每个线程在请求之间间 ...

  3. mybatis 学习笔记 -详解mybatis 及实例demo

    快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...

  4. sql注入学习笔记 详解篇

    sql注入的原理以及怎么预防sql注入(请参考上一篇文章) https://www.cnblogs.com/KHZ521/p/12128364.html (本章主要针对MySQL数据库进行注入) sq ...

  5. C#学习笔记--详解委托,事件与回调函数

    .Net编程中最经常用的元素,事件必然是其中之一.无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等.“protected void Pag ...

  6. Jmeter常用功能详解

    嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅

  7. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  8. 详解JMeter函数和变量(转载)

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  9. Jmeter 测试计划元素详解

    Jmeter 测试计划元素详解 by:授客 QQ:1033553122 由于篇幅问题,采用链接分享的形式,烦请复制以下网址,黏贴到浏览器中打开,下载 http://pan.baidu.com/s/1n ...

随机推荐

  1. require.js 最佳实践

    require.js是一个js库,相关的基础知识,前面转载了两篇博文:Javascript模块化编程(require.js), Javascript模块化工具require.js教程,RequireJ ...

  2. 细数IE6的一串串的恼人bug,附加解决方法!

    1. li在IE中底部3像素的BUG 解决方案:在<li>上加float:left:即可解决 2. IE6中奇数宽高的BUG. 解决方案:就是将外部相对定位的div宽度改成偶数.高度也是一 ...

  3. POJ 1564 Sum It Up (DFS+剪枝)

                                                                                                       ...

  4. ListView 拖拽

    private void ListView1_MouseMove(object sender, MouseEventArgs e) { Patientappointment appointment = ...

  5. 不兼容:不支持SCSI硬盘

    获取机器硬件失败,可能你使用了SCSI硬盘,请更换一台主机进行安装 聚生网管2.11版本不支持scsi硬盘. 终于体会到了不兼容的麻烦了.

  6. LESS详解之编译LESS

      掌握LESS,必须先掌握LESS的编译.因为LESS是CSS预处理语言的一种,是一种动态语言.LESS可以运行在各种语言和环境中,包括浏览器端.服务器端等.就因为是一种CSS预处理语言,所以需要编 ...

  7. Navicat如何直接修改表中数据?

    Navicat如何直接修改表中数据?

  8. STS 自动生成 getter 和 setter

    1.Source --  Generate Getters and Setters

  9. Caffe源代码中Solver文件分析

    Caffe源代码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件 ...

  10. idea 免费激活(破解)

      1.将补丁(JetbrainsCrack-2.7-release-str.jar)拷贝到idea的安装目录/bin下 下载破解补丁 从IntelliJ IDEA 注册码网站:http://idea ...