Jmeter的逻辑控制器

jmeter中逻辑控制器(Logic Controllers)的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。

jmeter提供了17种逻辑控制器,它们各个功能都不尽相同,大概可以分为2种使用类型:

①.控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller(循环控制器)、If Controller(如果if控制器)等;

②.对测试计划中的脚本进行分组,方便JMeter统计执行结果以及进行脚本的运行时控制等,如:Throughput Controller(吞吐量控制器)、Transaction Controller(事务控制器)等

image.png

临界区控制器(critical section Controller)

image.png

作用:临界区控制器确保其子节点下的取样器或控制器将被执行(只有一个线程作为一个锁)

名称和注释很简单,就是给控制器添加一个备注,使人明白这个控制器的解释含义的意思

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

遍历循环控制器(ForEach Controller)

image.png

作用:用来遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值;

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

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

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

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

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

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

包含控制器(Include Controller)

image.png

作用:用于引用外部的Jmx文件;从而控制多个测试计划组合

include Test Plan:包含测试计划的文件名,可以点击浏览,从文件夹保存的JMX文件夹目录下选择对应的JMX文件

使用方法:创建一个测试计划,下面可添加取样器/控制器等,然后保存测试计划,为了方便起见, 线程组也可以添加外部JMX文件中用于调试;

如果测试使用Cookie或用户定义的变量,这些应放置在顶层(包括文件),否则无法正常工作;此元素不支持变量/函数在文件名字段中;但是,如果属于包含控制器定义的内容,则使用前缀路径名。

当使用包含控制器中包含相同的JMX文件,则要确保文件名不同,以避免无法读取;如果文件不能被发现,那么控制器会尝试打开文件名相对于JMX启动目录

生命周期/运行周期控制器(Runtime Controller)

image.png

作用:用于控制该控制器下的取样器/控制器的运行时间

Runtime(seconds):运行时间,单位为:秒

转换控制器(Switch Controller)

image.png

作用:通过给该控制器中的value赋值,来指定运行哪个取样器(也可以理解为开关控制器)

Switch value:控制器具体赋值的value值字段

有两种赋值方式:

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

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

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

当/判断控制器(While Controller)

image.png

作用:运行其子节点下的取样器/控制器,直到条件为“假”

Condition(function or variable):条件(函数或变量):里面可填入判断依据的条件,参照

使用方法:可能的条件值有:

①.空白:最后一个示例循环失败时退出循环

②.最后一个值:最后一个示例循环失败时退出循环。 如果之前的最后一个示例只是循环失败,不进入循环。

③.否则:退出时(或不输入)循环条件等于字符串“ 假 ”

条件可以是任何变量或函数,最终等于字符串” 假 ”。需要注意的是:条件是评估两次,一次取样前,一次随机取样

事务控制器(transaction controller)

image.png

作用:生成一个额外的采样器来测量其下测试元素的总体时间;值得注意的是,这个时间包含该控制器范围内的所有处理时间,而不仅仅是采样器的

Generate parent sample:生成父样本(不同的模式选择)

include duration of timer and pre-post processors in generated sample:包含时间的计时器和前后处理器生成的示例(不同的模式选择)

对于Jmeter2.3以上的版本,有两种模式的操作

①.事务采样器是添加到其下采样器后面的

②.事务采样器是作为其下采样器的父采样器

生成的事务采样器的测量的时间包括其下采样器以及其他的一切时间。由于时钟频率问题,这个时间可能略大于单个采样器的时间之和;

时钟开始时间介于控制器记录开始时间与第一个采样器开始之间,时钟结束时间亦然。

事务采样器只有在其子采样器都成功的情况下才显示成功。

在父模式下,事务控制器下的各个采样器只有在结果树里才能看到;同时,子采样器的数据也不会在CSV文件中显示,但是在XML文件中可以看到

交替控制器(creatleave controller)

image.png

作用: 交替控制,使得该控制器包含的取样器步骤交错执行在每个循环中

忽略子控制器模块(Ignore sub-contorller blocks):如果勾选此项,交错控制器将sub-controllers像单一请求元素一样,一次只允许一个请求/控制器

使用方法:假使该控制器下有2个取样器A和B,交替执行A和B2个请求,即每次传递一个子请求到这个测试,按子元件的排列顺序

仅一次控制器(once only controller)

image.png

作用:在多线程循环的时候,将使其子节点下的取样器请求只运行一次

流量控制器(throughput controller)

image.png

作用:jmeter自带的翻译这里是错误的,因为它并不能控制吞吐量(吞吐量的概念请自行百度);其实质作用是允许用户控制执行的频率

总共有两种执行模式:百分比执行和总执行

总执行(Total Executions):使控制器停止执行一定数量的测试计划

百分比执行(Percent Executions):使控制器按一定比例执行迭代的测试计划

流量(Throughput):对应上面的执行数量或者比例

每个用户(Per User):每个用户

如果勾选此项,将导致控制器计算是否应该执行在每个用户(每个线程)的基础上;如果不加以控制,那么将计算全球所有用户

IF控制器(If Controller)

image.png

作用:允许用户控制该控制器下面的取样器/控制器是否执行该节点下的子节点;

条件(默认JavaScript)(Condition(default javascript)):使用JavaScript的函数或变量进行评估判断条件为真或假

条件解释为变量表达式(interpret condition as variable expression):如果勾选该项,那么变量表达式会进行求值,并与“ture”或“false”进行比较,而无需使用JavaScript

对所有子条件执行(evaluate for all children):如果勾选该项,则该controller在没一个子节点执行时执行一次;

默认情况下,该控制器可以对包含在其下面的所有可运行的元素进行执行,但只在入口执行一次

录制控制器(Recording Controller)

image.png

作用:类似代理服务器的作用,在测试执行期间记录测试样本

清除所有记录的样本(Clear all the recorded samples):点击可以清除所有已经记录的测试样本

一般情况下,在测试执行时候,它没有效果,但是在执行HTTPS测试脚本时,会记录下所有测试样本

循环控制器(Loop Controller)

image.png

作用:该控制器下的取样器请求可以循环运行

循环次数(Loop Count):在输入框中输入需要循环的次数,控制器下的请求即可循环运行

永远(forever):如果勾选该项,那么控制器下的请求可一直运行

模块控制器(Module Controller)

image.png

作用:测试控制器子节点下的某一个模块,而不是整个测试计划

寻找目标元素(Find target element):寻找测试计划中需要特定测试的元素,模块;也可理解为该控制器可以控制已经封装好的模块元素

△ :一个测试计划由一个控制器和所有的测试元素(取样器等)组成,测试计划可以位于任何线程组或工作台;如果计划位于线程组,则可以禁用其他控制器,防止正在运行的测试计划被影响(除了模块控制器)

模块控制器的优势在于:当存在多个线程组时,该控制器可以轻松切换,只需要选择对应的取样器,方便快捷,替代了创建很多测试计划的繁琐操作

△ :任何一个模块所用的控制器名字必须唯一,因为其名字被用来找到目标控制器时重新加载;出于这个原因,最好保证控制器名字不同,否则执行测试时候可能发生意外

△ :模块控制器与远程测试不应使用或非gui测试与工作台部件,因为工作台测试元素并没有测试计划的一部分 jmx 文件。 任何这样的测试就会失败

简单控制器(Simple Controller)

image.png

作用:用来组合取样器和其他逻辑控制器

简单控制器是最基本的控制器,对jmeter测试运行没有任何影响,可用来命名某些操作

随机控制器(Random Controller)

image.png

作用:类似交替控制器,但该控制器随机选取某一个取样器请求并执行

忽略子控制器模块(Ignore sub-controller blocks):如果勾选此项,交错控制器将sub-controllers像单一请求元素一样,一次只允许一个请求/控制器

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

image.png

作用:类似于简单控制器,将执行每个子节点下的取样器请求一次,但是执行是随机的

总结

自己想多了解透彻jmeter的逻辑控制器,看到有一篇不错的博客就整体搬运过来,方便自己日后进行参考。
【参考资料】(http://www.cnblogs.com/imyalost/p/6183569.html

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

推荐阅读更多精彩内容

  • 主要文体来自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano阅读 10,966评论 3 27
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,600评论 18 139
  • 转自:http://www.cnblogs.com/puresoul/p/4886574.html 前言: 1、 ...
    guiwuzhe阅读 386评论 0 1
  • JMeter中的Logic Controller用于为Test Plan中的节点添加逻辑控制器。 JMeter中的...
    宇文臭臭阅读 1,818评论 0 1
  • 树木的成材需要浇水,施肥和修剪,缺一不可。只浇水施肥不修剪会病死,只修剪而不浇水施肥会枯死。 每个人都是一朵不同花...
    孙国杨阅读 266评论 0 2