【问题标题】:How to provide RPS in Jmeter testing?Jmeter测试中如何提供RPS?
【发布时间】:2019-03-22 07:33:54
【问题描述】:

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

【问题讨论】:

    标签: jmeter load-testing


    【解决方案1】:

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

    如果您想定义所需的 RPS - 最简单的选择是 Concurrency Thread GroupThroughput Shaping Timer 组合。您可以根据每分钟/秒的请求数定义所需的吞吐量,并且假设您通过Feedback Function 连接上述测试元素,如果当前数量不是,JMeter 将能够自动启动额外线程以达到/维持所需的吞吐量足够的。

    您可以使用JMeter Plugins Manager 安装这些插件

    【讨论】:

      【解决方案2】:

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

      恒定吞吐量计时器允许您维持服务器的吞吐量(请求数/秒)。恒定吞吐量计时器只能暂停 JMeter 线程以减慢它们达到目标吞吐量的速度。此外,它仅在分钟级别上有效,因此您需要正确计算加速期并让您的测试运行足够长的时间。

      以下是解决方法:

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

        RPS * 最大响应时间(秒)

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

      由于恒定吞吐量计时器在分钟级别上工作,要达到X RPS,您必须将“目标吞吐量”值配置为X*60/min 和“计算吞吐量基于”值为“所有活动线程”。

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

      【讨论】:

      • 感谢您的回答。只是一个快速的问题。我将吞吐量计时器设置为 18000,这意味着 300RPS。线程数为 1000,rampup 为 10 秒(只需 10 秒即可正确设置 1000 个线程) ...当达到目标线程时,是否保证服务器充满 300RPS? Jmeter有什么地方可以打卡吗?
      • 是的,您可以使用Hits Per Second ListenerActive Threads Over Time Listener 进行检查。但不能保证,因为它取决于您的应用程序的响应时间。这就是为什么我们需要首先计算测试所需的足够线程数。
      猜你喜欢
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多