首页 > 其他分享 >讲一讲JMeter中的吞吐量控制器

讲一讲JMeter中的吞吐量控制器

时间:2022-09-06 18:44:07浏览次数:102  
标签:控制器 次数 Per 并发 吞吐量 User JMeter

什么是吞吐量控制器?

英文是Throughput Controller
JMeter 官网上是这么介绍的:吞吐量控制器允许用户控制其子元件的执行频率。

执行模式

吞吐量控制器中支持两种执行模式:

  • Percent executions(执行百分比)
    使控制器按照设置的百分比去执行。
  • Total executions(执行总数)
    使控制器执行设定的总次数。

属性介绍

图中红框的这三个字段最重要:enter image description here

  1. Based on:选择执行模式,见上文。
  2. 吞吐量:这个值的作用根据你选择的执行模式不同,可分为两种情况:
    2.1 Percent executions 模式下,代表执行次数的百分比。如填写30,则表示子元件会执行原执行次数*0.3次。
    2.2 Total executions模式下,代表执行的总次数。如填写50,则表示子元件会执行50次。
  3. Per User:表示是否要在每个线程组上单独应用控制器的设置。比如说,如果在Total executions模式下填写了50的吞吐量,勾选了Per User,那么控制器的子元件会执行线程数 * 50次;不勾选Per User,那么控制器的子元件会执行50次。

怎么使用?

使用吞吐量控制器最关键的两个参数是执行模式(Based on的选项)和Per User,下面用控制变量法来介绍一下这个组件的一些特点。

测试脚本的结构:
enter image description here

Percent executions 模式

这个模式下,吞吐量里的值为执行次数的百分比,也就是说,控制器的子元件的执行次数 = 线程组的并发数 * 吞吐量%

情况一:控制器的吞吐量之和等于100

条件:

  • 并发数:10
  • 控制器1的吞吐量:50
  • 控制器2的吞吐量:30
  • 控制器3的吞吐量:20
  • Per User:不勾选

示例图:
enter image description here
enter image description here

结果:

请求的比例如下:

  • baidu:5次
  • 当当:3次
  • taobao:2次

enter image description here

情况二:控制器的吞吐量之和小于100

条件:

  • 并发数:10
  • 控制器1的吞吐量:50
  • 控制器2的吞吐量:10
  • 控制器3的吞吐量:20
  • Per User:不勾选

结果:

请求的比例如下:

  • baidu:5次
  • 当当:1次
  • taobao:2次

enter image description here

情况三:控制器的吞吐量之和大于100,但每个控制器的吞吐量都没超过100

条件:

  • 并发数:10
  • 控制器1的吞吐量:50
  • 控制器2的吞吐量:70
  • 控制器3的吞吐量:40
  • Per User:不勾选

结果:

请求的比例如下:

  • baidu:5次
  • 当当:7次
  • taobao:4次

enter image description here

情况四:控制器的吞吐量之和大于100,并且某个控制器的吞吐量超过了100

条件:

  • 并发数:10
  • 控制器1的吞吐量:150
  • 控制器2的吞吐量:30
  • 控制器3的吞吐量:40
  • Per User:不勾选

结果:

请求的比例如下:

  • baidu:10次
  • 当当:3次
  • taobao:4次

enter image description here

总结

从以上四个测试中可以看出,吞吐量控制器在Percent executions 模式下有以下几个特点:

  • 吞吐量控制器之间彼此不会影响。
  • 吞吐量的取值范围在0-100,填写超过100的值作为100计算。
  • 以及Per User参数在此模式中不生效,测试结果就不贴了。

Total executions 模式

这个模式下,吞吐量里的值是总执行次数。在这个模式里,可能会用到Per User参数,这个参数的作用是:

  • 若勾选,每个线程会单独计算执行次数;
  • 若不勾选(默认),所有线程统一计算执行次数

测试脚本结构为:
enter image description here

情况一:吞吐量大于并发数*循环次数,不勾选Per User

条件:

  • 并发数:10
  • 循环次数:1
  • 控制器1的吞吐量:15
  • 控制器2的吞吐量:20
  • Per User:不勾选

结果:

请求的比例如下:

  • baidu:10次
  • 当当:10次
    enter image description here

情况二:吞吐量小于并发数*循环次数,不勾选Per User

条件:

  • 并发数:1000
  • 循环次数:1
  • 控制器1的吞吐量:789
  • 控制器2的吞吐量:999
  • Per User:不勾选

结果:

请求的比例如下:

  • baidu:789次
  • 当当:999次
    enter image description here

情况三:并发数吞吐量大于并发数循环次数,勾选Per User

条件:

  • 并发数:10
  • 循环次数:5
  • 控制器1的吞吐量:70
  • 控制器2的吞吐量:100
  • Per User:勾选

结果:

请求的比例如下:

  • baidu:50次
  • 当当:50次

enter image description here

情况四:并发数吞吐量小于并发数循环次数,勾选Per User

条件:

  • 并发数:10
  • 循环次数:10
  • 控制器1的吞吐量:3
  • 控制器2的吞吐量:5
  • Per User:勾选

结果:

请求的比例如下:

  • baidu:30次
  • 当当:50次

enter image description here

总结

从这几个测试中可以得出:

  • 执行次数的最大值为并发数 * 循环次数,在此基础上可以对子元件的执行次数进行调整。
  • 勾选Per User,则执行的总次数数将是用户数(并发数) * 给定的吞吐量数

标签:控制器,次数,Per,并发,吞吐量,User,JMeter
From: https://www.cnblogs.com/chrystal/p/16662942.html

相关文章

  • k8s--CronJob(CJ) 控制器
    CronJob介绍CronJob控制器以Job控制器资源为其管控对象,并借助它管理pod资源对象,job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但CronJob可以以类......
  • 性能测试工具JMeter(一)---安装与运行
    JMeter简介1、Apache组织开发的开源免费压测工具2、纯java程序,跨平台性强3、源码可以从网上下载4、高可扩展性5、可对服务器、网络或对象模拟巨大的负载,进行压力测......
  • jmeter-操作mysql
    1.环境:jmeter5.3,mysql5.7。2.mysql.jar包文件:链接:https://pan.baidu.com/s/1KgOZ77LSjw7_PvwB8JIqHQ提取码:ZHEN3.操作①.测试计划内导入jdbcjar包②.jmeter内添......
  • 实战 | 电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取此例使用的是GitHub上一个开源的电商项目mall,需要的可以去GitHub上下载部署,有详细的部署......
  • JMeter 常用的几种断言方法
    一、Jmeter断言背景在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言。断言是在请求的返回层面增加一层判断机制。因为请求成功了,并......
  • mac下jmeter环境变量配置
    转载自:https://www.jianshu.com/p/ecc101b19b0a ======================================== 终端用的zsh,用jmeter做测试先在home目录下新建.bash_profile输入ex......
  • jmeter-11-Ant接口自动化及持续集成整合
    前言重要的事情说三遍:仓库放在最后!!!仓库放在最后!!!仓库放在最后!!!PPLJmeter简介:整合Jmeter+Ant只需要通过简式配置或直接运行,让你不需要再多关心如何配置,一站式进行自动化......
  • JMeter常用的几种断言方法
    在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言。断言是在请求的返回层面增加一层判断机制。因为请求成功了,并不代表结果一定正确,因此......
  • 实战 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取1.为什么要搭建性能监控平台?本身带有聚合报告如下图所示:这个报告有几个很明显的缺点::中获......
  • jmeter使用base64验证码登录
    依赖环境/工具:java环境、jmeter、python3、pycharm(ide工具)此次主要操作步骤:使用jmeter工具把验证码base64加密信息保存至本地。编写python脚本(包含:解码bse64验证码......