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

locust基础

它采用纯 Python 实现,是一个分布式用户负载测试的工具。 使用基于 Requests 库的客户端发起请求,使编写脚本大大简化; 在模拟并发方面摒弃进程和线程,完全基于时间驱动,采用协程(gevent)提供的非阻塞 IO 和 coroutine 来实现网络层的并发请求。因此单台压力机也能产生数千并发请求数。

安装

pip3 install locust
# Homebrew 安装 gevent
brew install libev

两种模式启动

web UI模式

UI模式可以直接在浏览器上配置要压测的用户数,以及每秒产生的用户数等等信息,比较直观方便。

#test_locust_01.pyfrom locust import HttpUser, taskclass HelloWorldUser(HttpUser):@taskdef hello_world(self):self.client.get("/hello")self.client.get("/world")

运行脚本

locust -f test_locust_01.py

服务器已经启动,然后打开浏览器,访问:http://localhost:8089

img

点击开始start swarming,查看性能测试结果:

img

headless模式

除了web UI模式,还有无头模式(headless)可以选择,通过命令行的方式,把需要配置的参数设置好,便于后续部署持续集成,快速、方便的执行压测脚本。

locust -f test_locust_01.py --headless --users 10 --spawn-rate 1 -H http://your-server.com#--headless:表示无头模式
#--users:表示总的并发用户数
#--spawn-rate:表示每秒产生的用户数
#-H:表示要压测的主机地址

报告

Statistics统计

  • Type:请求的类型,例如GET/POST;
  • Name:请求的路径;
  • Requests:表示成功发出请求的次数;
  • Fails:表示请求处理失败的次数;
  • Median:表示所有请求响应时间的中位数,单位为毫秒;
  • 90%ile: 正态分布平均值,表示有90%的数据小于此数值;
  • Average:平均值,单位毫秒,所有请求的平均响应时间;
  • Min:请求的最小服务器响应时间,单位毫秒;
  • Max:请求的最大服务器响应时间,单位毫秒;
  • Average size:请求平均数据大小,单位字节;
  • Current RPS: 每秒钟请求成功的个数,相当于TPS,即每秒处理的事务数;
  • Current Failures: 每秒创建请求的失败数量;

Charts 图表

  • Total Request per Second :每秒的请求总数,横轴为时间轴,纵轴为每秒请求的数量(请求处理通过的)。
    • 绿色线:每秒钟请求成功的个数
    • 红色线:每秒钟请求失败的个数

img

  • Response Time: 响应时间,横轴为时间轴,纵轴为以毫秒为单位的响应时间。需要注意的是,图表上面两根线并不是表示平均值,而是响应时间的“中位数”和“95%百分位数值”。
    • 绿色线:表示中位数
    • 黄色线:表示95%百分位数值

img

  • Number of Users: 用户数,横轴为时间轴,纵轴为时间所对应的“用户数”。

img

Failures 失败日志

脚本请求产生的异常响应、失败都可以在这里看到

Exceptions 异常日志

脚本运行抛出的异常可以在这里看到

Download Data

内容和 Statistics 的一致

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

相关文章:

  • 办公楼设计多少钱一平?广州办公楼设计收费标准
  • 完整教程:Redis GEO 模块深度解析:从原理到高可用架构实践
  • 2025/11/8
  • 2025年广州到吉尔吉斯斯坦海运公司权威推荐榜单:广州到吉尔吉斯斯坦运输/广州到吉尔吉斯斯坦双清门到门/广州到吉尔吉斯斯坦双清源头公司精选
  • 锦州西林瓶灌装压塞机厂家终身维护服务及费用指南
  • 微算法科技(NASDAQ MLGO)开发基于优先级的区块链交易打包算法,提高云边协同计算环境下的交易效率
  • 肇庆化妆品西林瓶灌装线推荐:食品级材质接触部件解析
  • 2025年深色贝母漆优质厂家权威推荐榜单:粉色贝母漆/贝母漆/珍珠白贝母漆源头厂家精选
  • P13508 [OOI 2024] Burenka and Pether
  • etcd的压缩和碎片整理提升性能
  • 局域网扫码枪/局域网二维码接收工具
  • 完整教程:AI编程工具(Cursor/Copilot/灵码/文心一言/Claude Code/Trae)AI编程辅助工具全方位比较
  • 【IEEE出版 | 连续4年稳定EI检索】第五届新能源与电力工程国际学术会议(ICNEPE 2025)
  • 习题解析之:计算圆周率——拉马努金法
  • 2025年隔音棉供货厂家权威推荐榜单:阻燃泡沫/隔热棉/阻燃棉源头厂家精选
  • 火车头采集器教程:夸克网盘批量转存(附工具)
  • 痛苦在虚无中回荡 神最终恩赐了绝望 是爱恨交织的冲撞 你永无力再违抗
  • AI驱动的技术突破:打造先进且合规的医疗数据分类分级新范式
  • 教育行业数据库风险监测方案——基于行标、非侵入式、多维度场景化的安全治理新模式
  • 实用指南:JVM(十)-- 类的加载器
  • Qoder 降价,立即生效!首购 2 美金/月
  • 【SPIE出版 | 快速见刊检索】第二届电子信息工程与智能通信国际研讨会(EIC 2025)
  • 同时支持RTSP/ONVIF/GB28181的平台哪里找?来看EasyGBS!
  • 2025年气流流型检测仪品牌推荐与选择制造企业权威推荐榜单:灌装机气流流型检测仪/气流流型验证服务/烟雾发生器源头厂家精选
  • 告别重复“点点点”!基于Dify工作流,打造能思考、会决策的自主测试智能体
  • Vue---开发数字大屏大屏
  • es 如果主分片坏了,一个副本分片是最新的和主分片一样怎么操作变为主分片怎么操作
  • el-table展开行内容增加后没有出现滚动条
  • 智能体同工作流的关系和区别
  • 高效赋能 B2B 贸易:区域化智能订货配送系统全方位解析