当前位置: 首页 > news >正文

Locust性能压测工具使用指南

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, task


class WebsiteUser(HttpUser):
    wait_time = between(5, 15)
    
    def on_start(self):
        self.client.post("/login", {
            "username": "test_user",
            "password": ""
        })
    
    @task
    def index(self):
        self.client.get("/")
        self.client.get("/static/assets.js")
        
    @task
    def 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.dtcms.com/a/41265.html

相关文章:

  • 硬件基础(3):三极管(2):实践应用(持续更新)
  • Python—Excel全字段转json文件(极速版+GUI界面打包)
  • 数字化传播杂志数字化传播杂志社数字化传播编辑部2024年第13期目录
  • CVPR2024 | ANDA | 通过集成渐近正态分布学习实现强可迁移对抗攻击
  • pta天梯L1-007 念数字
  • 从混淆到精通:C/C++常量指针与指针常量的本质差异与实战应用
  • Cookie与Session:Web开发中的状态管理机制
  • Docker数据卷容器实战
  • Redis缓存一致性难题:如何让数据库和缓存不“打架”?
  • let、const【ES6】
  • 前端性能测试面试题及参考答案
  • MySQL中的DATETIME与TIMESTAMP选择指南
  • FreeRTOS-在队列发送读取数据小实验
  • C++初阶—list类
  • RISC-V架构的平台级中断控制器(PLIC:platform-level interrupt controller)详解
  • visual studio 2022安装教程及下载(附安装包)visual studio 2022下载安装教程图文详情
  • 解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
  • 【论文笔记-TPAMI 2024】FreqFusion:用于密集图像预测的频率感知特征融合
  • LLM中的Benchmark是什么
  • 阿里开源正式开园文生视频、图生视频模型-通义万相 WanX2.1
  • 浔川 AI 翻译 v6.1.1 将于 3 月 2 日上线:功能升级,体验更优
  • 【文献阅读】A Survey on Model Compression for Large Language Models
  • km98. 所有可达路径(邻接矩阵+邻接表)
  • 【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡
  • 953 验证外星语词典
  • Qt关于平滑滚动的使用QScroller及QScrollerProperties类说明
  • 228页PPT丨制造业核心业务流程优化咨询全案(战略营销计划生产研发质量),附核心系统集成架构技术支撑体系,2月26日资料已更新
  • 【博资考1】网安学院-北航网安数学基础部分
  • Tomcat介绍
  • 13、虚函数和纯虚函数的区别【高频】