史上最全jmeter逻辑控制器案例详解

在jmeter中逻辑控制器可以控制采样器(samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被执行。

(1)控制测试计划或者线程组中节点的逻辑执行顺序。

(2)对测试计划或者线程组中的脚本进行分组、方便jmeter统计执行结果以及脚本运行时的控制等。
jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。

测试计划—线程组—逻辑控制器

一、简单控制器(Simple Controller):

从下图看出监听器生效于控制器内的所有采样器,有多个简单控制器时,采样器按顺序执行

 

二、循环控制器(Loop Controller):

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

  1、Forever选项:勾选上这一项表示一直循环下去

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

 

循环控制器1设置循环3次,循环控制器2设置循环2次,线程组1循环次数1时:

HTTP请求3未处于循环控制器下,故只执行1次

 

循环控制器1设置循环3次,循环控制器2设置循环2次,线程组1循环次数2时:

先循环控制器2 2次,再循环控制器1 3次,再线程1循环2次

 

 

三、仅一次控制器:

仅一次控制器,在循环执行中对该控制器下的请求进行执行一次,然后在接下来的循环执行中将会跳过该控制器下的所有请求。

在进行登录的测试中,可以考虑将登录请求放在仅一次控制中,这样登录请求只执行一次。在并发查询时,可能会使用到仅一次控制器,在并发查询时,我们只需要登录请求执行一次即可。Jmeter中的仅一次控制器相当于loadrunner中的init的初始化action。


线程循环设置5

HTTP请求2不在控制器内

 

四:随机控制器

随机控制器下的sampler添加3个

线程组循环设置1时,每运行一次会随机地运行1个sampler

 

线程组循环设置2时,每运行一次会随机地运行2个sampler

五、随机顺序控制器

随机顺序控制器下的sampler添加3个

随机顺序控制器执行一次,会随机打乱执行它下面的所有的sampler一次

线程组循环设置1时,每运行1次会运行3个sampler,顺序打乱随机

 

线程组循环设置2时,每运行1次会运行3个sampler,循环2次,共计6个sampler,顺序打乱随机

六、交替控制器

循环控制器(设置循环7次)——交替控制器,下面添加3个sampler 

循环时顺序迭代交替控制器下的sampler 

 

线程组1循环设置1次,循环控制器设置7次,顺序循环7次sampler  1231231

 

 

线程组1循环设置2次,循环控制器设置7次,顺序循环7次sampler ,再循环线程的2轮

 

 

七、Runtime控制器

Runtime(seconds):设置为N,则其下所有节点的运行时间为N秒。其下所有节点,跑完一轮,耗费时间小于N秒,此时,再从头执行一边,直到执行时间等于N,跳出控制器。

八、如果(If)控制器

if控制器条件满足,执行控制器下的Sampler;不满足、不填写条件,则不执行

1.Interpret Condition as Variable Expression?:这个选项勾选了之后,条件中,如果写“${a}" == "${b}”(及时变量a和变量b的值相等,也不会执行)。这个地方,就必须要填写一个返回True的表达式,比如${JMeterThread.last_sample_ok},这样的表达式。

2.Evaluate for all children:假如这个控制器下面,有3个HTTP请求。如果需要在执行每个HTTP请求前,进行判断是否满足控制器中的条件,则需要勾选该复选框。
 

debug Sampler  响应数据  JMeterThread.last_sample_ok=true

条件设置为${JMeterThread.last_sample_ok},这是判断boolean类型,true执行,false不执行

条件设置为"${JMeterThread.last_sample_ok}"=="AAA",成立执行,不成立不执行

 

 

九、While控制器

执行该控制器下所有节点,直到它的条件被判断为false,才会跳出控制器,执行后续sampler

1、哪些条件会导致While Controller控制器跳出循环退出?

成功的sampler在前面 失败的sampler在后面 执行到fail会跳出循环
条件中的方法或者变量为false   Condition     ${BooleanValue}

条件不满足了  Condition     "${BooleanValue}"=="AAA"
这个控制器下的sampler执行结果失败

 

2、哪些条件会导致While Controller控制器下sampler一直循环执行?

Condition什么都不写(会一直循环执行 知道执行到有fail跳出循环)

失败的sampler在前面 成功的sampler在后面 这种情况会一直执行死循环

Condition写LAST(会一直循环执行 知道执行到有fail跳出循环)Condition     LAST

十、While控制器

Switch Value可以填什么?

1.什么都不填写:此时,执行第一个节点 


2.填写数字:填写N,则会执行这个控制器下面的第N+1个Sampler 


3.填写字符:会进行sampler名称字符串全匹配     填写     sampler名称全匹配 

 

十一、遍历循环控制器ForEach 控制器

 作用:ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值(多个变量执行多次)

示例:1、创建不同权限的用户,账号用随机变量创建,类型0和1用自定义变量

输入变量前缀:在其中输入需要遍历的用户参数(User Parameter)

Start index for loop(exclusive):循环指数开始(唯一)→ 遍历查询的变量范围,开始的值(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)

End index for loop(inclusive):循环指数结束(包含)→ 遍历查询的变量范围,结束的值

输出变量名称:将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}

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

PS:这个控制器一般配合配置元件→ 正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。

十二、事务 控制器

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

应用场景: 完成一个完整的页面请求或一组请求或一组测试场景(多线程时是顺序执行的)

参数:

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

1、事务下有多个取样器,其中一个取样器请求失败,这个事务就失败了

 

十三、吞吐量控制器throughput controller

待续————————————————————————————————

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3.8.2中文手册chm_3.2.2中文语法考察

3自然语言3.1动物的语言3.2自然语言3.2.1英文语法考察3.2.2中文语法考察常见理论可对中文进行的描写与解读如下。汉字的起始是笔划,包括有:横、竖、撇、点、捺、提六种基本笔划:一、丨、丿、丶、㇏、㇀。这些基本笔划可以进一步组合出25种复合…

TensorFlow8-mnist手写数字识别入门

分类问题的损失函数为什么一般不用MSE?MSE在逻辑回归中可能具有多个局部最优点 不能用梯度下降算法

jmeter服务器性能资源监控部署

1、下载https://jmeter-plugins.org/install/Install安装插件plugins-manager放置lib/ext下,重启jmeter选项页面可查看到此下载插件 2、准备客户端插件jmeter-plugins-perfmon-2.1.jar和服务端监控插件ServerAgent-2.2.3(CMDRunner.jar、ServerAgent.jar…

C++中log的底数理解

C 中log是以e为底的 log10 是以10为底的 现在来看看为什么底数具体为多少不重要? 读者只需要掌握(依稀记得)中学数学知识就够了。 假设有底数为2和3的两个对数函数,如上图。当X取N(数据规模)时&#xff0…

java如何禁用usb_IT技巧分享59: 如何禁用USB端口以及光驱来保证数据不被泄露

现在电脑USB接口是最基本的一个配置,能快速的把电脑文件拷贝到u盘或者移动硬盘,大大的提高了我们的工作效率,但也容易感染病毒,把公司商业机密泄露出去,为了加强公司安全措施,现提供禁用USB办法。操作步骤&…

mysql原理--连接查询的成本

1.准备工作 连接查询至少是要有两个表的,只有一个 single_table 表是不够的,所以为了故事的顺利发展,我们直接构造一个和 single_table 表一模一样的 single_table2 表。为了简便起见,我们把 single_table 表称为 s1 表&#xff0…

jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group

我们有时需要模拟非常真实复杂的用户压测场景,可以用到此插件来设计场景 1、安装插件,选项——Plugins Manager打开安装页面 2、搜索standard set并安装,重启jmeter,查看测试计划——添加线程组——jpgc - Stepping Thread Group…

防止文件重复定义之方法

防止重复定义用#ifndef #define #endif 若文件为类中成员函数可以直接使用 若文件为函数,若函数的声明和定义放在一起,则只能采用static或者inline方法解决。用#ifndef不管用 若文件为函数时,函数的声明和定义分别放在.h和.cpp中&#xff…

部署java项目_企业最看重什么样的Java人才?

很多人学习Java真的不是为了梦想,不是爱好,仅仅是想成为拿到高薪的那个人,成为同学里赚的最多的人,成为别人嘴里谈着的那个人。要成为拿高薪的Java工程师,我们要先看看企业到底需要哪方面的人才。上图是某招聘网站上Ja…

jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?

一、后置处理器—正则表达式提取器 1、添加正则表达式提取 2、正则表达式提取面板介绍: 引用名称:提取引用名称,下个请求要引用此参数名称,如填写token,下个请求中用${token} 正则表达式:():括…

数据结构树4-二叉搜索树2

二叉搜索树.h: #ifndef _二叉查找树_H #define _二叉查找树_H #include<iostream> #include<string>enum Boolean{ FALSE,TRUE}; template<class Type> class Element { public:Type key;//方便添加更新数据 }; // 错误我的写法&#xff1a;template<c…

【功能业务篇】APP授权微信登录、绑定账号测试思考

参考https://open.weixin.qq.com/cgi-bin/showdocument?actiondir_list&tresource/res_list&verify1&idopen1419317851&token&langzh_CN 准备工作 移动应用微信登录是基于OAuth2.0协议标准 构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登…

数据结构-树3-红黑树

1、刚开始建立的红黑树的红黑树只有一个指针&#xff08;实际为结点&#xff0c;它的右子树指向真正的根结点&#xff08;现在指向空结点&#xff09;。左子树为空结点&#xff0c;里面的数据为负无穷大&#xff09; 2、实现Insert函数

比亚迪后续车都会搭在鸿蒙系统吗_华为鸿蒙系统上车,比亚迪汉发布!我告诉你华为鸿蒙到底是什么...

最早见到华为的HiCar&#xff0c;还是今年4月份的华为P40系列手机发布会。根据发布会公布的信息&#xff0c;HiCar主要的特点就是手机与汽车的顺畅连接体验。借由5G手机&#xff0c;汽车可以实现更强的数据传输能力&#xff0c;同时百万级别的手机APP也会扩展至汽车之上。在这次…

Python模拟实现multipart/form-data格式上传图片文件

一、单字段发送单个文件 url "http://httpbin.org/post" data None files { ... } r requests.post(url, data, filesfiles) 而这个files参数是可以接受很多种形式的数据&#xff0c;最基本的2种形式为字典类型和元祖列表类型 1、字典类型的files参数 { &q…

tensorflow9-mnist手写数字识别进阶-多层神经网络建模

大圆为一个神经元模型 全连接&#xff1a;相邻的两层之间所有的结点都会连接 神经网络的层数&#xff1a;一般指的谁隐藏层的数量 上图中的网络即为一层神经网络 以上即为两层的全连接神经网络 两层神经网络模型训练 神经网络的层次是不是越多越好&#xff1f;并不是越多越好…

BurpSuit配置抓包http和https请求

1、下载安装burpsuit https://portswigger.net/burp/communitydownload 双击一直点下一步&#xff0c;可安装成功 2、burpsuit设置 2、浏览器设置代理 设置-高级-打开代理设置-局域网设置 3、这样可以抓取http包了 4、Burp Suite要抓HTTPS的包&#xff0c;是需要有Burp Sui…

TensorFlow10-多层神经网络建模,存储和载入

整体流程&#xff1a; 只保存最近5个模型 playground.tensorflow.org TensorFlow浏览器训练网址

手机突然电量消耗很快_手机掉电突然变快?这5点操作你肯定至少做了其中一个!...

许多人都遇到过手机掉电突然变快的情况。以前充一次电&#xff0c;明明可以用一整天的&#xff0c;某天突然发现&#xff0c;满电的手机没打几局游戏或才看一会电视&#xff0c;电量就没了一大半&#xff0c;一天充好几次都不够用。每每遇到这种情况时&#xff0c;很多人都觉得…

Python史上最简单5行代码群发邮件Zmail模块

zmail简介 Zmail 允许你发送和接受邮件尽可能的简单。你不需要去检查你的服务器地址、端口以及自己构造MIME对象&#xff0c;使用Zmail&#xff0c;你只需要关注你的邮件内容即可。Zmail只在python3中运行&#xff0c;不需要第三方模块。不支持python2 Zmail的优势 自动填充…