locust压测如何展开
Locust是一种基于Python的开源负载测试工具,支持分布式压测和实时监控。以下是展开压测的步骤:
一、核心概念
- Locust类:通过继承
Locust类定义模拟用户行为。 - @task装饰器:标记用户执行的任务方法。
- on_start方法:用户启动时的初始化操作。
二、编写测试脚本
from locust import HttpUser, task, betweenclass WebsiteUser(HttpUser):wait_time = between(1, 5) # 任务间隔1~5秒@task(3) # 权重3,执行频率更高def visit_homepage(self):self.client.get("/")@task(1)def visit_about(self):self.client.get("/about")
三、启动压测
- 单机模式:
locust -f script.py - 无Web界面(命令行):
locust -f script.py --headless -u 1000 -r 100 -t 10m-u 1000:模拟1000用户-r 100:每秒启动100用户-t 10m:持续10分钟
四、分布式压测
- 启动主节点:
locust -f script.py --master - 启动从节点:
locust -f script.py --worker --master-host=192.168.1.100
五、结果分析
- Web界面:访问
http://localhost:8089查看实时数据。 - 关键指标:
- 吞吐量(RPS)
- 响应时间(P95/P99)
- 错误率
- 导出报告:
locust -f script.py --csv=report --headless -u 1000 -t 5m
六、进阶技巧
- 参数化数据:使用CSV文件动态替换请求参数。
- 自定义客户端:继承
HttpUser实现TCP/UDP等协议压测。 - 钩子函数:利用
test_start/test_stop控制测试生命周期。
注意事项:
- 压测环境需与生产环境隔离
- 梯度增加负载,避免直接冲击
- 监控服务器资源(CPU/内存/网络)
