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

如何使用docker-compose运行Locust并在headless模式下获取聚合CSV结果

Locust docker-compose headless模式获取聚合CSV结果方案

headless模式下的聚合统计数据由master节点统一生成,所有worker的测试数据会自动上报到master做聚合,无需单独采集每个worker的分散数据,最终结果和非headless模式下页面下载的聚合数据完全一致,两种常用实现方式如下:

1. 启动时配置参数自动导出CSV

这是最稳定的生产常用方案,直接修改docker-compose配置即可实现测试结束后自动落盘CSV结果:

  • 提前在本地创建结果存储目录并配置权限,避免容器内无写入权限:
    mkdir locust-results
    chmod 777 locust-results
    
  • 编辑docker-compose.yml,给master服务增加本地目录挂载配置:
    services:
      master:
        image: locustio/locust
        ports:
          - "8089:8089"
        volumes:
          - ./locust-scripts:/mnt/locust
          # 新增结果目录挂载
          - ./locust-results:/home/locust/results
        command: -f /mnt/locust/locustfile.py --master --headless -u 200 -r 20 -t 1h --csv=/home/locust/results/load_test
    
  • 核心参数说明:
    • --headless:指定以无UI模式运行
    • --csv=<输出路径前缀>:指定CSV文件前缀,运行结束后会自动生成三个结果文件:load_test_stats.csv(请求统计)、load_test_failures.csv(失败请求明细)、load_test_exceptions.csv(异常明细)
    • 如果需要全程的秒级统计数据,可额外增加--csv-full-history参数,会额外生成load_test_stats_history.csv文件,记录每秒的全量统计值

测试运行结束后,所有聚合后的CSV结果都会直接保存在本地的locust-results目录下。

2. 运行过程中调用API主动拉取CSV

如果需要在测试运行中途随时获取当前的聚合统计,或者不想提前配置输出参数,可以直接调用master节点的内置接口获取数据:

  • master节点默认暴露8089端口,三个对应CSV的接口如下:
    • 聚合请求统计:GET /stats/requests/csv
    • 失败请求明细:GET /stats/failures/csv
    • 异常明细:GET /stats/exceptions/csv
  • 可直接用curl命令导出到本地文件,示例:
    curl http://<你的master节点IP>:8089/stats/requests/csv > current_stats.csv
    

接口返回的就是所有worker的实时聚合数据,和非headless模式下页面下载的内容完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:06:02