Locust分布式负载测试工具简介
HDUZN

Locust 是一个开源的分布式负载测试工具,用于模拟大量并发用户访问指定的目标系统或服务。它特别适合测试 Web 应用程序的性能,可以通过自定义用户行为脚本来模拟复杂的使用场景。

主要特点:

  • Python 驱动:用户行为使用 Python 脚本编写,灵活且易于扩展。
  • Web 界面:内置的 Web 界面可用于配置测试和实时监控。
  • 分布式测试:可以轻松扩展至多台机器,模拟上万名用户。
  • 可扩展性:通过插件和扩展,可以实现自定义的测试逻辑和报告。

使用教程

1.安装 Locust

当然,前提是安装了Python,因为这个是用Python脚本来用的。

1
pip install locust

安装完后,可以通过 locust --version 命令查看是否安装成功。

如果在Cursor或VS Code等编辑器的powershell中运行命令找不到,但在终端中能运行,明明已经把命令添加到系统环境变量了。可以通过一下方法解决。

1
2
3
4
5
# 1.用 以下命令查询 powershell 的PATH环境变量
$env:PATH

# 2.如果路径不在其中,用以下命令添加路径
$env:PATH += ";C:\Users\[用户名]\AppData\Roaming\Python\Python39\Scripts"

2. 编写 Locust 测试脚本

创建一个 Python 脚本 locustfile.py,用于定义用户行为。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from locust import HttpUser, task, between
import os

# 预设测试参数
os.environ['LOCUST_HOST'] = 'http://192.168.31.175:9090'

# 设置 Locust Web 界面端口
os.environ['LOCUST_WEB_PORT'] = '8089' # 这里不设置默认为8089,可以修改

class WebsiteUser(HttpUser):
wait_time = between(1, 5)

@task
def load_specific_page(self):
self.client.get("/") # /plays/kongtiao.html

# 运行 locust -f locustfile.py

解释:

  • HttpUser:定义一个用户类,包含模拟的用户行为。
  • wait_time:用户在两次任务之间的等待时间,这里设置为 1 到 5 秒之间随机选择。
  • load_main_page:定义一个任务,用户将访问根路径 /。
  • sys.argv:允许从命令行接收输入的 URL。

3.运行 Locust 测试

使用以下命令运行 Locust:

1
locust -f locustfile.py

打开浏览器并访问 http://localhost:8089 可以在界面上设置并发用户数量、生成率等参数,并启动测试。

性能测试参数(部分)

  • Type: 请求的类型,例如GET/POST。
  • Name:请求的路径。
  • Requests:当前请求的数量。
  • Fails:当前请求失败的数量。
  • Median:中间值,单位毫秒,一半的服务器响应时间低于该值,而另一半高于该值。
  • Average:平均值,单位毫秒,所有请求的平均响应时间。
  • Max:请求的最大服务器响应时间,单位毫秒。

点击【CHARTS】菜单,可以查看性能图表。

  • 本文标题:Locust分布式负载测试工具简介
  • 本文作者:HDUZN
  • 创建时间:2024-08-28 13:43:55
  • 本文链接:http://hduzn.cn/2024/08/28/Locust分布式负载测试工具简介/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论