循环控制器:

指定其子节点运行的次数,可以使用具体的数值,也可以设置为变量

1:勾选永远:表示一直循环下去

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

简单控制器:

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

Foreach控制器:

ForEach控制器一般和用户自定义变量一起使用,用于可以遍历读取相关的返回值。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值。

· Input Variable Prefix:输入变量前缀

· Output variable name:输出变量名称

· Start index for loop(exclusive):循环开始的索引(默认从1开始,如果没有1开始的变量,执行时会报错)

· End index for loop(inclusive):循环结束的索引

· Add”_”before number:输入变量名称中是否使用“_”进行间隔。

注:foreach控制器通常和表达式提取器一起使用。表达式提取值应为-1,表示取全部值,然后sampler在foreach控制器下执行遍历。

仅一次控制器(Once Only Controller):

  作用:在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器。

  注意:将Once Only Controller作为Loop Controller的子节点,Once Only Controller在每次循环的第一次迭代时均会被执行。

事务控制器(Transaction Controller):

作用:事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。

应用场景: 完成一个完整的页面请求或一组请求

参数:

  • Generate parent sample:勾选后,所有的结果将在父结点中展示(选中这个参数结果展示如下图红框,否则显示为下图蓝框)
  • Include duration of timer and pre-post processors in generated sample:选中这一项会统计定时器(timer)的时间,否则只统计采样器(sample)的时间

If 控制器(If Controller):

  作用:根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断(如下图红框内的文字)。

参数:

  • Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
  • Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式

示例一:使用变量表达式的方式进行判断:

示例二:选中Interpret Condition as Variable Expression?,使用变量的方式判断

我这里做个示范,首先取出上一个接口里面的响应id

判断if控制器里面的语句是否为真,如果为真继续执行

这里我把id值写死了,跑一次观察结果,发现执行了服务人员的接口

Switch控制器(Switch Controller):

作用:Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式:

· 第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。

· 第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。

当Value为空时,默认执行第1个子节点元素。

示例:

1、Switch Controller选择的值为 客服登录

2、执行结果:

吞吐量控制器(Throughput Controller):

  作用:控制其下的子节点的执行次数与负载比例分配,别被名字迷惑了,跟吞吐量没任何关系。也有两种方式:

  • Total Executions:设置运行次数,整个测试计划中总计执行次数
  • Percent Executions:设置运行比例(1~100之间),整个测试计划中总计执行百分比
  • Throughtput: 设计的数值
  • Per User: 依据网上的说明在选择Total Executions时,勾选时会在每个线程中执行的次数。但在3.0版本中尝试使用无效

示例:

1、设置线程组循环5次:

2、Throughput Controller1的子结点执行3次:、

结果发现一共运行了3次

3、Throughput Controller2的子结点执行(40% * 线程组循环次数5)= 2次:注意percent选项下,填写的是百分比

观察运行结果,发现运行了2次

执行结果:

随机控制器(Random Controller):

  作用:随机执行其下的某个子结点,随机选择控制器中的请求进行执行

应用场景: 页面的随机访问

配置说明:ignore sub-controller blocks: 忽略子控制器

执行结果,随机选择了三个登录中的一个

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

  作用:随机执行其下的所有子结点

· 与Random Controller不同的是,这个控制器会先将需要随机的内容均执行一遍,但次序不定

· 应用场景: 页面的随机访问,但均需要访问,且次序不限

多运行一次,观察结果,发现两次运行的顺序不同,但是每个接口都运行了一遍

Critical Section Controller 关键部分控制器

作用:用于核心部分的控制,确保其子节点下的取样器或控制器在一个线程中仅会执行一次

应用场景: 用户登录

配制说明

· Lock name: 锁名称,这里可以填入其子节点下执行的线程的名称,这个线程作为一个全局锁存在

Interleave Controller 交替控制器

也称交替控制器,使得该控制器包含的取样器步骤交错执行在每个循环中,每个线程用户仅执行一次控制器内的请求,线程用户依据循环的次数请求控制器中的请求数

配制说明:ignore sub-controller blocks: 是否忽略子控制器

Module Controller 模块控制器

· 模块控制器,用于跳转到选定的控制器位置并执行对应的控制器

· 应用场景: 业务逻辑的跳转

· 配制说明

· Module to Run: 选择需要跳转到的目标控制器

While Controller:

While 控制器,与开发语言中的While功能一致。直到条件为false时,停止运行

循环执行一个请求,仅判断一种状态下退出循环

Condition条件如下:

1:为空(不输入任何值) -- 直到某次请求执行失败才退出循环

2:LAST -- 直到最后一个请求请求失败才退出循环

3:其它 -- 条件值等于"false"时,退出循环

4:Contion可以输入计算结果等于“false”的变量、函数。

例:${num!=5判断变量num的值是否为5等于5则退出循环

${__javaScript("${num}"!=8 && "${num}"<"5",)},表示在${num}不等于8的情况下执行循环体,但是只能循环5次

我们通过计数器让它有十次循环的机会

查看结果,循环体执行到${num}==5的时候就停止了

Jmeter(四)_逻辑控制器详解的更多相关文章

  1. Jmeter (四)聚合报告详解

  2. ElasticSearch第四步-查询详解

    ElasticSearch系列学习 ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSea ...

  3. J2EE进阶(四)Spring配置文件详解

    J2EE进阶(四)Spring配置文件详解 前言 Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程 ...

  4. [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解

    一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...

  5. TCP三次握手与四次挥手详解

    目录 TCP三次握手与四次挥手详解 1.TCP报文格式 2.TCP三次握手 3.TCP四次挥手 4.为什么建立连接需要三次握手? 5.为什么断开连接需要四次挥手? 6.为什么TIME_WAIT状态还需 ...

  6. Swift_ScrollView _ API详解

    Swift_ScrollView _ API详解 GitHub class ViewController: UIViewController,UIScrollViewDelegate { var sc ...

  7. Jmeter 正则表达式提取器详解(Regular Expression Exactor)

    Jmeter 正则表达式提取器详解(Regular Expression Exactor) Name(名称):随意设置,最好有业务意义. Comments(注释):随意设置,可以为空 Apply to ...

  8. Jmeter(十四) - 从入门到精通 - JMeter定时器 - 下篇(详解教程)

    1.简介 用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容.填表.或者查找正确的链接等.为了模拟用户实际情况,在性能测试中我们需要考虑思考时间.若不认真考虑思考时 ...

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

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

随机推荐

  1. PHP 获取JSON json_decode返回NULL解决办法

    在用json_decode对JSON格式的字符串进行解码时竟然为空,页面空白啊,整半天检查这里检查那里,问同事都没用. 今天必应搜索了下,问题解决了,原来是有BOM头输出,大虾的解决办法如下: 1). ...

  2. 零基础逆向工程13_C语言07_指针01_反汇编

    1."带*类型"的特征探测 宽度 在同一个平台下,任何指针变量的尺寸都是一样的(都等于系统字长),如在32位平台中任何类型指针宽度都是32位. 声明 1.带有* 的变量类型的标准写 ...

  3. ptxas fatal : Unresolved extern function Error 255

    This question already has an answer here: External calls are not supported - CUDA 1 answer I am tryi ...

  4. Android 模仿苹果虚拟悬浮按钮(自动靠边、可浮现任何界面上)

    由于最近小蔡的手机音量键坏了,调节音量有点麻烦,突发奇想,想自己实现一个快捷键来调节音量.在忘上参考了一些代码,总结出一般本章,分享给大家. 首先 按钮要想实现悬浮在任何界面,那么必须是要写在服务里面 ...

  5. 常用浏览器User-Agent大全

    =======================PC浏览器======================== OperaMozilla/5.0 (Windows NT 6.1; WOW64) AppleW ...

  6. javaSe数据类型

    在学完了java程序的结构以及注释后呢按照一般的教程我们应该学点什么呢?   没错就是变量和数据类型[其实我的内心是拒绝的,又是无聊的一大堆,不仅无聊,还得掌握] 好了首先介绍什么是变量: 变量:变量 ...

  7. idea存留

    1.导师匿名评价系统 类似看准网 2.在线降重软件 基于翻译api,或者后期写算法 在线查重导流 公众号: e搜罗

  8. Js笔记-第11课

    // 第11课         作用域精解     运行期上下文,当函数执行时,会创建一个成为执行期上下文的内部对象.一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独 ...

  9. 【线性基】bzoj2844: albus就是要第一个出场

    线性基求可重rank 题目描述 给定 n 个数 $\{ a_i \}$ ,以及数 $x$. 将 $\{ a_i \}$​ 的所有子集(包括空集)的异或值从小到大排序,得到 $\{ b_i \} $. ...

  10. Ubuntu下搭建多用户多权限ftp

    #1.切换root用户模式 (已在root模式下的请忽略) sudo -i #然后提示你输入当前用户密码,输入密码后回车后如果密码正确控制台就变成root@***:/# 了. #2.更新软件源 apt ...