用途
api-tester 是一个 API 测试与验证智能体(API Testing & Validation Agent),用于自动化 HTTP API 测试:执行请求、验证响应、批量处理并进行安全合规检查,以确保 API 在部署前满足功能与安全标准。
适用人群为需要可重复、有文档记录的 API 测试运行的开发者与 QA 工程师。可用于验证某个 API 端点是否正常、运行批量回归测试,或对 API 做安全合规审计。
主要能力
api-tester 提供三种运行模式:
- TEST 模式:输入 HTTP 方法(GET、POST、PUT、DELETE、PATCH)、目标端点 URL,可选 headers、查询参数、请求体,以及可选期望状态码与响应 schema。执行请求后捕获响应状态、headers、body 与延迟,并应用校验断言,输出包含 request、response、validation、security_scan 的结构化报告。触发词包括 test、execute、run、call、send、测试、执行、运行、调用、发送。
- VALIDATE 模式:对响应数据(来自上一次 TEST 或外部来源)按校验规则进行验证,规则包括 JSON schema、字段类型、值范围、正则表达式。输出详细逐项通过/失败明细。触发词包括 validate、verify、check、schema、assert、验证、校验、检查、断言。
- BATCH 模式:输入测试用例数组(每个用例含 method、URL、headers、body、expectations),可选并发上限(默认 5)和首个失败即停止标志。执行后输出汇总(total、passed、failed、skipped、duration_ms)、逐项结果与报告地址。触发词包括 batch、bulk、multiple、suite、collection、批量、多个、测试集、集合。
使用方式(工作流程)
采用 Plan-Execute-Summarize 循环,共六个阶段:
- PARSE:从用户输入提取测试意图、目标端点、方法、headers、body。
- VALIDATE:检查请求结构、认证令牌可用性、端点安全性,确保无 CWE 违规。
- EXECUTE:发送 HTTP 请求,捕获响应,测量延迟(30 秒超时)。
- VERIFY:应用校验规则(状态码、schema、headers、body 内容),记录全部断言通过/失败。
- REPORT:生成含通过/失败状态、指标与建议的结构化测试报告。
- ARCHIVE:将测试运行记录到审计轨迹,附带时间戳、结果与产物。
认证令牌仅从 API_TEST_TOKEN 环境变量加载。BATCH 模式限制速率 100 请求/分钟,接近上限时对请求排队。错误处理覆盖 4xx、429(读取 Retry-After 后重试最多 3 次)、5xx(指数退避 1s/2s/4s,最多 3 次后转人工复核)、超时(重试一次)、网络错误、认证失败(401/403)与校验错误。
安全基线
技能强调 Security-First,包含 CWE 合规清单与缓解措施:
- CWE-798 硬编码凭据:仅从 API_TEST_TOKEN 环境变量加载认证令牌
- CWE-89 SQL 注入:净化所有查询参数,使用参数化查询
- CWE-78 命令注入:绝不使用用户输入执行 shell 命令
- CWE-79 XSS:在 HTML 报告中渲染响应体前进行转义
- CWE-200 信息暴露:在日志与报告中遮蔽令牌/PII
- CWE-295 证书校验:生产环境始终校验 SSL 证书
- CWE-400 资源消耗失控:实现请求超时与速率限制
- CWE-22 路径遍历:校验并净化测试产物中的文件路径
安全扫描协议包括执行前扫描请求 URL 与参数的注入模式、执行后扫描响应体的敏感数据暴露、报告生成时遮蔽所有类凭据模式。
红线(严禁):严禁在测试脚本中硬编码凭据/令牌/API 密钥;严禁未经明确确认对生产端点执行测试;严禁在生产环境忽略 SSL 证书校验;严禁将未净化用户输入直接传入 HTTP 请求;严禁在测试报告中暴露敏感响应数据(PII、令牌);严禁不设退避策略无限重试失败请求。
适用场景
- 验证单个 API 端点是否按预期工作(如 GET 请求并期望 200 状态码)
- 运行批量回归测试套件(如对 /health、/users 等端点集合批量测试,示例中 4 个用例全部通过)
- 对 API 进行安全合规审计
- 需要可重复、可比较、有完整审计轨迹的 API 测试
限制
该技能明确不适用于以下场景:
- 负载/性能测试:如需“运行 1000 个并发请求”或“基准测试 API 吞吐量”,应使用专用负载测试工具(k6、wrk)。此技能执行单个请求与小批量,不做压力测试。
- UI/浏览器测试:如“测试我的登录页面”或“检查按钮是否工作”,应使用浏览器自动化技能。api-tester 仅在 HTTP 层面运作。
- 代码单元测试:如“测试我的 Python 函数”或“编写 Jest 测试”,应使用代码测试技能。
- 生成 mock 服务器:此技能消费 API,不创建 API。“为我构建一个 mock API”应使用 API 脚手架技能。
- 生产流量回放:未经用户明确确认,不得将生产日志回放到实际系统。
质量门指标包括:F1 分数 ≥ 0.90、MRR ≥ 0.85、触发准确率 ≥ 0.90、测试覆盖率 ≥ 80%、安全通过率 100%(零 CWE P0 违规)、响应时间 p95 < 500ms。
自进化机制
该技能处于启用的 Use-to-Evolve 状态(版本 1.0.0)。每次调用后运行后置钩子:记录使用情况到 .skill-audit/usage.jsonl,从用户即时响应检测反馈信号(correction、rephrasing、approval、abandon、none),并按调用次数节流检查触发条件(每 10 次轻量检查、每 50 次全量指标重算、每 100 次层级漂移检查)。结构性变更写入进化队列,通过 skill-writer 的 OPTIMIZE 模式消费。