JMeter逻辑控制器之吞吐量控制器(Throughput Controller)

一、背景

性能测试时,需要模拟真实用户的使用场景,所以往往在设计性能测试用例时,需要模拟多业务场景下,各个业务按一定的比例进行压测,测试系统对应业务的响应时间等指标。而吞吐量控制器(Throughput Controller)可以控制分配不同比例的并发用户数。

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

1、吞吐量控制器界面介绍

属性定义如下:

属性 描述
Name 控制器名称,可以根据实际情况进行设置
Comments 注释,描述在业务中的作用
Based on percent execution:按照百分比来执行
Based on total executions:按照次数来执行
Throughput 当选择percent execution:0-100,代表执行次数的百分比,比如填 50,代表一半迭代中执行
Throughput 当选择total executions:代表执行的总次数
Per User 若勾选,每个线程(用户)会单独计算执行频率。若不勾选(默认),所有线程统一计算执行频率

2、按照次数来执行(total executions)

业务项 total executions
场景1 1
场景2 3
  • 线程组配置

  • 场景1配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,执行1次

  • 场景2配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

  • 查看结果

    场景1执行了1次,场景2执行了3次,与线程组配置执行的总次数一致。

3、按照百分比来执行(percent execution)

业务项 Percent Executions
场景1 25%
场景2 75%
  • 线程组配置

  • 场景1配置

    吞吐量控制器(Throughput Controller)配置为按百分比执行,占总执行次数的25%

  • 场景2配置

    吞吐量控制器(Throughput Controller)配置为按百分比执行,占总执行次数的75%

  • 查看结果

    线程组配置执行的总次数4次,场景1执行了1次,占比25%,场景2执行了3次,占比75%。

4、不勾选 per user

若不勾选per user,运行次数=吞吐量(Throughput)

业务项 total executions
场景1 3
场景2 3
  • 线程组配置:2个用户,循环执行3次,总次数6次

  • 场景1配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

  • 场景2配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

  • 查看结果

    场景1执行了3次,场景2执行了3次,与线程组配置执行的总次数一致。

    若不勾选per user,运行次数=吞吐量(Throughput)=3 次,与上图一致。

5、勾选 per user

若勾选per user,运行次数=吞吐量(Throughput)× 循环次数

业务项 total executions
场景1 3
场景2 3
  • 线程组配置:2个用户,循环执行3次,总次数6次

  • 场景1配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,每个用户执行3次,此处线程组2个用户,那么应该是执行6次。

  • 场景2配置

    吞吐量控制器(Throughput Controller)配置为按次数执行,执行3次

  • 查看结果

    场景1执行了6次,场景2执行了3次,与线程组配置执行的总次数一致。

    若勾选per user,运行次数=吞吐量(Throughput)× 循环次数=3×2=6,与上图一致。

综述,建议Throughput Controller参数配置项中Per User选择,建议按默认的不勾选此项进行配置。避免与场景模型设置的比例不一致。

三、参考

1、官网:https://jmeter.apache.org/usermanual/component_reference.html#Throughput_Controller

2、https://www.cnblogs.com/poloyy/p/13536710.html

3、https://www.jianshu.com/p/a14e9eeb9551

posted @ 2022-10-09 17:18  xyztank  阅读(374)  评论(0编辑  收藏  举报