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

Locust:可能是一款最被低估的压测工具

01 Locust介绍

开源性能测试工具https://www.locust.io/,基于Python的性能压测工具,使用Python代码来定义用户行为,模拟百万计的并发用户访问。每个测试用户的行为由您定义,并且通过Web UI实时监控聚集过程。

压力发生器作为性能测试工具的核心部分,两个核心要点有:一是真实模拟用户操作,二是模拟有效并发

模拟用户请求操作上:

只要我们能采用Python编写对应的请求客户端,就能方便地采用Locust实现压力测试;

模拟有效并发方面:

Locust完全基于事件,使用gevent (协程)提供的非阻塞IO和coroutine来实现网络层的并发请求,避免了系统级资源调度,大幅提高了性能,因此即使是单台压力机也能产生数千并发请求数。

主流压测工具对比:

02 基本原理

主要的三个类:HttpLocust, TaskSet, task

Locust类代表一群蝗虫,而每一只蝗虫就是一个类的实例,TaskSet类则可代表蝗虫的大脑,即实际业务场景测试对应的任务集。

1、Locust类

继承于Locust的类代表一个用户,Locust会为每一个模拟用户生成一个locust类实例。

在Locust类中,还有几个属性需要关注下:

2、TaskSet类

TaskSet定义任务信息,是定义待测试的任务代码集。每一个Locust类中包含一个指向TaskSet的task_set属性设置。测试任务开始后,每个 Locust 用户会从 TaskSet 中随机挑选一个任务执行,然后随机等待 HttpLocust 类中定义的 min_wait和 max_wait 之间的一段时间,执行下一个任务。

3、task

通过@task()装饰的方法为一个事务。方法的参数用于指定该行为的执行权重。参数越大每次被虚拟用户执行的概率越高。如果不设置默认为1。

tasks = {classname:2} 表示每个用户执行 classname 的频率是2

4、执行原理

测试开始后,每个虚拟用户(Locust实例)的运行逻辑都会遵循如下规律:

先执行WebsiteTasks中的on_start(有则执行,只执行一次),作为初始化;

从WebsiteTasks中随机挑选(如果定义了任务间的权重关系,那么就是按照权重关系随机挑选)一个任务执行;

根据Locust类中min_wait和max_wait定义的间隔时间范围(如果TaskSet类中也定义了min_wait或者max_wait,以TaskSet中的优先),在时间范围中随机取一个值,休眠等待;

重复2~3步骤,直至测试任务终止。

03 实例

实例

V1.1 有些小改动,原理类似,QuickStartUser继承HttpUser,定义用户行为集。

index() 、search() 方法访问百度首页,用@task() 装饰该方法为一个任务,1表示一个Locust实例被挑选执行的权重,数值越大,执行频率越高。

运行结果:

启动性能:

locust -f demo_pt.py # --host=https://www.baidu.com -f, --locustfile:指定执行的Locust脚本文件

AI写代码bash

访问:http://127.0.0.1:8089

Number of users to simulate:设置模拟用户数

Hatch rate (users spawned/second) :每秒产生(启动)的用户数。

展示结果:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

http://www.gsyq.cn/news/104601.html

相关文章:

  • vLLM vs 传统推理框架:性能对比实测报告
  • 2025年12月深圳劳动仲裁律师推荐榜:专业能力与服务价值综合评测指南 - 品牌推荐
  • 2025年五大有名的品牌背书公司推荐,专业品牌口碑背书企业全 - myqiye
  • 2025绿色环保充电桩厂家TOP5权威推荐:助力新能源充电生 - 工业品牌热点
  • 使用pip install pytorch时报错?试试官方镜像源替换
  • ensp下载官网功能类比:网络仿真与AI推理有何共通点?
  • 2025年12月徐州风味汤底/复合调味料/火锅底料供应商专业测评 - 2025年品牌推荐榜
  • kettle调度系统- kettle文件资源库,轻松解决团队协作和脚本版本管理问题
  • 2025国产操作系统五大品牌盘点: 桌面端首选麒麟、统信、鸿蒙,哪些系统真正“好用”? - 资讯焦点
  • 免费下载Seed-Coder-8B-Base镜像,开启本地代码生成新时代
  • 2025年南京及周边地区推荐PDQ展箱厂家TOP5排行榜,精 - 工业品牌热点
  • 4.13、不信任,只验证:零信任架构在攻防中的实践
  • 2025静脉曲张袜真实测评十大品牌排行榜 - 资讯焦点
  • 2025年十大品牌传播权威服务商排行榜:品牌未来资金实力如何 - mypinpai
  • 4.14、云原生安全攻防:容器与 Kubernetes 的脆弱点
  • 水闸安全自动化监测系统主要应用场景
  • (开题报告/毕业设计)基于springboot+vue智慧校园管理系统毕业项目源代码
  • 制造行业项目管理工具选型经验分享(简直是高效选型指南,少走弯路)
  • Ubuntu安装后必做的10项配置,包括PyTorch环境准备
  • 全自动咖啡机有哪些品牌?国内外热门品牌推荐 - 品牌排行榜
  • (毕业设计/开题报告)基于Android Studio开发的个人理财APP 毕设源码
  • 阿联酋务工保险在哪里买:十大专业推荐必读 - 品牌测评家
  • ENSP模拟器网络设置对远程访问Qwen3-VL-30B服务的影响
  • 开题报告(毕业设计 )基于nodejs汽车后市场管理系统项目源码+论文 PPT
  • 实时视频推理卡顿 后来才知道动态调整分辨率平衡帧率与精度
  • 通用轨迹验证码识别代码
  • 300M参数撬动千亿市场:EmbeddingGemma开启边缘AI普惠时代
  • 2025年12月四川竹木地板厂家推荐:品质服务综合实力排行榜单深度对比分析 - 十大品牌推荐
  • 英伟达B200:AI算力革命的新纪元引擎
  • 会员积分小程序开发 积分兑换 + 等级权益 提升复购