Gatling性能测试:如何配置Java模拟实现缓升峰值并持续X小时
实现Gatling先缓升后持续峰值的负载模拟配置(Java)
要实现缓慢提升请求至峰值后持续稳定负载的模式,你可以直接通过Gatling的多阶段注入组合来实现,无需混用stressPeakUsers(它适用于快速冲峰后回落的场景),只需将ramp类注入器和恒定负载注入器串联即可。
开环模式(injectOpen)配置示例
因为你当前使用的是开环模式(关注每秒请求数),推荐用rampUsersPerSec控制缓升过程,再用constantUsersPerSec维持峰值:
setUp( productServiceScn.createProduct.injectOpen( // 阶段1:7200秒(2小时)内从0逐步提升到每秒40.95个用户(对应总用户数81900) rampUsersPerSec(0).to(40.95).during(7200), // 阶段2:维持峰值X小时,示例为4小时(14400秒),可按需修改时长 constantUsersPerSec(40.95).during(14400) ).protocols(http.product) );
如果希望沿用你之前按总用户数缓升的rampUsers逻辑,也可以这样组合:
setUp( productServiceScn.createProduct.injectOpen( // 阶段1:2小时内逐步注入81900个用户,完成负载缓升 rampUsers(81900).during(7200), // 阶段2:计算缓升阶段的平均每秒用户数(81900/7200≈11.375),维持该峰值X小时 constantUsersPerSec(11.375).during(14400) ).protocols(http.product) );
关键说明
- 两个注入阶段会依次执行:先完成缓升阶段,再进入峰值维持阶段,完全匹配你需要的「上升-平稳」负载曲线
- 可根据实际需求调整
during的参数,自定义缓升时长和峰值持续时长(X小时) - 如果是闭环模式(injectClosed,关注并发用户数),可替换为
rampConcurrentUsers+constantConcurrentUsers的组合
内容的提问来源于stack exchange,提问作者Maxim Vershinin
相关产品推荐
相关产品推荐

