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

Locust实例运行结束或达到时长阈值后是否可以执行后续代码?

Locust测试结束后执行自定义操作的实现方法

可以实现,通过Locust的内置事件钩子即可完成测试终止/时长达标后的自定义逻辑执行,比如运行清理脚本、发送CSV报告等操作。

具体实现步骤如下:

  • 第一步:导入Locust的事件模块
    你需要在代码开头引入events模块,才能绑定测试结束的触发回调
  • 第二步:编写自定义的结束后执行逻辑函数
    把你要执行的清理、报告发送、资源释放逻辑都写在该函数内
  • 第三步:将自定义函数注册到test_stop事件上
    该事件会在测试完全结束后触发,触发场景包括:运行时长达到预设上限、手动终止测试、Locust实例收到退出信号

完整示例代码如下:

from locust import HttpUser, between, events
import os
# 可自行导入发邮件、上传文件的依赖包

# 测试结束后自动执行的逻辑
@events.test_stop.add_listener
def on_test_stop(environment, **kwargs):
    print("测试已结束,开始执行后续操作...")
    # 示例1:运行自定义清理脚本
    os.system("python ./your_clean_script.py")
    # 示例2:处理生成的CSV测试报告
    # 分布式模式下加判断,仅master节点执行报告操作,避免重复执行
    if not environment.parsed_options.worker:
        # 可替换为发送邮件、上传到存储服务的逻辑
        os.system("mv *.csv /path/to/your/target/directory")

class MyTestUser(HttpUser):
    wait_time = between(3, 5)
    host = 'www.example.com'
    # 替换为你自己的任务列表即可
    tasks = [a, b, c]

如果你是通过命令行加-t参数指定了运行时长(比如locust -f main.py -t 30m指定运行30分钟),时长到了之后会自动触发test_stop事件,不需要额外加时间判断逻辑。
如果你需要在测试启动前执行初始化操作,可以用test_start事件,用法和test_stop完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:24:02