当前位置: 首页 > 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.jsqmd.com/news/38562/

相关文章:

  • 基于HSMS通信标准的SECS通讯程序
  • 设置fdfs自动启动
  • 完整教程:Redis GEO 模块深度解析:从原理到高可用架构实践
  • 2025/11/9
  • 办公楼设计多少钱一平?广州办公楼设计收费标准
  • 2025/11/8
  • macOS 下载汇总 (系统、应用和教程) - macOS Tahoe 26
  • 使用page-meta为u-popup的遮罩层添加穿透屏蔽
  • 2025年广州到吉尔吉斯斯坦海运公司权威推荐榜单:广州到吉尔吉斯斯坦运输/广州到吉尔吉斯斯坦双清门到门/广州到吉尔吉斯斯坦双清源头公司精选
  • AI人力资源管理系统如何让HR的工作更高效、更有判断力
  • etcd 参数调整
  • 2026年HR系统选型全攻略:功能、成本与落地建议
  • 实用指南:AI应用架构师眼中的智能家居AI智能体:开启智能化居家生活的新机遇
  • 11.10 联考总结
  • PPT-EA:PPT自动生成器 - 详解
  • 锦州西林瓶灌装压塞机厂家终身维护服务及费用指南
  • 微算法科技(NASDAQ MLGO)开发基于优先级的区块链交易打包算法,提高云边协同计算环境下的交易效率
  • 肇庆化妆品西林瓶灌装线推荐:食品级材质接触部件解析
  • 使用uniapp为微信小程序添加返回拦截(不使用onBackPress
  • 2025年深色贝母漆优质厂家权威推荐榜单:粉色贝母漆/贝母漆/珍珠白贝母漆源头厂家精选
  • kvm虚拟机共享目录
  • 阿勒泰西林瓶灌装压塞机类型及特点解析
  • 基于Centos7.9搭建svn服务端
  • 梯度检查
  • 荆门定制西林瓶灌装机费用解析,比标准款贵多少?
  • 基于Ubuntu2504部署OpenStack E版
  • P13508 [OOI 2024] Burenka and Pether
  • 常见的无状态服务与典型有状态服务
  • CF1720D2 Xor-Subsequence (hard version)
  • 如何实现大模型和本企业内部知识相结合形成一个适合本企业的小模型