locust做并发测试实战
一、安装
1.安装 python3
locust是基于 python3的,根据你的系统(mac、window、Linux)安装就行。
mac参考 mac安装python3
验证 :python --version
2.安装locust
locust是python3的一个外部库
命令:pip3 install locust
验证:locust -V
二、使用
1.编写python脚本
给两个示例:
get请求
from locust import task, between from locust.contrib.fasthttp import FastHttpUser, FastResponse class MinApp(FastHttpUser): wait_time = between(1, 2) host = "https://localhost:10001" ''' 1.banner - get请求无参数 ''' @task def sel_banners(self): response = self.client.get("/banners/list") if response.status_code != 200: print("error content:", response.text) ''' 2.查询商品 -get请求,问号传参数 ''' @task(2) def sel_item(self): list1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] for itemId in list1: response = self.client.get(f"/items/findItem?itemId={itemId}") if response.status_code != 200: print("error content:", response.text) else: print(response.text)
post请求,body传参数
from locust import task, between from locust.contrib.fasthttp import FastHttpUser, FastResponse class ShellCard(FastHttpUser): wait_time = between(1, 5) host = "http://localhost:8201/shelldataservice/openApi/service"''' 1.查询卡余额 ''' @task(2) def sel_balance(self): header = { "Content-Type": "application/json", "clientId": "gysitzes2h5Dc", "sign": "DE34DF43138E541FAD8BB9D7F7002139" } payload = { "cardCode": "733637631082057728", "panCode": "82057728" } response = self.client.post("/selBalance", data=None, json=payload, headers=header) if response.status_code != 200: print("error content:", response.text)
2.运行脚本
locust -f minApp.py
注:通过参数 -f 指定脚本文件路径
3.访问 locust UI界面
地址:localhost:8089
4.模拟用户访问
charts:
statistics:
三、总结
1.Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户;
不需要编写笨重的UI或者臃肿的XML代码,基于协程而不是回调,脚本编写简单易读
2.更多信息参考官网 : locust官网
播种和收获通常不在一个季节,而中间的过程叫做坚持~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构