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

Locust是否内置支持顺序运行多测试及合并报告?

问题

我们有多组Locust测试用例,每组具备不同的负载需求(不同用户数、不同wait_time),需要在夜间顺序运行。目前我们通过单独调用的方式实现,示例如下:

# file ordering.py:
class OrderingUser(HttpUser):
   wait_time=between(20,30)
   @task 
   def order_normal(self):...
   @task 
   def order_discounted(self):...

# file catalogue.py:
class CatalogueUser(HttpUser):
   wait_time=between(2,3)
   @task
   def search(self):...

调用顺序如下:

First invoke:
locust -f ordering.py --users 3 --run-time 2h

After it finishes, we invoke:
locust -f catalogue.py --users 10 --run-time 2h

And finally merge the reports into a single file

请问Locust是否对此提供内置支持(包括最终合并报告)?还是仍需通过外部方式进行调用与协调?


回答

1. 多测试用例顺序运行的支持

Locust没有内置的多测试用例顺序调度功能,无法直接在单个Locust进程中依次执行不同配置的测试任务。你必须通过外部工具或脚本实现顺序调用:

  • 可编写Shell脚本,按顺序执行每个Locust命令,利用命令行的阻塞特性(上一个命令执行完毕后才会启动下一个);
  • 也可用Python脚本,通过subprocess模块依次启动Locust进程,等待进程结束后再触发下一个任务。

示例Shell脚本(适用于Linux/macOS):

#!/bin/bash
# 执行第一个测试,指定CSV格式输出报告
locust -f ordering.py --users 3 --run-time 2h --headless --csv=ordering_report
# 等待第一个测试结束后执行第二个
locust -f catalogue.py --users 10 --run-time 2h --headless --csv=catalogue_report

2. 报告合并的支持

Locust同样没有内置的报告合并工具,需要自行处理报告合并:

  • 如果使用CSV格式输出报告(通过--csv参数),可通过Python脚本读取多个CSV文件,合并数据后输出为单个文件。示例代码片段:
import pandas as pd

# 读取两组测试的统计报告CSV
ordering_df = pd.read_csv("ordering_report_stats.csv")
catalogue_df = pd.read_csv("catalogue_report_stats.csv")

# 添加标识列区分不同测试用例
ordering_df["test_case"] = "ordering"
catalogue_df["test_case"] = "catalogue"

# 合并数据并保存
merged_df = pd.concat([ordering_df, catalogue_df], ignore_index=True)
merged_df.to_csv("merged_report_stats.csv", index=False)
  • 如果是HTML格式的报告,合并逻辑会更复杂,通常建议先合并原始CSV数据,再基于合并后的数据重新生成可视化报告(或自行编写脚本实现)。

总结

所有测试任务的调度和报告合并工作,都需要通过外部脚本或工具完成,Locust本身不提供这类内置支持。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:33:39