Locust性能压测工具使用指南

news/2025/2/28 10:25:03/

Locust是一款用Python编写的开源性能测试工具,主要用于对网站或其他系统进行负载测试和性能测试,以下是关于它的详细介绍:

特点

  • 高可扩展性:能够轻松模拟大量用户并发访问,通过简单增加节点,可以在短时间内模拟出数以万计甚至更多的并发用户,对系统进行高强度的负载测试。
  • 易于使用:基于Python语言,使用简单的Python代码来定义用户行为和测试场景,无需复杂的配置和专业的测试工具知识,测试人员和开发人员都能快速上手。
  • 分布式测试:支持分布式测试模式,可将测试任务分布到多个计算节点上执行,充分利用多台机器的资源,从而实现更大规模的并发测试。
  • 实时监控和报告:在测试过程中,能实时提供详细的性能指标监控数据,如响应时间、吞吐量、错误率等。测试结束后,还能生成直观的测试报告,方便用户分析系统性能瓶颈。
  • 支持多种协议:不仅可以用于Web应用的性能测试,还支持对多种协议的测试,如HTTP/HTTPS、WebSocket等,满足不同类型系统的性能测试需求。

工作原理

  • 用户行为定义:用户通过编写Python代码,定义各种用户行为,如发送HTTP请求、点击链接、提交表单等。这些行为被封装成一个个任务,每个任务可以设置执行的权重等参数,以模拟真实用户在系统中的不同操作。
  • 测试场景设置:根据测试需求,创建不同的测试场景,包括用户数量、并发策略、测试持续时间等。Locust会按照设定的场景,在指定时间内逐步启动相应数量的虚拟用户,并让这些用户按照定义的行为规则去访问被测系统。
  • 性能数据收集:在虚拟用户执行任务的过程中,Locust会实时收集各种性能数据,如每个请求的响应时间、服务器返回的状态码、数据传输量等。这些数据会被汇总和统计,用于生成实时的性能监控图表和最终的测试报告。
  • 分布式执行(可选):如果需要进行大规模的负载测试,可以将Locust部署在多个节点上,形成分布式测试环境。主节点负责协调和管理整个测试过程,从节点负责执行具体的测试任务,各个节点之间通过网络进行通信和数据交互,共同完成对系统的高并发测试。

基本使用步骤

  1. 安装Locust:可以使用Python的包管理工具pip进行安装,在命令行中执行pip install locust即可完成安装。
 pip3 install locust==2.8.6 -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 编写测试脚本:创建一个Python脚本,在脚本中导入Locust相关的模块,定义用户行为类和任务函数。
    以下是一个简单的Locust测试脚本示例:
from locust import HttpUser, between, taskclass WebsiteUser(HttpUser):wait_time = between(5, 15)def on_start(self):self.client.post("/login", {"username": "test_user","password": ""})@taskdef index(self):self.client.get("/")self.client.get("/static/assets.js")@taskdef about(self):self.client.get("/about/")
  1. 启动Locust:在命令行中进入测试脚本所在的目录,执行locust -f your_script.py命令启动Locust,其中your_script.py是你编写的测试脚本文件名。

locust -f your_script.py --worker
  1. 配置测试参数:在浏览器中访问http://localhost:8089,进入Locust的Web界面。在界面中输入要测试的目标系统的URL,设置并发用户数、每秒启动用户数等测试参数。
locust -f 01xxxx.py --web-port 8089--master
  1. 开始测试:点击“Start swarming”按钮,Locust开始按照设置的参数启动虚拟用户,并执行测试任务。测试过程中,可以在Web界面实时查看性能指标数据和图表。
  2. 分析测试结果:测试结束后,根据Web界面中显示的测试结果,分析系统的性能表现,找出可能存在的性能问题和瓶颈。

在这里插入图片描述

参考文档

https://docs.locust.io/en/stable/quickstart.html


http://www.ppmy.cn/news/1575480.html

相关文章

Python 基本语法的详细解释

目录 (1)注释 (2)缩进 (3)变量和数据类型 变量定义 数据类型 (4)输入和输出 输出:print() 函数 输入:input() 函数 (1)注释 注…

【论文阅读】distilling cognitive backdoor patterns within an image

本文是输入级别的后门检测 认知蒸馏(Cognitive Distillation, CD)用于提取和检测图像中的后门模式。 其核心思想是从输入图像中提取出对模型预测起决定性作用的“最小本质”。CD通过优化输入掩码,从输入图像中提取出一个小的模式&#xff0…

【LLM】本地部署LLM大语言模型+可视化交互聊天,附常见本地部署硬件要求(以Ollama+OpenWebUI部署DeepSeekR1为例)

【LLM】本地部署LLM大语言模型可视化交互聊天,附常见本地部署硬件要求(以OllamaOpenWebUI部署DeepSeekR1为例) 文章目录 1、本地部署LLM(以Ollama为例)2、本地LLM交互界面(以OpenWebUI为例)3、本…

关于“你对 Spring Cloud 的理解”详细讲解?

Spring Cloud 是一系列框架的集合,它基于 Spring Boot 实现,为构建微服务架构提供了丰富的工具和解决方案。以下是对 Spring Cloud 的详细理解: 核心功能 服务治理: 服务注册与发现:Spring Cloud Netflix 中的 Eureka…

es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?

Elasticsearch 写入数据的工作原理 1. 写入流程概述 当客户端向 Elasticsearch 发送写入请求时,会经历以下步骤: 客户端选择一个节点 作为 coordinating node(协调节点),发送请求。协调节点对文档进行路由&#xff…

Photoshop EXIF 脚本

以下代码用ANSI编码保存到 C:\Program Files\Adobe\Adobe Photoshop 2025\Presets\Scripts\AddEXIFFrame.jsx 打开Photoshop,会看到 效果图: 大的文件会自动缩放到小边2000像素。 #target photoshop// covert "2025:02:20 13:11:21" to 2025…

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统

2024旅游推荐系统爬虫可视化(协同过滤算法) 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…

测试的基本概念

需求 需求分为两部分: 用户需求: 可以简单归为甲方提出的要求,或者终端用户使用产品时必须要完成的任务 软件需求: 功能需求,会详细描述开发人员必须实现的软件功能,是测试人员进行测试工作的基本依据 开发模型 当软件工作的范围逐步扩展到了整个软件生命周期,例如软件基本…