前言
在jmeter中逻辑控制器主要分类两类:
- 控制jmeter测试计划中节点的逻辑执行顺序等等
- 对jmeter的节点进行分组,方便结果统计等等
进一步简化下,笔者把逻辑控制器分为
- 逻辑控制类
- 分组控制类
逻辑控制类
逻辑控制类控制器定义了在执行线程中请求的执行顺序。
下面我们就常用的逻辑控制器进行说明
如果(if)控制器
控制其下面的子节点满足条件才执行,例如,我们控制只有执行线程大于10个时,才执行其子节点。
这里只是简单举例,大家可以根据实际应用场景进行设计。
循环控制器
控制其下面的子节点运行次数。例如我们设置其子节点执行10次。
如果勾选永远选项,则会一直执行下去。
仅一次控制器
控制其子节点在整个测试计划执行期间的每个线程仅执行一次,例如我们可以用于等登录动作。
随机控制器
每次执行时,从其子节点中,随机选择一个进行执行,例如我们百度首页随机请求不同的类型的资讯信息。
其他的逻辑控制器就不一一进行说明了,大家可以自行学习、实践,去挖掘其实用场景。
分组控制类
分组控制类主要用于统计和控制其他非逻辑执行。典型的应用场景,例如我们常需要去统计一个业务流的执行时间,或是控制吞吐量等等。
下面我们一起看几个典型的分组控制类的组件。
事务控制器
会产生一个额外的sampler,用于统计该控制器下子节点的所有时间。该统计数据可以在聚合报告中看到。
Generate parent sample:控制结果的显示结构。若勾选,总时长和子节点时长按层级显示,未勾选,平行显示
Include duration of timer and pre-post processors in generated sampler:勾选时,会统计定时器时间(默认仅统计采样器时间)
如上图:通过事务控制器,我们可以统计出请求百度首页、搜索开源优测、搜索python、搜索selenium4个请求的时间总和,注意这里统一出来的时间会略大于这4个请求的和。
吞吐控制器
允许用户通过以下两种方法控制执行频率。
-
Percent executions
这个控制器的命名不够准确,因为它不是用来控制吞吐量的。吞吐量控制器允许用户控制执行频率,jmeter提供了两种模式:执行百分比和执行总次数。设置运行比例(1~100之间)
如线程循环次数设置为5,添加Percent executions为40%的吞吐量控制器,其下子节点则循环2次
-
Total executions
设置运行次数per user:此项被勾选后,在每个线程的基础上,每个用户都将根据控制器设置计算。未被勾选时,计算针对于所有用户。如:使用total
execution模式,不勾选per user选
项,执行次数=吞吐量值;勾选了per user,执行次数=user数量(对应线程数) * 吞吐量值
总结
本次就常用的逻辑控制器:如果(if)控制器、循环控制器、仅一次控制器、随机控制器、事务控制器、吞吐控制器进行了分享。对于这些控制器的应用场景,需要深刻理解业务后再设计场景,切不可为了用而用。