Locust

Locust 是比较常见的性能测试工具,底层基于 gevent官方介绍 它是一款易于使用、可编写脚本且可扩展的性能测试工具,可以让我们使用常规 Python 代码定义用户的行为,而不必陷入 UI 或限制性领域特定语言中.

Locust具有无限的可扩展性(只要提供客户端python 代码,适用于所有协议的性能测试).

本文为开发性能自动化对比平台时学习相关内容的记录整理。

我们为什么选择locust

Locust的核心部件

Master节点

负责协调和管理整个测试过程,包括启动和停止测试、分发任务、收集和汇总测试结果等。

Worker节点

实际执行测试任务的节点,根据Master节点分配的任务进行模拟用户行为。

Web UI

提供可视化的测试界面,方便用户查看测试结果、监控测试进度等。

测试脚本(Load Test Script)

测试脚本,定义模拟用户行为的逻辑和参数,由Worker节点执行。

Locust内部运行调用链路

时序图如下:

sequenceDiagramautonumberRunner->>EventHook: start()EventHook->>Environment: fire()Runner->>Environment: create Environment and add user classesRunner->>User: start users and run tasksUser->>TaskSet: run()TaskSet->>Environment: send requests and record statisticsUser->>User: wait for other users to finishTaskSet->>User: returnRunner->>User: stop users and tasksRunner->>EventHook: stop()EventHook->>Environment: fire()
07-09 08:19