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

如何在单个Thread Group中以2TPS负载随机发送多个HTTPS请求?

JMeter单线程组实现2TPS负载+随机请求顺序方案

一、精准实现2TPS负载

之前用Constant Throughput Timer没达到预期,大概率是配置细节没做对,试试这两种更靠谱的方式:

  • Constant Throughput Timer(修正版):
    1. 把定时器放在线程组最外层,确保作用于所有7个请求
    2. 目标吞吐量填120(2TPS=2次/秒,换算成分钟就是120次/分钟)
    3. 「Calculate throughput based on」选择「All active threads in current thread group」,避免其他线程组干扰
    4. 线程组设置为「永远循环」,配合定时器自动控制请求频率
  • Precise Throughput Timer(更精准):
    如果对TPS稳定性要求高,用这个定时器更好。设置目标吞吐量为2(直接填每秒次数),时间单位选「Seconds」,勾选「Enforce throughput even if some samples are skipped」,它会严格按时间间隔调度请求,比Constant的采样式控制更准确

二、线程数与Ramp-up Period设置

线程数和Ramp-up的核心是保证有足够的线程支撑2TPS,避免因线程阻塞导致请求发不出去:

  • 先通过Summary Report估算单个请求的平均响应时间(记为T秒)
  • 线程数建议设为2*T(比如T=1秒,线程数设2;T=2秒,线程数设4),确保处理请求时有空闲线程能发新请求
  • Ramp-up Period:如果线程数是N,就设为N秒(比如线程数2,Ramp-up设2),让线程平稳启动;如果测试允许瞬间启动,也可以设为0
  • 实操例子:若每个请求平均响应1秒,线程数设2、Ramp-up设2,线程组循环设为永远,配合上面的定时器就能稳定输出2TPS

三、让7个请求随机发送

打破默认顺序执行,用JMeter自带控制器就能搞定:

  • Random Order Controller:把7个HTTPS请求全部拖到这个控制器下,每次线程组循环时,会自动打乱7个请求的执行顺序,确保每次都以随机顺序跑完所有请求
  • 如果是想每次随机选一个请求发送(无需全量执行),就用Random Controller,它会在子请求里随机挑一个执行

之前方案失效的可能原因

  • Test Fragment本身不会自动执行,必须用Module Controller引用才能生效,若只是把请求放在Test Fragment里没引用,相当于没执行
  • Constant Throughput Timer的作用范围选错了,比如只覆盖了部分请求,或者计算吞吐量的基准选了全局线程,导致TPS计算不准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:52:02