Jmeter测试中如何提供RPS?

How to provide RPS in Jmeter testing?

我不熟悉使用 Jmeter 进行测试。现在我已经创建了一个测试计划,它创建了 1000 个线程,加速周期为 20 秒,循环为 50。我正在获取测试结果。但是您能否帮我设置 RPS,以便我知道我的应用程序每秒可以处理多少个请求?

您可以通过在测试计划级别使用 Constant Throughput Timer 来实现。

恒定吞吐量计时器可让您保持服务器的吞吐量 (requests/sec)。 Constant Throughput Timer 只能暂停 JMeter 线程以减慢它们的速度以达到目标吞吐量。此外,它仅在一分钟级别上起作用,因此您需要正确计算启动时间并让您的测试 运行 足够长。

解决方法如下:

  1. 计算实现目标吞吐量所需的线程数。公式为:

    RPS * max response time in second

  2. 使用线程的 Ramp-up 周期相应地激活。
  3. 使循环计数值为Forever
  4. 相应地设置测试持续时间。

由于 Constant Throughput Timer 在分钟级别上工作,要达到 X RPS,您必须将“Target Throughput”值配置为 X*60/min 并且“根据计算吞吐量”值为“所有活动线程”。

例如,如果您需要 100 RPS,则“目标吞吐量”值应为 6000/min in Constant Throughput Timer

为了确定交付的负载,您可以生成 HTML Reporting Dashboard,它提供 Hits Per Second 图表(以及更多)

如果您想定义所需的 RPS - 最简单的选择是 Concurrency Thread Group and Throughput Shaping Timer combination. You can define the desired throughput in terms of requests per minute/second and given you connect the aforementioned test elements via Feedback Function JMeter 将能够自动启动额外的线程以 reach/maintain 所需的吞吐量,以防当前数量为不够。

您可以使用 JMeter Plugins Manager

安装这些插件