美文网首页
jmeter逻辑控制器概览

jmeter逻辑控制器概览

作者: 小啊小狼 | 来源:发表于2021-09-22 16:11 被阅读0次

    一、说明

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

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

    1、简单控制器

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

    2、循环控制器

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

    3、仅一次控制器

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

    4、forEach控制器

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

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

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


    image.png

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

    5、事务控制器

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

      未勾选 image.png
    勾选,只展示一个事务

    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 复选勾

    image.png

    直接写表达式

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

    7、交替控制器

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

    8、随机控制器

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

    9、随机顺序控制器

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

    10、Switch控制器

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


    image.png

    有两种赋值方式:

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

    相关文章

      网友评论

          本文标题:jmeter逻辑控制器概览

          本文链接:https://www.haomeiwen.com/subject/wnfnwltx.html