【问题标题】:Jmeter how to send a constant number of requests every secondJmeter如何每秒发送恒定数量的请求
【发布时间】:2020-02-19 04:38:45
【问题描述】:

JMeter 是否允许我每秒发送恒定数量的请求,而不是仅在请求完成时按顺序发送?即即使请求 1 尚未完成响应,我是否可以在请求 1 之后发送请求 2?

我正在使用 Apache JMeter 5.2.1,如果有人能就此提供指导,我将不胜感激。 恒定吞吐量计时器,似乎更关注吞吐量,但我想简单地发送 X req/s。

【问题讨论】:

    标签: jmeter jmeter-plugins jmeter-5.0


    【解决方案1】:

    恒定吞吐量计时器只能暂停 JMeter 线程,以便限制每秒的请求数为给定值。

    因此,您必须在 Thread Group 中提供足够的线程,以每秒创建比您尝试实现的请求更多的请求,然后使用恒定吞吐量计时器将每秒请求数限制为所需的速率。

    所以主要的限制是:

    • 恒定吞吐量定时器只能减慢 JMeter,它不会启动额外的线程
    • 恒定吞吐量计时器在“分钟”级别上足够精确,如果您的测试持续时间较短或者您希望立即看到吞吐量变化,则需要进行加速

    所以我建议改用以下方法之一:

    1. Precise Throughput Timer(自 JMeter 4.0 起可用)
    2. Concurrency Thread Group 和 Throughput Shaping Timer 组合,这些家伙提供了最灵活的方式来达到/保持所需的吞吐量

    【讨论】:

      【解决方案2】:

      我最终发现的解决方案非常简单。如果我决定总共需要发出 5000 个请求,并且我想遵循每秒发送 2 个请求的范例,无论是否收到响应。我可以简单地使用是使用加速期。

      “Ramp Up” - 启动所有线程所需的时间

      因此,如果您希望每秒 N 个请求,并且希望发送 M 个总请求,您需要将您的加速周期设置为 M/N,在我的情况下为 5000/2 = 2500。此外,不需要多个迭代。

      当然,这可能意味着如果服务非常慢,您可以将服务正在处理的并发线程增加到大量,但这就是我们想要测试的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 1970-01-01
        • 2018-06-01
        • 1970-01-01
        相关资源
        最近更新 更多