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

JMeter如何实现每20-30分钟自动提升10%-20%负载的配置?

JMeter动态阶梯负载调整实现方案

完全可以在同一个JMeter脚本的执行过程中实现你需要的动态负载调整需求,无需中途停止测试修改配置,以下是两种常用的落地方式:

方案1:低代码插件实现(推荐新手使用)

  • 每个业务线程组替换为Concurrency Thread Group,该组件属于JMeter标准插件集,通过内置插件管理器可直接安装
  • 针对每个线程组单独配置阶梯负载规则,以Bulk Upload线程组、每30分钟涨幅10%、总时长2小时为例,可配置4个阶梯:
    • 第一阶:初始并发250,持续运行30分钟
    • 第二阶:30分钟节点并发升至275,持续运行30分钟
    • 第三阶:60分钟节点并发升至303(四舍五入取整),持续运行30分钟
    • 第四阶:90分钟节点并发升至333,持续运行30分钟至测试结束
  • 若需要10%-20%的随机涨幅,可通过JMeter内置随机函数生成动态涨幅值,填入对应阶梯的并发数配置位即可

方案2:纯原生功能实现(无需安装插件)

  • 先将所有业务线程组的线程数配置改为读取JMeter属性,示例:
    • Bulk Upload线程数填${__P(bulk_upload_threads,250)}
    • Log Analyzer线程数填${__P(log_analyzer_threads,50)}
    • 剩余3个线程组同理分别配置对应的属性名,属性默认值即为初始用户数
  • 新增1个独立的调度线程组,配置为1个线程、永远循环
  • 在调度线程组内依次添加以下组件:
    1. 固定定时器,线程延迟填${__Random(1200000,1800000,)},可实现20-30分钟的随机触发间隔(单位为毫秒)
    2. JSR223采样器,写入Groovy代码动态更新负载属性,示例逻辑:
    // 生成10%-20%的随机涨幅
    def increaseRate = 1 + (new Random().nextInt(11) + 10) / 100
    // 更新Bulk Upload线程数
    def bulkCurrent = props.get("bulk_upload_threads", 250) as int
    def bulkNew = Math.round(bulkCurrent * increaseRate) as int
    props.put("bulk_upload_threads", bulkNew)
    // 剩余4个线程组按上述逻辑依次更新对应属性即可
    
  • 所有业务线程组勾选永远循环,配合你已配置的2小时总测试时长规则,到时间后测试会自动停止

注意:调整前请确保脚本的线程初始化逻辑(如登录、参数分配)是线程安全的,避免新启动的线程与已运行线程出现参数冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:15:03