Locust测试出现unexpected keyword argument 'user_count'错误且退出码为2
问题成因
- 核心原因是你绑定到
spawning_complete事件的自定义回调函数on_spawning_complete参数定义不匹配当前Locust版本的事件传参规则。Locust在触发spawning_complete事件时会默认传入user_count关键字参数,你定义的函数没有接收该参数,就会抛出未捕获的TypeError异常。 - Locust的退出码2代表测试运行过程中存在未处理的Python异常,和你预设的业务指标是否达标无关,只要有未捕获的异常就会返回该退出码。
解决方案
两种方案均可,优先选第二种兼容性更强:
- 方案1:直接在函数参数中添加
user_count接收该参数,如果你需要用到这个数值可以直接使用:
# 修改前 def on_spawning_complete(): # 你的原有逻辑 # 修改后 def on_spawning_complete(user_count): # 你的原有逻辑保持不变
- 方案2:添加
**kwargs捕获所有额外传入的关键字参数,后续Locust版本更新新增事件传参时也不会再次触发同类问题:
# 修改后 def on_spawning_complete(**kwargs): # 你的原有逻辑保持不变
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

