jmeter(三):逻辑控制器详解

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

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

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

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

一、循环控制器(loop Controller)

指定其子节点运行的次数,可以使用具体的数值,也可是设置为变量(截图描述更详细)

二、简单控制器(Simple Controller)

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

这是Jmeter里最简单的一个控制器,它可以让我们组织归整我们的采样器和其它逻辑控制器(即:分组功能),提供一个块的结构和控制,不具有任何的逻辑控制和运行时的功能;

三、遍历循环控制器(ForEach Controller)

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

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

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

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

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

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

四、包含控制器(Include Controller)

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

五、临界区控制器(critical section Controller)

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

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

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

七、仅一次控制器(once only controller)

作用:在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器

注意:将Once Only Controller作为Loop Controller的子节点,Once Only Controller在每次循环的第一次迭代时均会被执行

八、转换控制器(Switch Controller)

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

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

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

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

九、当/判断控制器(While Controller)

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

十、事务控制器(transaction controller)

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

十一、IF控制器(If Controller)

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

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

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

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

十二、吞吐量控制器(Throughput Controller)

作用:控制其下的子节点的执行次数与负载比例分配,别被名字迷惑了,跟吞吐量没任何关系。jmeter自带的翻译这里是错误的,因为它并不能控制吞吐量(吞吐量的概念请访问百度);其实质作用是允许用户控制执行的频率;也有两种方式:

百分比执行和总执行

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

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

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

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

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

十三、Interleave Controller 交替控制器

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

十四、随机控制器(Random Controller)

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

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

 作用:随机执行其下的所有子结点

· 与Random Controller不同的是,这个控制器会先将需要随机的内容均执行一遍,但次序不定

十六、录制控制器(Recording Controller)

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

十七、模块控制器(Module Controller)

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

· 模块控制器,用于跳转到选定的控制器位置并执行对应的控制器

· 应用场景: 业务逻辑的跳转

· 配制说明

· Module to Run: 选择需要跳转到的目标控制器 

参考【感谢博主,天天开心】:

https://www.cnblogs.com/Zfc-Cjk/p/8466136.html

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值