JMeter - 每秒实现所需的请求

时间:2018-02-06 14:53:17

标签: jmeter

我无法在JMeter中使用'bzm - 并发线程组'和'恒定吞吐量计时器'来实现所需的“每秒请求数”。

结构

我的测试结构如下:

线程组1

  • 恒定吞吐量计时器

  • HTTP请求

线程组2

  • 恒定吞吐量计时器
  • HTTP请求

线程组3

  • 恒定吞吐量计时器
  • HTTP请求

线程组4

  • 恒定吞吐量计时器
  • HTTP请求

数字

我想为每个线程组实现160个并发用户。

线程组1我的目标是每秒发出350个请求,其他的目标是每秒发出160个请求。

线程组有160个作为“目标并发”。 常量吞吐量计时器为线程组1提供21000(350 rps * 60 =每分钟21000)。 恒定吞吐量计时器为其他人提供9600(160 rps * 60 = 9600每分钟)。

他们所有人都有'基于此线程计算吞吐量'

我目前只为Thread Group 2-4获得了大约80 rps的吞吐量,而对于Thread Group 1来说只有不到10 rps。

我允许JMeter使用4GB的RAM,而我在测试期间没有使用所有这些。当我删除所有吞吐量计时器时,我可以达到高达14k rps。

我错过了什么吗?有没有更好的方法来实现我想要的吞吐量?

1 个答案:

答案 0 :(得分:0)

每秒无法达到所需请求数的原因可能是:

  1. 您在线程组中没有足够的线程
  2. 由于缺乏资源,JMeter无法足够快地发送请求
  3. 测试中的应用程序无法快速响应
  4. 关于第1点,请注意恒定吞吐量计时器只能暂停线程,以便将JMeter的吞吐量限制达到每分钟所需的请求数。

    鉴于您使用并发线程组,切换到可以通过Throughput Shaping Timer连接到并发线程组的feedback loop更有意义,因此JMeter将能够启动额外的线程以实现所需的RPS率。

    您可以使用JMeter Plugins Manager

    安装吞吐量整形计时器

    JMeter Plugins Manager Throughput Shaping Timer

    关于第2点:确保您正在关注JMeter Best Practices并监视运行JMeter的计算机上的基准操作系统运行状况指标,如果缺少CPU或RAM,则可能需要考虑{{3} }

    关于第3点:与第2点相同的方法+使用分析工具查看应用程序花费大部分时间的位置