【问题标题】:How to count thread running per second in Jmeter如何在Jmeter中计算每秒运行的线程数
【发布时间】:2020-01-02 14:26:17
【问题描述】:

我对 Jmeter 测试配置感到非常困惑。我找到了很多答案,但没有一个能解决我的疑问。我的线程组包含 10 个线程,并且都处于活动状态。我想每秒向服务器发送 20 个请求。加载需要持续 60 秒。

我放了

线程数:20 加速期:1 循环次数:60

持续 60 秒达到 20 个请求/秒的方法是否正确?

【问题讨论】:

    标签: jmeter performance-testing


    【解决方案1】:

    对于每秒请求,我们不应该手动计算,而是让 JMeter 头疼。只要确保有足够的线程来达到 TPS 和 JMeter 将控制节奏。如果线程数较少而每秒请求数较多,则 JMeter 无法处理任何事情,并且不会满足 RPS。

    使用吞吐量整形定时器实现每秒请求Throughput Shaping Timer

    我需要多少线程才能产生所需的 RPS? 线程池大小可以像RPS * <max response time> / 1000 一样计算。期望的速率越高,您需要的线程就越多。响应时间越长,您需要的线程就越多。

    例如,如果您的服务响应时间可能是 2.5 秒,目标 rps 是 1230,那么您必须有 1230 * 2500 / 1000 = 3075 线程。

    最好有一些线程开销来处理意外的响应时间峰值。但要注意过多的开销,它会导致“最终峰值”。

    在线程组和吞吐量整形计时器中使用以下设置: 如果未达到 20 TPS,则增加线程数。

    【讨论】:

      【解决方案2】:

      您可以使用步进线程组或并发线程组代替基本线程组来达到您想要的结果。

      https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/

      【讨论】:

      • 这如何回答实现 20 RPS 或 N RPS 的问题?
      • 只需检查x轴和y轴即可了解。
      • 这将只控制线程,如果服务器返回响应不到一秒,RPS 将远远超过 20。它无法控制 RPS。
      【解决方案3】:

      只有在以下情况下,您的配置才是正确的:

      1. 你只有一个Sampler
      2. 它的响应时间等于到1秒

      正确的配置应该是这样的:

      最好的方法是使用Concurrency Thread GroupThroughput Shaping Timer 组合。它们可以通过Feedback Function 连接在一起,如果当前数量不足以执行所需的负载,并发线程组可以启动更多线程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多