SuperAPI AI 工具集

load-testing

测试与质量

查看项目

更新于 10-19 20:09

技能介绍

用途:该技能面向负载与性能测试场景,帮助用户选择并使用 k6 或 vegeta 对 API 与 Web 应用施压,并分析延迟、错误率与吞吐等关键指标。

工具选择:k6 基于 JavaScript,适合复杂场景,适用于 API 与 Web 应用测试;vegeta 基于 Go,提供简单 CLI,适合恒定速率的 HTTP 负载测试。

主要能力(k6):

  • 编写测试脚本,定义虚拟用户(VUs)与持续时间。
  • 提供渐进加压模式示例,包括逐步爬坡、尖峰测试、压力测试与浸泡测试。
  • 阈值配置,如 p(95) 响应时间、错误率、检查项通过率,并支持同一指标多个阈值。
  • POST 请求与 Bearer 认证,使用环境变量传入 BASE_URL 与 API_TOKEN。
  • 自定义指标,包括 Trend、Counter、Rate、Gauge。
  • 多种运行输出:JSON、CSV、InfluxDB;支持 --quiet、--abort-on-fail、--tag 等参数。

主要能力(vegeta):

  • 恒定速率攻击,如 -rate=100 -duration=30s。
  • 使用 targets 文件定义多个请求及请求头、请求体。
  • 输出文本报告、JSON 报告、直方图(hdrplot)与 HTML 绘图。
  • 保存结果二进制文件供后续 report 或 plot 分析。资料说明 vegeta 不原生支持 ramp-up,复杂场景建议使用 k6。

使用方式:文档给出 macOS Homebrew、Linux apt、Docker 的 k6 安装命令,以及 vegeta 的 Homebrew 安装与 GitHub releases 下载说明;随后通过 k6 run 或 vegeta attack 管道执行,并结合 --out 或 vegeta report 查看结果。

适用场景:部署后的接口性能验证、容量与瓶颈探测、尖峰流量模拟、长时间稳定性(浸泡)测试,以及在 CI/CD 中(例如 GitHub Actions)执行带阈值的压测门禁。

限制与注意事项:测试前需确保目标服务运行;高并发时需调整文件描述符上限(ulimit -n 65535);结果趋于平台期通常表示服务达到容量上限;延迟波动可能来自网络或 GC。延迟分级参考表给出 p50/p95/p99 与错误率的目标、警告与严重区间。以上功能与步骤均来自资料,未提供的价格、平台支持范围等事实暂未提供。