You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JMeter实现每分钟固定增量提升RPM至6000并维持?

解决方案:逐步递增并稳定RPM的JMeter场景实现

核心思路

不用Stepping Thread Group(它是控制线程数步进),而是用普通线程组(固定100线程)结合动态计算吞吐量的Constant Throughput Timer,根据测试运行时长动态调整每分钟请求数,实现从1000 RPM开始每分钟递增500,直到6000后保持稳定的需求。

具体配置步骤

  1. 添加普通线程组

    • 设置线程数为100(你已确认该数量可支撑最高6000 RPM),Ramp-Up Period设为0(立即启动所有线程),循环次数设为无限(直到测试结束)。
  2. 添加Constant Throughput Timer

    • 在Timer的配置中:
      • 选择Calculate throughput based on为All active threads (shared)(确保所有线程共同分摊目标吞吐量)
      • 在Throughput输入框中,使用Groovy函数动态计算当前分钟的目标RPM:
        ${__groovy(
            def runMinutes = Math.floor((System.currentTimeMillis() - vars.get('TESTSTART.MS') as long)/60000);
            def targetRpm = 1000 + 500 * runMinutes;
            return targetRpm > 6000 ? 6000 : targetRpm;
        )}
        
    • 逻辑解释:
      • TESTSTART.MS是JMeter内置变量,记录测试启动的毫秒时间戳
      • 计算当前已运行的完整分钟数runMinutes(比如测试运行第0-60秒时为0,对应第1分钟;60-120秒时为1,对应第2分钟,以此类推)
      • 根据分钟数计算目标RPM,超过6000则固定为6000
  3. 控制测试总时长(可选)

    • 添加Duration Timer,设置测试总时长(比如要运行到稳定后持续5分钟,总时长设为11*60秒:前10分钟递增到6000,第11分钟开始稳定)

验证与注意事项

  • 提前验证单线程吞吐量:确保100线程可支撑6000 RPM(即单线程每分钟需处理60次请求),若单线程性能不足,需调整线程数或优化请求逻辑
  • 若需更严格的“每分钟整点递增”,可结合Test Action Sampler与JSR223 Timer标记分钟节点,但上述Groovy方案已能满足绝大多数场景的精度需求

内容的提问来源于stack exchange,提问作者Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:57:21