如何在命令行运行Locust并启动测试时保留Web UI
命令行启动Locust同时保留Web UI的实现方案
首先厘清参数的设计定位:--headless参数的作用是完全禁用Web交互界面,进入纯命令行运行模式,只要携带这个参数就一定无法访问Web UI,完全不匹配你“命令行直接启动测试、同时保留Web UI”的需求。
要实现目标,不需要使用--headless,搭配--autostart参数即可达成预期效果。
核心实现逻辑
只要不添加--headless参数,Locust默认会加载并启动Web UI服务;追加--autostart参数后,Locust会在服务启动完成后直接触发压测运行流程,跳过Web UI上手动配置参数、点击“开始运行”的交互步骤,全程不需要人工进入Web UI做初始启动操作,同时完整保留Web UI的全部功能。
可直接复用的启动命令
- 最小可用启动命令:启动后直接运行压测,Web UI在默认8089端口正常提供访问
locust -f 你的压测脚本路径 --host=目标服务地址 --autostart - 带初始压测规模的启动命令:启动后直接按指定并发量、用户增长速率运行压测,无需手动在UI上填写参数
locust -f 你的压测脚本路径 --host=目标服务地址 --users 总并发用户数 --spawn-rate 用户增长速率 --autostart
实际使用参考:要启动200并发、每秒新增10个用户的压测,同时保留Web UI,可执行命令:locust -f locustfile.py --host=https://待压测服务地址 --users 200 --spawn-rate 10 --autostart
关键说明
两种运行模式的核心差异
- 携带
--headless:完全不启动Web UI服务,所有运行数据仅输出到命令行日志,无法通过浏览器访问可视化观测页面- 不携带
--headless、搭配--autostart:既实现了命令行一键触发压测、无需手动在UI操作启动的需求,同时完整开放Web UI的所有能力,包括实时QPS/响应时间/错误率指标观测、动态调整并发规模、查看失败请求详情、生成测试报告等
- 若遇到Web UI无法从其他机器访问的问题,在启动命令末尾追加
--web-host 0.0.0.0参数即可,示例:locust -f locustfile.py --host=https://待压测服务地址 --users 200 --spawn-rate 10 --autostart --web-host 0.0.0.0
内容的提问来源于stack exchange,提问作者Michael George
相关产品推荐
相关产品推荐

