关于 api-load-tester
api-load-tester 用于逐步对 HTTP 端点施加负载,并报告性能上限与瓶颈。它指导工具选择、测试执行、指标分析和报告生成,并设有生产环境与速率限制保护措施。
主要功能
- 01逐步增加并发进行测试
- 02选择 hey、wrk、ab 或 curl
- 03分析延迟、吞吐量与错误
- 04评估临界点和瓶颈
- 05生成含图表的 Markdown 报告
适用场景
- 01检查端点在负载增加时的表现
- 02定位延迟阈值与故障起点
- 03比较不同并发阶段的吞吐量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ onewave-ai/ claude-skills --skill api-load-tester安装后在 Claude Code 中输入/api-load-tester确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/metrics-interpretation.mdoutput-template.mdrules-and-examples.mdtool-commands.md详细介绍
API 负载测试
在逐步增加的负载下对 HTTP 端点进行压力测试,找出性能瓶颈,并生成包含可执行建议的报告。
目录
references/tool-commands.md-- 工具调用(hey/wrk/ab/curl)、默认并发阶段,以及每个阶段要采集的数据。references/metrics-interpretation.md-- 延迟、吞吐量、错误、性能瓶颈点和瓶颈分类。references/output-template.md--api-load-report.md的确切结构,包括 ASCII 图表和扩展表。references/rules-and-examples.md-- 安全规则、错误处理和调用示例。
输入
向用户收集以下信息。如果缺少必填项,请先询问再继续。
必填:端点 URL(以及所需的方法、标头和请求正文);预期延迟阈值。若未指定,默认阈值为:p50 < 100ms、p95 < 300ms、p99 < 1000ms。
可选:并发用户数或范围(默认从 1 逐步增加到 100);身份验证;请求负载;自定义标头;测试时长(默认每阶段 10s);递增模式(默认逐级递增,每阶段翻倍);成功标准(默认 2xx);已知速率限制;环境标签(prod/staging/dev)。
工作流
按顺序执行以下步骤。
-
选择工具。 按优先级依次检查:
which hey、which wrk、which ab、which curl。如果 hey/wrk/ab 均不存在,则安装 hey(macOS 上运行brew install hey,Linux 上安装 Go 后运行go install github.com/rakyll/hey@latest),或改用 curl 配合 bash 后台进程和wait。使用提供的端点发送一个简单请求进行验证;继续前先排查连接或身份验证问题。 -
验证端点。 使用指定的方法、标头、身份验证和请求正文,向每个端点发送一个请求。确认状态码符合成功标准,并记录单次请求基准延迟。如果失败,说明错误并询问用户是跳过还是修复。
-
设计测试计划。 构建逐步递增的并发阶段(默认递增顺序见
references/tool-commands.md),并根据用户的并发范围调整阶段。定义每个端点的方法、URL、标头、请求正文、成功状态码和超时时间(默认 30s)。执行前打印计划供用户审核。 -
执行各阶段。 对每个端点,使用所选工具依次运行每个并发阶段,每个阶段之间等待 2 秒。采集并保存每阶段的指标。命令、请求数计算公式和指标列表见
references/tool-commands.md。 -
解读指标。 计算延迟百分位数和分布、吞吐量曲线和上限、错误率及其出现时的负载、性能瓶颈点,以及瓶颈分类。参见
references/metrics-interpretation.md。 -
生成报告。 按照
references/output-template.md的确切格式,在当前工作目录中写入api-load-report.md,包括 ASCII 吞吐量和延迟图表。 -
报告后的操作。 在控制台打印 3-5 行摘要,说明报告路径,明确指出任何严重问题,并询问用户是否希望使用不同参数重新运行特定阶段。
规则
应用 references/rules-and-examples.md 中的安全规则、错误处理方式和调用示例。关键限制:未经明确确认,绝不对生产环境进行负载测试;默认仅测试 GET;对身份验证令牌进行脱敏;遵守 429 速率限制;将超时计为失败;绝不推断测试范围之外的表现。