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

Vegeta HTTP 负载测试工具

Go接口压测的第三方包,一个很好用的负载测试工具。vegeta测试工具组件(可执行文件)支持linux以及mac系统,这里指的是通过终端命令行进行进行测试,不需要从代码层面使用这个工具的时候支持linux以及mac系统,在windows上可能会出现问题。但是通过vegeta包代码执行的时候是可以在多平台执行的,但是在数据的展示上会有局限性,当然也可能是博主本人不会用没有找到对应的使用方式。

比如测试工具组件执行完命令后可以在终端控制台很直观的看到Histogram图,但是在代码层面测试后就很难分析出Histogram的情况

下面贴一下代码层面的吧,至于组件的方式大家百度一下有很多详细的教程

http的形式

传参,用户验证参数

packagemainimport("encoding/base64""encoding/json""fmt"vegeta"github.com/tsenart/vegeta/lib""net/http""time")funcmain(){// 测试目标 URLtarget:="https://your.domain.name/"// 测试参数rate:=20// 每秒请求数duration:=1*time.Second// 测试时间// 请求体数据data:=map[string]string{"key1":"value1","key2":"value2",}body,_:=json.Marshal(&data)// Basic验证authString:="user:password"encodedAuthString:=base64.StdEncoding.EncodeToString([]byte(authString))headers:=http.Header{"Content-Type":[]string{"application/json"},"Authorization":[]string{"Basic "+encodedAuthString},}// 使用自定义transport创建attackerattacker:=vegeta.NewAttacker()// 创建 vegeta 目标targets:=[]vegeta.Target{{Method:"GET",URL:target,Header:headers,Body:body}}// 创建和执行 vegeta 测试results:=attacker.Attack(vegeta.NewStaticTargeter(targets...),vegeta.Rate{Freq:rate,Per:time.Second},duration,"Load Test")// 分析结果metrics:=&vegeta.Metrics{}forres:=rangeresults{metrics.Add(res)}metrics.Close()// 打印结果fmt.Printf("Requests: %d\n",metrics.Requests)fmt.Printf("成功率: %.2f%%\n",metrics.Success*100)fmt.Printf("最大延迟: %s\n",metrics.Latencies.Max)fmt.Printf("平均延迟: %s\n",metrics.Latencies.Mean)fmt.Printf("P95 延迟: %s\n",metrics.Latencies.P95)fmt.Printf("P99 延迟: %s\n",metrics.Latencies.P99)fmt.Printf("QPS: %.2f\n",metrics.Rate)}

Https的形式

传参,用户验证参数,跨过证书验证

packagemainimport("crypto/tls""encoding/base64""encoding/json""fmt"vegeta"github.com/tsenart/vegeta/lib""net/http""time")funcmain(){// 测试目标 URLtarget:="https://your.domain.name/"// 测试参数rate:=20// 每秒请求数duration:=1*time.Second// 测试时间// 请求体数据data:=map[string]string{"key1":"value1","key2":"value2",}body,_:=json.Marshal(&data)// Basic验证authString:="user:password"encodedAuthString:=base64.StdEncoding.EncodeToString([]byte(authString))headers:=http.Header{"Content-Type":[]string{"application/json"},"Authorization":[]string{"Basic "+encodedAuthString},}// 创建http.Transport以跳过证书验证transport:=&http.Transport{TLSClientConfig:&tls.Config{InsecureSkipVerify:true},}// 使用自定义transport创建attackerattacker:=vegeta.NewAttacker(vegeta.Client(&http.Client{Transport:transport}))// 创建 vegeta 目标targets:=[]vegeta.Target{{Method:"GET",URL:target,Header:headers,Body:body}}// 创建和执行 vegeta 测试results:=attacker.Attack(vegeta.NewStaticTargeter(targets...),vegeta.Rate{Freq:rate,Per:time.Second},duration,"Load Test")// 分析结果metrics:=&vegeta.Metrics{}forres:=rangeresults{metrics.Add(res)}metrics.Close()// 打印结果fmt.Printf("Requests: %d\n",metrics.Requests)fmt.Printf("成功率: %.2f%%\n",metrics.Success*100)fmt.Printf("最大延迟: %s\n",metrics.Latencies.Max)fmt.Printf("平均延迟: %s\n",metrics.Latencies.Mean)fmt.Printf("P95 延迟: %s\n",metrics.Latencies.P95)fmt.Printf("P99 延迟: %s\n",metrics.Latencies.P99)fmt.Printf("QPS: %.2f\n",metrics.Rate)}
http://www.cnnetsun.cn/news/3263511.html

相关文章:

  • Navicat无限试用终极指南:3种强力方案解决Mac版试用期限制
  • C# WinForm俄罗斯方块项目解析:从核心逻辑到界面实现
  • LangChain Memory 架构演进全图谱(2022–2024核心迭代路径与企业级选型决策树)
  • 5分钟掌握ModTheSpire:杀戮尖塔模组加载器终极指南
  • 抖音批量下载工具:轻松保存无水印视频与音乐的终极方案
  • YaeAchievement:原神成就数据导出与UIAF格式转换终极指南
  • 167、动态分配策略中 Anchor Ratio 的重新聚类:用 K-Means 调整 YOLOv11 默认 Anchor
  • 蓝牙5.4音频开发实战:低延迟高保真方案解析
  • Spatial-Agent:大模型驱动的地理分析工作流引擎
  • 机器学习中的觉的距离和相似度
  • eBPF 与 OpenTelemetry 融合:构建分布式追踪的 eBPF 探针
  • d3d8to9:让Direct3D 8游戏在Windows 10/11上完美运行的终极解决方案
  • 汽车行业术语
  • 玄学中的系统论:从周期律到模型训练的收敛震荡
  • 程序员必读书单
  • Windows 11 LTSC 24H2 企业版一键安装微软商店:完整解决方案指南
  • Windows 11任务栏拖放功能缺失?3分钟教你如何优雅修复
  • CAF空间原型与肿瘤微环境观察:七类基质生态位的研究启发
  • Speechless:如何用这款免费Chrome插件永久保存你的微博记忆?
  • 终极指南:如何用MCA Selector轻松管理你的Minecraft世界存档
  • JavaScript 网盘文件直链获取技术方案:重构下载体验的现代实现
  • 公司注销登报清算公告多少钱?2026各省报纸收费标准与流程
  • Wand-Enhancer:免费解锁WeMod高级功能的本地化增强方案
  • Unity全景图实现:天空盒与Shader球体技术对比与实战指南
  • Django-Admin和第三方插件Xadmin
  • 解锁B站高阶体验:3个核心场景下的Bilibili-Evolved实战指南
  • OpenCore Legacy Patcher终极指南:如何让老旧Mac焕发新生体验现代macOS
  • VisualCppRedist AIO终极指南:一键解决Windows C++运行库依赖难题
  • LCU API 客户端工具架构解析:基于微服务设计的自动化游戏助手技术实现
  • 【RT-DETR涨点改进】20 RT-DETR的终极优化:从模型压缩到端侧部署的全链路实战