认识性能测试框架Locust
使用 Locust 进行压力测试:从入门到实践
概述
Locust 是一个开源的负载测试工具,使用 Python 编写,适合模拟大量用户并发访问系统。它简单易用,同时支持分布式测试,是性能测试的利器。本文将介绍 Locust 的基本用法,并通过一个实际案例演示如何使用 Locust 进行压力测试。
目录
Locust 简介
Locust 是一个基于事件驱动的负载测试工具,具有以下特点:
- 简单易用:使用 Python 编写测试脚本,灵活且易于扩展。
- 分布式支持:支持多机分布式测试,轻松模拟大量用户。
- 实时监控:提供 Web 界面,实时查看测试进度和结果。
- 开源免费:完全开源,社区活跃。
安装与配置
安装 Locust
使用 pip 安装 Locust:
pip install locust
验证安装
安装完成后,运行以下命令验证是否安装成功:
locust --version
编写第一个 Locust 脚本
以下是一个简单的 Locust 脚本示例,模拟用户访问一个 API 接口:
from locust import HttpUser, task, between
class MyUser(HttpUser):
wait_time = between(1, 2) # 用户等待时间(1到2秒)
@task
def get_homepage(self):
self.client.get("/") # 访问首页
@task(3) # 权重为3,表示执行频率更高
def get_api(self):
self.client.get("/api/data") # 访问API接口
脚本说明
- HttpUser:表示模拟 HTTP 请求的用户。
- wait_time:定义用户执行任务之间的等待时间。
- @task:定义用户任务,权重越高执行频率越高。
使用
运行 Locust 测试
启动 Locust
在脚本所在目录运行以下命令:
locust -f locustfile.py
访问 Web 界面
打开浏览器,访问 http://localhost:8089,进入 Locust 的 Web 界面。
配置测试参数
- Number of users:模拟的用户数量。
- Spawn rate:每秒启动的用户数量。
- Host:目标服务器的地址。
点击 Start swarming 开始测试。
分布式测试
Locust 支持分布式测试,可以轻松扩展以模拟更多用户。
启动主节点
locust -f locustfile.py --master
locust -f locustfile.py User1 User2 运行xxx脚本里的User1类和User2类
启动从节点
在另一台机器上启动从节点:
locust -f locustfile.py --worker --master-host=<主节点IP>
run_single_user用法
在脚本的main函数中执⾏run_single_user
注意locust版本要为最新版本,如果是1.5.x的版本没有run_single_user
结果分析与优化

关键指标
-
RPS(Requests Per Second):每秒请求数。 qps=rps
-
TPS(Transactions Per Second):每秒事务数 ,每秒可以处理多少个事务,访问home⾸⻚,请求⼀次home.html,home.css,
home.js TPS=1,qps=3
-
响应时间:请求的平均响应时间。
-
失败率:请求失败的比例。
优化建议
- 增加服务器资源:如 CPU、内存、带宽等。
- 优化代码:减少数据库查询、使用缓存等。
- 负载均衡:使用负载均衡器分散请求压力。
总结
Locust 是一个功能强大且易于使用的负载测试工具,适合模拟大量用户并发访问系统。通过本文的介绍,你可以快速上手 Locust,并应用于实际项目中。希望本文对你有所帮助!
参考资料
作者:liansihao
发布日期:2025年2月

浙公网安备 33010602011771号