SuperAPI AI 工具集

api-testing

测试与质量

查看项目

更新于 10-16 02:24

技能介绍

用途

API Testing 技能用于测试 API 集成,主要手段包括模拟响应(mocking responses)、拦截请求(intercepting requests)和监控网络流量(monitoring network traffic)。当用户需要模拟后端 API、模拟错误场景、进行请求拦截或测试离线行为时,该技能会被激活。

主要能力

响应模拟

使用 browser-devtools-cli stub mock-http-response 命令,通过 --pattern 指定 URL 匹配模式,通过 --response 指定返回内容。例如:

browser-devtools-cli stub mock-http-response \
  --pattern "**/api/users" \
  --response '{"action":"fulfill","status":200,"body":[{"id":1,"name":"Test"}]}'

请求拦截

使用 browser-devtools-cli stub intercept-http-request 命令,可修改请求头或请求体。例如添加认证头:

browser-devtools-cli stub intercept-http-request \
  --pattern "**/api/**" \
  --modifications '{"headers":{"Authorization":"Bearer token"}}'

网络监控

使用 browser-devtools-cli --json o11y get-http-requests 获取 HTTP 请求记录,可按资源类型或状态码过滤:

browser-devtools-cli --json o11y get-http-requests
browser-devtools-cli --json o11y get-http-requests --resource-type fetch
browser-devtools-cli --json o11y get-http-requests --status '{"min":400}'

Stub 管理

browser-devtools-cli stub list
browser-devtools-cli stub clear --stub-id <id>
browser-devtools-cli stub clear

常见场景

  • 模拟成功响应:返回 200 及指定 body。
  • 模拟服务器错误:返回 500 及错误信息。
  • 模拟 404:返回 404 及 Not Found。
  • 模拟网络超时:使用 {"action":"abort","abortErrorCode":"timedout"}。
  • 模拟连接失败:使用 {"action":"abort","abortErrorCode":"connectionfailed"}。
  • 添加认证头:通过 intercept 修改 headers。
  • 修改请求体:通过 intercept 修改 body。
  • 添加延迟:使用 --delay-ms 3000。
  • 模拟不稳定 API:使用 --chance 0.3 按概率返回 503。
  • 一次性 mock:使用 --times 1。

使用方式

典型测试工作流使用会话(session)管理:

SESSION="--session-id api-test"

# 1. 导航前设置 mock
browser-devtools-cli $SESSION stub mock-http-response \
  --pattern "**/api/users" \
  --response '{"action":"fulfill","status":200,"body":[{"id":1,"name":"Mock User"}]}'

# 2. 导航到应用
browser-devtools-cli $SESSION navigation go-to --url "https://app.example.com"
browser-devtools-cli $SESSION sync wait-for-network-idle

# 3. 与应用交互
browser-devtools-cli $SESSION interaction click --selector "#load-users"
browser-devtools-cli $SESSION sync wait-for-network-idle

# 4. 检查网络请求
browser-devtools-cli $SESSION --json o11y get-http-requests

# 5. 验证 UI 显示 mock 数据
browser-devtools-cli $SESSION content get-as-text --selector ".user-list"

# 6. 列出活动 stub
browser-devtools-cli $SESSION stub list

# 7. 清除所有 stub
browser-devtools-cli $SESSION stub clear

# 8. 清理会话
browser-devtools-cli session delete api-test

错误测试工作流类似,先 mock 错误响应,再导航并触发错误,最后检查 UI 错误处理并清理。

调试真实后端

当针对真实后端测试并需要调试接口失败或返回异常数据时,可使用 node-devtools-cli:

# 连接 API 服务进程
node-devtools-cli --session-id api-debug debug connect --process-name "api"

# 在处理器上设置 tracepoint
node-devtools-cli --session-id api-debug debug put-tracepoint \
  --url-pattern "routes/users.ts" \
  --line-number 42

# 从浏览器(或 curl)触发 API,然后获取快照
node-devtools-cli --session-id api-debug --json debug get-probe-snapshots

# 或检查后端控制台日志
node-devtools-cli --session-id api-debug --json debug get-logs --search "error"

适用场景

  • 前端开发中需要模拟后端接口以独立测试 UI。
  • 验证应用对各类错误状态(500、404、超时、连接失败)的处理。
  • 测试加载状态(通过注入延迟)。
  • 测试离线行为。
  • 调试真实后端接口的失败原因。

限制

资料中未提供关于平台支持、收费、价格或具体性能效果的说明。该技能依赖 browser-devtools-cli 与 node-devtools-cli 命令行工具,需在相应环境中使用。