解析Locust中虚拟用户数与spawn rate的关联及自定义负载运行逻辑
Locust虚拟用户加载与spawn rate的核心运行机制
固定参数常规压测场景验证
你梳理的运行逻辑完全符合Locust的实际调度规则:
- 配置总虚拟用户数100、spawn rate 50/s、总压测时长10s时,压测启动后会严格按照设定速率生成虚拟用户,累计2秒即可完成全部100个用户的加载,进入业务任务执行循环
- 剩余8秒的运行周期内,不会再触发新的用户加载流程,始终维持100的恒定并发规模发送业务请求,这个阶段采集的性能数据就是对应固定并发下的真实表现
- 补充一个容易混淆的细节:spawn rate是实际执行的用户拉起速率,不是仅作为上限的阈值——只要当前在线用户数没达到设定的总目标值,就会严格按这个速率补用户,拉满后自动停止新增流程。
LoadTestShape动态负载场景验证
动态调整目标并发时,系统仅会按当前在线用户与目标值的差值增量调整规模,绝对不会从0开始重建全量用户池:
- 当你通过LoadTestShape的
tick方法,把目标虚拟用户数从已达标的100提升到150时,调度器会先计算当前在线用户和目标值的差:存在50个用户缺额,后续按照当前设定的spawn rate(例如此时配置为50/s)逐步拉起这50个新增用户,直到凑够150的目标规模 - 反向调整时逻辑完全一致:如果把目标值从150降到100,系统只会按速率逐步终止超出的50个用户,不会清空所有现有并发重新加载
- 边界注意点:LoadTestShape每次返回的
(目标用户总数, spawn rate)参数,计算基准是当前实际存活的用户数,不是上一次配置的目标值。比如上一轮配置目标100、spawn rate 10/s,过了5秒实际在线用户才到50,这时候直接把目标调到150,系统只会按速率补剩下的100个缺口,不会中断已运行的50个用户的业务流程。
内容的提问来源于stack exchange,提问作者mR.aTA
相关产品推荐
相关产品推荐

