首页 > 其他分享 >【jmeter逻辑控制器概览】

【jmeter逻辑控制器概览】

时间:2022-12-06 20:31:31浏览次数:38  
标签:控制器 执行 变量 概览 jexl3 取样器 VAR jmeter

一、说明

Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。意思是说,逻辑控制器可以控制采样器(samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。 不同的逻辑控制器可以实现不同的效果,我们在实际测试中,需要根据自己当前的测试场景,来选择合适的逻辑控制器。

二、逻辑控制器类型及用法

1、简单控制器

仅用作将采样器及其相关逻辑控制器等放在一起,组成一个整体结构便于管理和维护,并不具备任何的逻辑控制或者运行时的功能

2、循环控制器

【jmeter逻辑控制器概览】_采样器

  • 指定其子节点在线程组运行一次的过程中运行的次数,可以使用具体数字,或者使用变量,设置多少次,就循环多少次
  • 勾选永远,就会一直循环

3、仅一次控制器

在测试计划执行期间,该控制器下的子节点对每个线程只执行一次

4、forEach控制器

可以根据用户的多个变量依次被循环调用,直到最后一个变量被调用即结束循环。
一般需要配合‘用户定义的变量’来使用,作用是参数化
下面我们来看下具体用法。

【jmeter逻辑控制器概览】_逻辑控制_02

添加forEach控制器:

【jmeter逻辑控制器概览】_采样器_03

  • 输入变量前缀:变量的前缀;如要使用的变量为name_1,则需要填name。
  • 开始循环字段(不包括):从X+1号的变量开始,X为第几个变量;如填0,实际从第一个开始。
  • 结束循环字段(包括):到X的变量结束,X为第几个变量;如填4,实际到第4个
  • 输出变量名称:将要用来使用的变量名
  • Add“”before number?(数字之前加上下划线“”):用户定义的变量有没有下划线分隔编号,最好还是勾上比较方便标识;

设置完成后,我们在forEach控制器下添加一个调试取样器,来展示取到的变量的值。并添加察看结果树,查看结果

【jmeter逻辑控制器概览】_采样器_04

可以看到,线程组运行一次,forEach控制器下引用变量的取样器,每个符合条件的变量都会被执行一次

5、事务控制器

  • jmeter中,默认一个取样器,执行一次,就是一个事务
  • 可以把多个取样器执行一次请求,合并成一个事务, 就可以模拟用户一个真实操作行为
  • 勾选: generate parent sample,在聚合报告中,事务中的所有取样器会被总体展示

【jmeter逻辑控制器概览】_逻辑控制_05


6、如果(If)控制器

适用于满足某项条件才去执行某些取样器的场景

6.1 默认情况: 用 jexl3 或 groovy函数, 函数的运算结果为真时, 才会去运行子集的取样器。

条件格式:${__jexl3(条件表达式)}
示例

== 是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1
!=不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1
!非,如${__jexl3(!(${VAR}!=1),)}对${VAR}!=1的结果取反
&&或||且与或,如 ${__jexl3(${VAR}==1 && ${name} != "heima",)}
> 或者>== 大于等于,如${__jexl3(${count}>=10,)}

6.2 如果直接写表达式,去掉 interpret condition as variable expression 复选勾

【jmeter逻辑控制器概览】_子节点_06

直接写表达式

  • 表达式为真,则执行控制器下的取样器
  • 表达式为假,则不会执行控制器下的取样器

7、交替控制器

同一线程的多次循环,会交替执行控制器下的取样器,自上而下每次一个,如果全部执行后会循环执行

8、随机控制器

子节点的取样器,随机执行一个

9、随机顺序控制器

子节点的取样器的执行顺序随机

10、Switch控制器

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

【jmeter逻辑控制器概览】_子节点_07

有两种赋值方式:

  • 第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素,可以和random函数配合使用。
  • 第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。
  • 当Value为空时,默认执行第1个子节点元素。



标签:控制器,执行,变量,概览,jexl3,取样器,VAR,jmeter
From: https://blog.51cto.com/u_15874356/5916626

相关文章

  • 【jmeter基本配置及属性介绍】
    一、jmeter切换为中文1、从图像界面,options》chooselanguage》Chinese-----只能临时修改图像界面语言,重启后还会变为英文2、持久化为中文配置:将jmeter安装目录下b......
  • 记录一个jmeter导入附件的工作过程
    系统性能测试,需要模拟生产环境需求搭建应用服务和建造压测数据,最大限度的还原生产环境,使系统性能测试的指标更加标准、真切。如某项目财务系统中的薪资管理模块做工资计算......
  • 云原生架构(一)原理概览
    系列目录云原生架构(一)原理概览云原生架构(二)环境搭建云原生架构(三)简单样例云原生架构(四)源码详解云原生架构(五)总结提高一、行业现状 云原生架构真正进入大众视野要从......
  • 拆解硬件_LED灯带控制器_221206
    LED灯带控制器拆解日期:2022年12月06日拆解人:ZHOUTOP面全背面无元件MOS09N03ADataSheet:https://www.jianguoyun.com/p/DYFY1MwQ0erfChjLj-sEIAAEEROMAIM24C02D......
  • Jmeter的CSV参数化策略
    https://www.cnblogs.com/wuzm/p/10928287.html ======================================= csv参数化也是jmeter最常用参数化方式#准备一个csv文件,数字1-20即可#线......
  • jmeter控制器之仅一次控制器
    onceonlycontroller:顾名思义,也就是该控制器下的请求只会执行一次假设线程组中,循环次数为10执行结果:该请求只执行了一次......
  • jmeter场景设计:业务占比
     业务占比混合场景设计混合场景,两个业务的业务占比分别是60%和40%,我们可以使用吞吐量控制器百分比模式,场景设计如下:只是为了测试,所以设计5个线程循环2次,总共10次业务一:吞吐......
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具?!
     每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试 01......
  • 【博学谷学习记录】超强总结,用心分享|性能测试工具Jmeter的简单使用
    一、Jmeter的第一个案例需求:使用JMeter访问百度首页接口,并查看请求和响应信息操作步骤:1.启动JMeter2.在‘测试计划’下添加‘线程组’3.在‘线程组’......
  • thinkPHP6.0 开启多应用后无法获取控制器和方法名、返回空值
    首先开启多应用的方法:composerrequiretopthink/think-multi-app定义路由:<?phpusethink\facade\Route;Route::any('/user/login','\\app\\index\\controller\\U......