认识性能测试框架Locust

使用 Locust 进行压力测试:从入门到实践

概述

Locust 是一个开源的负载测试工具,使用 Python 编写,适合模拟大量用户并发访问系统。它简单易用,同时支持分布式测试,是性能测试的利器。本文将介绍 Locust 的基本用法,并通过一个实际案例演示如何使用 Locust 进行压力测试。


目录

  1. Locust 简介
  2. 安装与配置
  3. 编写第一个 Locust 脚本
  4. 运行 Locust 测试
  5. 分布式测试
  6. 结果分析与优化
  7. 总结

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月

posted @ 2025-02-13 20:29  8年实习点工  阅读(204)  评论(0)    收藏  举报