用途
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 命令行工具,需在相应环境中使用。