参考《全栈性能测试修炼宝典JMeter实战》第六章 JMeter 元件详解中第一节JMeter逻辑控制器

JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套别的种类的逻辑控制器 

一、ForEach控制器
  定义一个循环规则,关键参数说明:
  输入变量前缀:可以在“用户自定义的变量”中定义一组变量,控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数
    Start index for loop:循环变量下标起点
    End index for loop:循环变量下标终点
    输出变量名称:循环控制器生成的变量名称
    Add “_”before number?:变量前缀是否加“_”作为分隔符

  实现步骤如下:
    1、新建一个线程组,然后新建一个http请求,访问http://jmeter.apache.org/demos/,Meter官网提供的脚本 

    2、使用正则表达是提取步骤1访问页面中的所有链接,正则表达式的用法参考笔者的python的re博文

    3、添加一个ForEach 控制器,添加参数,start和end index for loop参数可以不填,不填就默认执行变量列表中的所有元素       

    4、在ForEach 控制器中添加http请求,访问由ForEach控制器传递的参数  

    5、在http请求下添加监控器-察看结果树。执行脚本,结果如下  

    执行脚本下载

二、简单控制器
  用来制定了一个执行单元,他不改变元件的执行顺序,在他下面还可以嵌套其他控制器。简单控制器的属性只有名称和注释

三、Include Controller
  用来导入外部的测试片段(非完整的测试计划),在执行时会执行导入的测试计划。但是被导入的测试计划有特殊要求,它不能有线程组,只能包含简单控制器及控制器下的元件。简单的说就是相当于家了一个执行单元,一个封装了的业务操作单元,类似我们程序开发中的函数一样。
  文件名参数:必填项,如果没有会报错

四、Runtime Controller
  用来控制其子元件的执行时长,单位为秒
  Runtime(seconds):默认为1,去掉1则默认为0,此时不执行其节点下的元件

五、Switch Controller
  类似于高级语言中的Switch逻辑控制语句。
  Switch Value:匹配值,可以为数字,也可以为字符。为字符时匹配取样器名称,如果匹配不上就会默认并找取样器名称为default的取样器,如果没有则不运行。如果为数字则从switch控制器下的第一个取样器为0,第二个为1依次算起

六、While Controller
  While条件控制器,其节点下的元件将一直运行知道While条件为false  
  Condition:接受变量表达式与变量。如图当inputUrl=7时,则inputUrl小于7的会一直运行  

七、交替控制器
  节点下的取样器交替执行。
  Ignore sub-controller blocks:忽略子控制器,即子控制器失效,由交替控制器接管

八、仅一次控制器
  控制器下的子元件只运行一次,即使将仅一次控制器放在循环控制器下面,也只运行一次

九、吞吐量控制器
  用来控制其下元件的执行次数,并无控制吞吐量的功能。想要控制吞吐量可以使用Constant Throughput Timer
  Percent Executions:按执行次数的百分比来计算执行次数,此时Throughput取值是0~100。Per User是否勾选对percent executions模式无影响
  Per User:如果选择则按虚拟用户数来计算执行次数。如果不选择则默认执行所有的虚拟用户
  Total Executions:按Througput的值来制定执行次数,小于0则不执行

十、如果(if)控制器
  通过条件判断来控制节点下的元件是否执行
  Condition:判断条件,勾选Interpret Condition as Variable Expression?时condtion使用变量表达式来设置条件
  Evaluate for all children:判断条件是否针对所有的字节的,只在if controller的入口处判断一次

十一、模块控制器
  可以通过模块控制器在当前测试计划中引入新的测试片段(也叫脚本片段,由控制器、取样器及辅助元件构成,鞥能够完成负载的模拟)。模拟控制器也可以引入当前测试计划中的控制器
  Module To Run:下来列表,列出了测试计划及工作台包含的控制器,在此选择引入哪一个脚本片段

十二、随机控制器
  节点下的元件随机执行

十三、随机顺序执行控制器
  节点下的元件随机执行,但是每个元件只执行一次

十四、循环控制器
  控制节点下的元件执行次数。时间节点下的执行次数为线程组设置的循环次数乘循环控制器的次数
  循环次数:要么设置永远,要么填写具体的次数,只能选择一个

十五、录制控制器
  录制时候用的

十六、事务控制器
  事务响应时间是我们衡量业务性能的主要指标,事务控制器可以把其他节点下的取样器执行消耗时间累加在一起,便于统计。同时对每一个取样器的执行时间进行统计。
  如果事务控制器下的取样器有多个,只有当所有的取样器都运行成功,整个事务控制器定义的事物才算成功
    generate parent sample:选择是否生成一个父取样器
    include duration of timer and pre-post processors in generated samle:是否包含定时器,选择将在取样器前与后加上延时

JMeter—逻辑控制器(六)的更多相关文章

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

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

  2. Jmeter(九) - 从入门到精通 - JMeter逻辑控制器 - 上篇(详解教程)

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

  3. Jmeter(十) - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)

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

  4. Jmeter(十一) - 从入门到精通 - JMeter逻辑控制器 - 下篇(详解教程)

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

  5. 【JMeter_16】JMeter逻辑控制器__随机控制器<Random Controller>

    随机控制器<Random Controller> 业务逻辑: 当每次执行到该逻辑控制器时,随机挑选控制器下的任意一个子节点<取样器.逻辑控制器> Ignore sub-cont ...

  6. 【JMeter_17】JMeter逻辑控制器__随机顺序控制器<Random Order Controller>

    随机顺序控制器<Random Order Controller> 业务逻辑: 当控制器被触发时,将控制器下的所有子节点顺序打乱执行一遍,执行一遍,执行一遍,不是执行一个. 注意:是将子节点 ...

  7. Jmeter(十二) - 从入门到精通 - JMeter逻辑控制器 - 终篇(详解教程)

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

  8. JMeter逻辑控制器完整介绍

    JMeter逻辑控制器可以对元件的执行逻辑进行控制,就像编程一样,实现业务需求. JMeter包括了以下逻辑控制器: 一共17种.除了仅一次控制器外,其他控制器下可以嵌套别的种类的逻辑控制器. If ...

  9. Jmeter逻辑控制器操作,附栗子

    jmeter中的逻辑控制器确定采样器的执行顺序.右键线程组-->添加-->逻辑控制器. 一.简单控制器 简单控制器对JMeter如何处理添加到其中的采样器没有影响.只是方便我们做分组命名. ...

随机推荐

  1. Tomcat简介

    Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 如果你学过html,css,你会知道你写的页面只能自己访问,别人不能远程访 ...

  2. linux/cmd中python路径导入ModuleNotFoundError: No module named 'xxx'

    在linux或者直接在cmd中运行python文件时 会遇到导包错误的情况ModuleNotFoundError: No module named 'xxx’由于不在pycharm中 所以这里不能将上 ...

  3. FTP上传心得

    最近出了一个问题就是在本地上传FTP没有一点问题 可是部署到服务器上.上传的时候总是false.解决办法 ftp.enterLocalPassiveMode();boolean storeFile = ...

  4. (转)10大H5前端框架

    http://www.cnblogs.com/kingboy2008/p/5261771.html 作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端 ...

  5. Java高并发之设计模式

    本文主要讲解几种常见并行模式, 具体目录结构如下图. 单例 单例是最常见的一种设计模式, 一般用于全局对象管理, 比如xml配置读写之类的. 一般分为懒汉式, 饿汉式. 懒汉式: 方法上加synchr ...

  6. CentOS 安装 kafka

    首先确保JDK已正确安装并设置好环境变量 安装Zookeeper 到官网下载: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ zooke ...

  7. 从零开始学 Web 之 HTML(一)认识前端

    大家好,这里是 Daotin 从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享 ...

  8. vc++开发安装程序实例

    前言 市面上有很多安装程序制作软件:但是,要实现个性化安装程序,还是自己动手来写一个更为妥当.本文介绍基本的安装程序制作的步骤. 安装程序界面: 安装程序可以分为几个功能点:1 资源的嵌入.释放.2 ...

  9. 精读JavaScript模式(五),函数的回调、闭包与重写模式

    一.前言 今天地铁上,看到很多拖着行李箱的路人,想回家了. 在上篇博客结尾,记录到了函数的几种创建方式,简单说了下创建差异,以及不同浏览器对于name属性的支持,这篇博客将从第四章函数的回调模式说起. ...

  10. JavaWeb学习 (十六)————JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...