查看原文
其他

JMeter逻辑控制器08

苦叶子 开源优测 2022-11-13


前言

在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)控制器、循环控制器、仅一次控制器、随机控制器、事务控制器、吞吐控制器进行了分享。对于这些控制器的应用场景,需要深刻理解业务后再设计场景,切不可为了用而用。


更多精彩:

  1. 工具篇 - JMeter之旅01

  2. 工具篇 - JMeter目录及关键配置分析02

  3. 工具篇 - HTTP协议报文结构及示例03

  4. 工具篇 - JMeter组件手册04

  5. 工具篇 - JMeter性能测试基本过程及示例05

  6. JMeter定时器06

  7. JMeter断言07


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存