locust 性能测试
操作系统最小运行单位是进程,而进程最小运行单位是线程
协程是微小的线程,完全由程序所控制(在用户态执行),好处是性能大幅度的提升
Locust 是一款分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过 gevent 使用轻量级过程(即在自己的进程内运行)
安装 locust :pip3 install locust
如果 locust 文件位于子目录下且名称不是 locustfile.py,使用 -f 命令启动文件:
locust -f testscript(测试脚本目录)/locusttest.py(测试文件)
启动 locust 文件成功后,控制台会显示如下信息:
本次为本地启动,在浏览器输入 http://localhost:8089 打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可;
locustfile.py 测试脚本(代码如下)
import time
from locust import HttpUser,task,between
class QuickStartUser(HttpUser):
wait_time = between(1,2.5)
@task
def index(self):
r=self.client.get('/login')
assert r.status_code==200
在 @task ⾥⾯,使⽤装饰器定义了微线程模拟⽤户请求,请求路由地址为 /login 的接⼝信息
task_set 指向定义了用户行为的类
min_wait 模拟负载的任务之间执行时的最小等待时间,单位为毫秒
max_wait 模拟负载的任务之间执行时的最大等待时间,单位为毫秒
LOCUST UI界面
Number of users (peak concurrency):设置模拟的⽤户总数
Spawn rate (users spawned/second):每秒启动的⽤户虚拟数
Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息
Type:请求类型(也就是请求具体是那个=⽅法)
Name:请求的路径地址信息
Requests:当前已完成的请求数量
Fails:当前失败的数量
Mediam(ms): 响应时间的中位数
90%ile (ms):90%的请求响应时间
Average (ms):平均响应时间
Min (ms):最⼩响应时间
Max (ms):最⼤响应时间
Average size (bytes):平均请求的数据量
Current RPS:每秒中处理请求的数量,也就是RPS
菜单栏:
New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑;
Statistics:聚合报告
Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;
Failures:失败请求的展示界⾯;
Exceptions:异常请求的展示界⾯;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:request statistics CSV、feilures CSV、exceptions CSV;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?