jmeter逻辑控制器概览

一、说明

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个子节点元素。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,585评论 4 365
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,923评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,314评论 0 248
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,346评论 0 214
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,718评论 3 291
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,828评论 1 223
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,020评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,758评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,486评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,722评论 2 251
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,196评论 1 262
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,546评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,211评论 3 240
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,132评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,916评论 0 200
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,904评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,758评论 2 274

推荐阅读更多精彩内容