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

性能测试Locust的使用

一、Locust 是什么?

Locust 是一个开源的负载测试工具,用于对网站(或 API)进行性能测试和压力测试。它使用 Python 编写,支持分布式测试,并且可以通过 Web UI 实时查看测试结果。


二、Locust 安装方法

你可以通过 pip 轻松安装 Locust。

✅ 安装命令:

pip install locust

📌 注意:建议在虚拟环境中安装和运行 Locust,避免依赖冲突。


三、验证是否安装成功

安装完成后,可以输入以下命令查看版本号:

locust --version

如果输出类似:

locust 2.19.0

说明安装成功 ✅


四、如何在 Python 中导入 Locust 并编写测试脚本

Locust 不是作为模块直接导入使用的,而是通过编写一个 Python 脚本来定义用户行为,然后用 locust 命令运行这个脚本。

转换成性能测试用例,需要的步骤:

  1. 创建HttpUser子类

  2. 为用例加上@task

1. 创建一个测试脚本文件,比如:locustfile.py

from locust import HttpUser, task, between
​
​
class MyUser(HttpUser):wait_time = between(1, 3)  # 每个任务之间等待 1~3 秒
​@taskdef login(self):url = "/api/login"  # 替换为你的登录接口路径payload = {"username": "test","password": "123456"}self.client.post(url, json=payload)
​@task(3)  # 权重为3,表示该任务被调用的概率更高def get_homepage(self):self.client.get("/api/home")  # 替换为你的首页接口

2. 运行 Locust 测试

在终端中执行:

locust -f locustfile.py

Locust 会启动一个 Web 界面,默认地址是:

http://localhost:8089

你可以在浏览器中打开这个地址,设置并发用户数、每秒启动用户数等参数,开始压测。


五、常见问题与注意事项

问题解决方案
locust: command not found确保已正确安装 pip install locust,并检查环境变量 PATH 是否包含 pip 的可执行目录(如 ~/.local/bin/Scripts/
接口返回 404检查测试 URL 是否正确,确保目标服务已经启动
需要认证的接口可以在 on_start() 方法中先执行登录获取 token,再保存到 headers 中

六、扩展功能示例(带 Token 认证)

# 性能测试import os
import  logging
logging.basicConfig(level=logging.INFO)
import jsonpath
from locust import HttpUser, between, task, TaskSetclass Task_Test(TaskSet):URL = "http://shop-xo.hctestedu.com/index.php?s="Params = {"application": "app","application_client_type": "weixin"}def on_start(self):# 在每个虚拟用户开始时候执行一次self.token=None@taskdef login(self):Json = {"accounts": "huace_tester","pwd": "huace_tester","verify": "rib5","type": "username"}res = self.client.post(url=self.URL + "api/user/login",params=self.Params,json=Json,name="登录" )if res.status_code == 200:self.token=jsonpath.jsonpath(res.json(),"$..token")else:print(f"Login接口执行的结果{res.status_code}")@taskdef address(self):# request的区别self.client.request(method='POST',url=self.URL+f"api/region/index&token={self.token}",params=self.Params,json={"pid":0},name='地址')@taskdef integral(self):self.client.request(method="POST",url=self.URL+f"api/userintegral/index&token={self.token}",params=self.Params,json={"page":1},name="积分列表")@taskdef HomePage(self):self.client.request(method="POST",url=self.URL+f"api/index/index&token={self.token}",params=self.Params,name="首页")@taskdef MasgessList(self):self.client.request(method="POST",url=self.URL+f"api/message/index&token={self.token}",params=self.Params,name="消息列表")if __name__ == '__main__':os.system('locust -f locust_demo.py --web-host="127.0.0.1"')

七、生成测试报告(可选)

Locust 默认没有自动保存报告的功能,但你可以结合日志记录或第三方插件(如 locust-plugins)来实现报告导出。

安装插件:

pip install locust-plugins

http://www.xdnf.cn/news/13532.html

相关文章:

  • Docker pull时报错:https://registry-1.docker.io/v2/
  • FastAPI基础入门(三)
  • 创客匠人赋能家庭教育行业:从知识分享到IP变现的转型之路
  • 数值偏微分方程的代数骨架:线性代数及其挑战-AI云计算
  • 公司网络变差的解决方法(固定IP地址冲突)
  • Python实现自动化识别蛋白-配体氢键
  • 第二部分-静态路由实验
  • PHP框架在内容管理系统开发中的优势:效率、安全与扩展性!
  • 通过Heron Handoff 插件我们在figma设计中可以像sketch导出离线标注
  • 5G视频通话可以做营销吗
  • AWS NLB使用分批滚动部署的500问题
  • NLP学习路线图(三十九):对话系统
  • 串扰的烦恼(Xtalk)
  • Spring Boot 集成 Redis 实战教程
  • 中小企业无线局域网络搭建与优化指南
  • 带IIC接口同步降压、快速充电、升压放电双向芯片SC8813使用介绍
  • [Git] 配置 Git
  • Vue ⑧-Vue3 | 组合式API
  • 智能合约中人工智能驱动的漏洞分析:趋势、挑战与未来方向
  • 去中心化交易所(DEX)架构:智能合约驱动与AMM算法创新
  • 基于YOLOv12的电力高空作业安全检测:为电力作业“保驾护航”,告别安全隐患!
  • 提升电子商务平台安全的有效策略
  • 台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商
  • window批处理文件(.bat),用来清理git的master分支
  • 【IC】Genus怎么写出scanDEF?
  • 湖北理元理律师事务所企业债务优化路径:司法重整中的再生之道
  • 【完整源码+数据集+部署教程】甘蔗叶片病害检测系统源码和数据集:改进yolo11-GhostDynamicConv
  • 【JavaAPI搜索引擎】项目测试报告
  • XAMPP 中配置仅允许特定 MAC 地址的设备访问
  • 【行云流水AI笔记】根据上面泳道图,请问如果加入强化学习,在哪些模块添加比较好,返回添加后的泳道图。