浅谈locust 性能压测使用

这篇具有很好参考价值的文章主要介绍了浅谈locust 性能压测使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 基本介绍

Locust是一个开源的负载测试工具,用于模拟大量用户并发访问一个系统或服务,以评估其性能和稳定性。编写语言为Python,可通过Python来自定义构建性能压测场景脚本。Locust支持分

布式负载测试,可以通过多个机器协同工作来模拟大量用户并发访问。并提供了一个Web界面,可以实时监控并查看测试的性能指标和统计数据,并支持常见的协议,如HTTP、HTTPS、

FTP、WebSocket等,更重要的是具有良好的扩展性,用户可以编写自定义的扩展来满足特定需求。它还提供了多个钩子函数,可以在测试运行过程中插入自定义代码,高度灵活,随心创造。

2. 基本组成

User 类(User class):
  在Locust脚本中,必须定义一个继承自HttpUserUser类的用户类。这个用户类代表了模拟的用户,并定义了用户的行为和任务。用户类中的每个方法都代表一个用户行为,例如发送请求、处理响应等。

Task 类(Task class):
  用户类中的方法通常被称为任务(task),每个任务定义了用户的一个具体行为。任务可以是一个函数、一个装饰器或一个类方法。任务通常用于发送请求、处理响应等操作。

TaskSet 类(TaskSet class):
  TaskSet类是用于组织任务的一种方式。它可以包含多个任务,并定义了用户在执行这些任务时的行为和逻辑。通过TaskSet,可以更好地组织和管理任务,使脚本的结构更加清晰。

Weight 属性(Weight attribute):
  在用户类中,可以为每个任务指定一个权重(weight)。权重用于控制每个任务在负载测试中的执行频率。较高权重的任务将更频繁地执行,而较低权重的任务将相对较少执行。

on_start() 方法:
  用户类中的on_start()方法定义了每个用户在开始执行任务之前要执行的初始化操作。例如,可以在on_start()方法中进行用户登录或准备测试数据等操作。

on_stop() 方法:
用户类中的on_stop()方法定义了每个用户在完成所有任务后要执行的清理操作。例如,可以在on_stop()方法中进行用户退出或清理资源等操作。

Host 属性:
在用户类中,可以定义一个host属性,指定要测试的目标主机地址。这个属性告诉Locust在执行请求时要发送到哪个主机。

TaskSet 属性:
用户类中可以定义一个或多个TaskSet属性,用于组织和管理任务。通过TaskSet属性,可以将任务分组并按组执行,使脚本更加模块化和可维护。

3. 基本使用步骤

定义用户行为和任务:
首先,需要定义用户的行为和任务,即编写Locust脚本。在脚本中,定义一个继承自HttpUserUser类的用户类,并在其中定义任务和行为。例如,发送请求、处理响应等。

from locust import HttpUser, task, between

class MyUser(HttpUser):
    wait_time = between(2, 5) # 定义用户等待时间范围

    @task
    def my_task(self):
        self.client.get("/path") # 发送GET请求
    @task(3)  # 指定任务权重
    def weighted_task(self):
        response = self.client.post("/path", json={"key": "value"})  # 发送POST请求
        if response.status_code == 200:
            self.log_success("POST request succeeded", response.elapsed.total_seconds())
        else:
            self.log_failure("POST request failed", response.elapsed.total_seconds())

    def log_success(self, message, response_time):  # 定义请求成功和失败处理
        self.environment.events.request_success.fire(
            request_type="my_task",
            name=message,
            response_time=response_time,
            response_length=0,
        )

    def log_failure(self, message, response_time):
        self.environment.events.request_failure.fire(
            request_type="my_task",
            name=message,
            response_time=response_time,
            exception=None,
            response_length=0,
        )

设置负载测试参数:
在脚本中,可以设置一些负载测试的参数,如用户的并发数量、每秒的请求数等。

class MyUser(HttpUser):
    tasks = [MyUser]  # 定义要执行的用户类
    wait_time = constant(1)  # 设置每个用户的等待时间
    host = "https://example.com"  # 设置目标主机地址
    min_wait = 5000  # 设置用户最小等待时间
    max_wait = 10000  # 设置用户最大等待时间
    users = 100  # 设置并发用户数
    spawn_rate = 10  # 设置每秒新增用户数

启动 Locust 

locust -f my_script.py 

访问 Locust Web 界面:
启动Locust后,可以通过访问Locust的Web界面进行监控和控制。默认情况下,Web界面监听在http://localhost:8089

总之,Locust是一个功能强大、易用且灵活的负载测试工具,可用于模拟大规模用户并发访问,并评估系统的性能和稳定性。文章来源地址https://www.toymoban.com/news/detail-711666.html

到了这里,关于浅谈locust 性能压测使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式压测之locust和Jmeter的使用

    受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要 引入分布式压测 分布式压测原理: 一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。 选择一台作为调度机(MASTER),其他机器作为执

    2024年02月19日
    浏览(31)
  • 1-Locust性能测试工具介绍与安装

    locust是一个开源的压测工具,其官网地址是Locust - A modern load testing framework,通过编写Python代码,可以轻松实现百万级的并发,相对于我们熟悉的Jmeter来说,其对压测机的要求更低,而且使用locust和Python协程可以在一个User中实现多个api同时请求,更真实地模拟用户在前端页面

    2024年02月15日
    浏览(32)
  • 接口压测之Locust

    整理自: 进程/线程/协程:一文读懂什么是进程、线程、协程(建议收藏) locust相关: Installation — Locust 2.13.0 documentation(官方) 深入浅出开源性能测试工具 Locust(使用篇) - DebugTalk Locust使用 进程Process: 应用程序运行时会在内存空间形成一块拥有独立地址的内存体,是操

    2024年02月13日
    浏览(45)
  • locust压测工具【学习】

    1.安装:pip3 install locust 检验版本:locust -V 2.使用脚本:

    2024年02月08日
    浏览(37)
  • 针对 WebSocket 协议的 Locust 压测脚本实现(基于 Locust 1.0 以上版本)

    前言: 嗨咯铁汁们,很久不见,我还是你们的老朋友凡叔,这里也感谢各位小伙伴的点赞和关注,你们的三连是我最大的动力哈,我也不会辜负各位的期盼,这里呢给大家出了一个针对 WebSocket 协议的 Locust 压测脚本   Locust 默认支持 HTTP 协议(默认通过 HttpUser 类),我们也

    2023年04月08日
    浏览(35)
  • Locust神器再升级!WebSocket协议压测,轻松应对万亿级并发!

    Locust神器再升级!WebSocket协议压测助你轻松实现高性能! Locust是一种Python编写的开源性能测试工具,被广泛用于测试Web应用程序。近期,通过对Locust的升级,它现在可以用于WebSocket协议的压测,帮助开发人员轻松实现高性能。 【视频教程:Locust神器再升级!WebSocket协议压测

    2024年02月15日
    浏览(22)
  • 压力测试-Locust框架基本使用及更新报错解决方案

    近期了解到locust在1.0版本之后出现了部分的改动,使用最新locustio加载时可能会出现一些问题,本文将讲述locust的使用基础及常见的环境异常。 ******【环境方面】****** 报错信息1: 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案:  1、进入pip官网

    2024年02月03日
    浏览(30)
  • locust_性能测试

    一、性能测试准备工作         1、确定性能测试工作目标:                 1、投入小,技术实现快捷                 2、支持千万级以上的用户并发                 3、可以进行性能测试指标分析         2、性能测试工具选型及环境准备                 1、选择

    2023年04月08日
    浏览(43)
  • Python性能测试-Locust框架

    Locust是一个比较容易上手的分布式用户负载测试工具。 它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思: 作者的想法是,在测试期间,放一大群 蝗虫 攻击您的网站。 当然事先是可以用 Locust 定义每个蝗虫(或

    2023年04月11日
    浏览(22)
  • Python性能测试工具Locust入门

    1、性能测试该怎么做? 利用工具模拟真实用户操作。 2、性能测试基础: 性能:事物的性质和能效 --效率性能 (时间/资源/容量) 思考:如何评价软件系统的性能? 快慢:衡量系统的处理效率 (响应时间) 多少:衡量系统的处理能力(单位时间内,能处理多少个事物) 3、性

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包