专栏首页开源优测JMeter逻辑控制器08

JMeter逻辑控制器08

前言

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

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQLAlchemy基础入门

    SQLAlchemy是Python SQL工具包和对象关系映射器,它为应用程序开发人员提供了SQL的全部功能和灵活性。

    苦叶子
  • JMeter断言07

    前言 在jmeter中断言用于验证服务器返回的数据是否满足我们的要求。 jmeter提供了以下断言类型: ? 下面我们主要对响应断言、XPath Asserti...

    苦叶子
  • 零基础实例掌握Selenium Python3

    自从把电脑数据全部遗失后,业余在写,零基础学习Selenium Webdriver Python3系列,主要基于以下几个方面:

    苦叶子
  • Jmeter(十一) - 从入门到精通 - JMeter逻辑控制器 - 下篇(详解教程)

    Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are ...

    北京-宏哥
  • 如何提高SDN可拓展性

    Software Defined Networking是一种控制平面和数据平面分离的可编程的网络架构,目前已经有许多商业落地案例。在部署SDN时,往往会因SDN...

    SDNLAB
  • iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

    stanbai
  • VR开发--SteamVR框架工具(1):VRTK

    1、GitHub远程仓库: git clone https://github.com/thestonefox/SteamVR_Unity_Toolkit 2...

    雷潮
  • kubernetes从懵圈到熟练 – 理解集群控制器

    当我们尝试去理解K8S集群工作原理的时候,控制器肯定是一个难点。这是因为控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但是,...

    kubernetes中文社区
  • iOS---iPad开发及iPad特有的特技

    用户1941540
  • PHP-TP框架中的控制器

    表示默认情况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.php

    cwl_java

扫码关注云+社区

领取腾讯云代金券