Python使用Locust实现性能自动化测试全指南

山海之间
山海之间
发布时间:2026-10-12| 5人浏览过
原创

本文详细介绍如何使用Python的Locust库进行性能自动化测试。内容涵盖Locust的安装配置、基础用法、分布式部署优势,并通过完整的后台管理系统压测案例,演示如何编写测试脚本、配置并发参数及查看可视化报告,帮助开发者快速掌握高效、稳定的性能测试方法。

一、核心概念解析

1. 什么是性能自动化测试?

性能自动化测试旨在评估系统在超负荷运行下的稳定性,识别系统瓶颈。它通过程序代替手工操作,显著提升测试效率。具体而言,性能自动化利用代码模拟大量并发用户,对多页面发起并发请求,采集关键性能参数,统计系统的负载承受能力,并最终生成详细的测试报告。

2. Python中常用的性能自动化测试库有哪些?

Locust库

Locust是一个基于Python的性能测试工具,允许开发者通过编写代码来创建批量虚拟用户。它支持在多台服务器上执行分布式性能测试,具备极强的可扩展性和稳定性,能够应对各种复杂的测试场景。此外,Locust提供基于Web UI的界面来展示测试详情,且适用于测试任何类型的系统。

二、基础操作指南

1. 安装Locust

可以通过官方PyPI源进行安装。

pip install locustio

推荐使用豆瓣PyPI源进行安装,速度通常更快。

pip install -i https://pypi.douban.com/simple locustio

安装成功后,命令行工具中将新增locust命令。可通过输入以下命令验证安装是否成功:

locust --help

2. 基本用法

在项目根目录下创建一个名为locustfile.py的文件。

from locust import Locust, TaskSet, task
class MyTasks(TaskSet):
 """
 创建测试任务类,需要继承TaskSet
 可以添加多个测试任务
 """
 # 每个测试任务,往往会以实例方法的形式来呈现
 # 同时需要使用task装饰器来装饰测试任务
 @task
 def one_task(self):
  print("执行一个伟大的测试任务!")
class RunTasks(Locust):
 """
 创建运行测试类,需要继承Locust父类
 """
 task_set = MyTasks # 指定测试任务类,使用task_set覆盖父类的类属性
 min_wait = 2000  # 指定启动任务间隔的时间范围(单位毫秒):2~5秒之间
 max_wait = 5000  # 使用min_wait、max_wait覆盖父类的类属性

执行性能测试。

# 打开Pycharm Terminal控制台

# 运行如下命令:locust

运行上述命令后,控制台将在本地监听一个端口。

a. 程序文件必须命名为locustfile.py,否则默认命令无法识别。

b. 如果文件命名为one_example.py,则运行命令需指定文件名。

locust -f one_example.py

在浏览器中打开UI设置界面。

默认情况下,通过访问localhost:8089即可打开界面。

三、综合案例演练

1. 编写自动化测试脚本:在项目根目录下创建test_load.py文件。

from locust import HttpLocust, TaskSet, task
class AdminLoadTest(TaskSet):
 """
 创建后台管理站点压测类,需要继承TaskSet
 可以添加多个测试任务
 """
 def login(self):
  """
  登录实例方法
  :return: 
  """
  self.client.post("http://localhost:8088/users/login/",
       {"user_account": "admin", "password": "123456"})
 def logout(self):
  """
  登出实例方法
  :return:
  """
  self.client.get("http://localhost:8088/users/logout/")
 def on_start(self):
  """
  当任何一个task调度执行之前,
  on_start实例方法会被调用
  先登录
  :return:
  """
  self.login()
 def on_stop(self):
  """
  当任何一个task调度执行之后,
  on_stop实例方法会被调用
  后登出
  :return:
  """
  self.logout()
 @task
 def admin_index(self):
  """
  对后台主页进行压测
  :return:
  """
  self.client.get("http://localhost:8088/admin/")
class RunLoadTests(HttpLocust):
 """
 创建运行压测类
 """
 task_set = AdminLoadTest

2. 使用命令行运行:打开Pycharm Terminal控制台,运行如下命令:

注意:--host参数用于指定HTTP主机地址,-f参数用于指定压测程序的文件名。

3. 打开Web UI界面进行配置。

设置并发用户数为10,并设定每5秒创建一个新用户。

压测过程截图。

生成美观详细的压测报告。

查看压测失败的详细信息。

下载压测统计数据。

下载的压测统计数据为csv文件格式。

六、总结

Locust在压测功能上极其强大,支持分布式部署,提供的接口简洁易用,压测代码编写简单,并提供UI界面来配置和展示美观、详细的图表统计。

总结

以上介绍了Python实现性能自动化测试的基本方法,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持! 如果觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。