【问题标题】:How to keep constant load of 400 RPS using Concurrency Thread Group and Throughput Shaping Timer combination如何使用并发线程组和吞吐量整形计时器组合保持 400 RPS 的恒定负载
【发布时间】:2022-01-25 01:31:36
【问题描述】:

我想制作一个测试用例,使用 Jmeter 以 400 RPS 发送 50,000 个请求。 有人建议我在这个用例中使用并发线程组和吞吐量整形计时器的组合,我尝试从以下链接中进行操作:https://www.blazemeter.com/blog/using-jmeters-throughput-shaping-timer-plugin

  • 这里的问题是我在 csv 中只得到了大约 28K 的响应,而不是 50K。
  • 无论前一秒发送的请求如何,我都需要 400 RPS
  • 我还需要每 400 行有约 1 秒的时间差,以便我可以确认每秒发送 400 个请求。

任何其他达到相同结果的建议也可以。

考虑到 400 * 125 = 50,000,我使用 400 作为开始和结束 rps,持续时间为 125 秒

我也附上了我的并发线程组的图片

【问题讨论】:

    标签: jmeter jmeter-5.0


    【解决方案1】:

    为了能够使用 400 个线程发送 400 RPS,您的应用程序必须在 1 秒或更短的时间内做出响应,因为 JMeter 在开始下一个采样器之前会等待来自前一个采样器的响应。如果您的应用程序响应时间为 2 秒 - 您将获得 200 RPS、4 秒 - 100 RPS 等。

    如果您的应用程序响应时间较长 - 您需要按比例增加线程数,您的 40 个备用线程可能不够用。

    JMeter 还需要能够足够快地发送请求,因此请务必关注 JMeter Best Practices 并在需要时前往 Distributed Testing

    如果您的被测应用程序无法处理 400 RPS - 您在 JMeter 方面无能为力,您只能识别 bottleneck 并在重新运行测试之前报告或自行修复

    【讨论】:

    • 感谢您的解决方案。此外,我接受了您的建议进行分布式测试,并且效果很好。但我有2个问题。 1. 我收到此错误Non HTTP response code: java.net.SocketException/Non HTTP response message: Socket closed。那么这个错误是我这边的还是jmeter的? 2. 我收到了 1,95,358 条回复,而不是 2,00,000 条。它只是次要的,但想知道为什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    相关资源
    最近更新 更多