{"id":"ee999eed-ad67-4be7-aeb4-0c70ce177a9f","entityType":"agent","slug":"clawhub-kokxi-qa-api-testing","name":"qa-api-testing","canonicalUrl":"https://www.xpersona.co/agent/clawhub-kokxi-qa-api-testing","canonicalPath":"/agent/clawhub-kokxi-qa-api-testing","generatedAt":"2026-10-10T21:39:11.581Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":null},"description":"当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility. Skill: qa-api-testing Owner: kokxi Summary: 当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth by","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-api-testing","sourceUrl":"https://clawhub.ai/kokxi/qa-api-testing","homepage":"https://clawhub.ai/kokxi/skills/qa-api-testing","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/kokxi/qa-api-testing","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/kokxi/skills/qa-api-testing","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":null},"stars":null,"forks":null,"downloads":1315,"packageName":null,"latestVersion":"1.8.0","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T17:34:32.101Z","lastCrawledAt":"2026-10-10T17:34:32.101Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T17:34:32.101Z","lastVerifiedAt":null,"highlights":[{"version":"1.8.0","createdAt":"2026-09-29T04:25:22.458Z","changelog":"**Changelog for qa-api-testing v1.8.0** - Major structure upgrade: split documentation into modular reference files for clearer scope and maintainability. - Added: Five new documentation files covering core flows, test cases, scenarios, tooling, and a case table template. - Removed: The obsolete skill-card.md file. - Revised: SKILL.md with updated input/output formats, coverage rules for small API sets, and detailed when-to-load guidance for each reference. - Enhanced: Broader protocol type support and explicit instructions for contract, compatibility, and performance coverage. - Improved: Output self-check criteria for robust and consistent test case delivery.","fileCount":8,"zipByteSize":22518},{"version":"1.7.7","createdAt":"2026-09-27T14:32:04.601Z","changelog":"1.7.7","fileCount":3,"zipByteSize":6798},{"version":"1.7.6","createdAt":"2026-09-01T12:35:57.742Z","changelog":"显示名改中文","fileCount":3,"zipByteSize":7142},{"version":"1.7.5","createdAt":"2026-08-30T15:10:51.098Z","changelog":"1.7.5: 版本号升级","fileCount":3,"zipByteSize":6824},{"version":"1.7.0","createdAt":"2026-08-16T14:34:06.911Z","changelog":"- Removed the file skill-card.md for simplification and potential de-duplication. - Updated SKILL.md version from 1.6.3 to 1.7.0. - No substantial content changes in SKILL.md; version increment and cleanup only.","fileCount":3,"zipByteSize":6284},{"version":"1.6.3","createdAt":"2026-08-12T15:20:42.715Z","changelog":"- Added new metadata fields: `slug` and `displayName` in SKILL.md for enhanced identification. - Updated `version` from 1.6.0 to 1.6.3. - No changes to core content or scope of the skill. - Removed redundant file: skill-card.md.","fileCount":3,"zipByteSize":6153},{"version":"1.6.0","createdAt":"2026-07-06T17:14:01.954Z","changelog":"- Enhanced coverage and guidance: expanded when_to_use triggers, clearer error recovery, and improved depth requirements for API testing. - Improved output structure: added test case traceability (unique IDs and contract linkage). - New categories for discoverability: skill now appears under 'Development' and 'Testing'. - Synchronized documentation: removed the redundant skill-card.md, updated SKILL.md with refined descriptions and practical quantification references.","fileCount":3,"zipByteSize":6284},{"version":"1.5.0","createdAt":"2026-06-29T12:31:05.389Z","changelog":"Version 1.5.0 of qa-api-testing - Skill description rewritten，更突出API测试覆盖点和实际Bug关注方向 - 明确了输入输出格式，包括输出结构（测试方案、Mock策略、安全清单等） - 新增 version 字段，标准化 skill 元信息 - 移除了冗余 skill-card.md 文件，精简文档结构 - 加入 error_recovery_guidance，明确异常处理和重试建议 - 轻量精简，部分内容合并，更聚焦接口六维测试和实际落地","fileCount":3,"zipByteSize":6190}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-api-testing","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:39:11.578Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":null},"readme":"Skill: qa-api-testing\n\nOwner: kokxi\n\nSummary: 当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility.\n\nTags: latest:1.8.0\n\nVersion history:\n\nv1.8.0 | 2026-09-29T04:25:22.458Z | auto\n\n**Changelog for qa-api-testing v1.8.0**\n\n- Major structure upgrade: split documentation into modular reference files for clearer scope and maintainability.\n- Added: Five new documentation files covering core flows, test cases, scenarios, tooling, and a case table template.\n- Removed: The obsolete skill-card.md file.\n- Revised: SKILL.md with updated input/output formats, coverage rules for small API sets, and detailed when-to-load guidance for each reference.\n- Enhanced: Broader protocol type support and explicit instructions for contract, compatibility, and performance coverage.\n- Improved: Output self-check criteria for robust and consistent test case delivery.\n\nv1.7.7 | 2026-09-27T14:32:04.601Z | user\n\n1.7.7\n\nv1.7.6 | 2026-09-01T12:35:57.742Z | user\n\n显示名改中文\n\nv1.7.5 | 2026-08-30T15:10:51.098Z | user\n\n1.7.5: 版本号升级\n\nv1.7.0 | 2026-08-16T14:34:06.911Z | auto\n\n- Removed the file skill-card.md for simplification and potential de-duplication.\n- Updated SKILL.md version from 1.6.3 to 1.7.0.\n- No substantial content changes in SKILL.md; version increment and cleanup only.\n\nv1.6.3 | 2026-08-12T15:20:42.715Z | auto\n\n- Added new metadata fields: `slug` and `displayName` in SKILL.md for enhanced identification.\n- Updated `version` from 1.6.0 to 1.6.3.\n- No changes to core content or scope of the skill.\n- Removed redundant file: skill-card.md.\n\nv1.6.0 | 2026-07-06T17:14:01.954Z | auto\n\n- Enhanced coverage and guidance: expanded when_to_use triggers, clearer error recovery, and improved depth requirements for API testing.\n- Improved output structure: added test case traceability (unique IDs and contract linkage).\n- New categories for discoverability: skill now appears under 'Development' and 'Testing'.\n- Synchronized documentation: removed the redundant skill-card.md, updated SKILL.md with refined descriptions and practical quantification references.\n\nv1.5.0 | 2026-06-29T12:31:05.389Z | auto\n\nVersion 1.5.0 of qa-api-testing\n\n- Skill description rewritten，更突出API测试覆盖点和实际Bug关注方向\n- 明确了输入输出格式，包括输出结构（测试方案、Mock策略、安全清单等）\n- 新增 version 字段，标准化 skill 元信息\n- 移除了冗余 skill-card.md 文件，精简文档结构\n- 加入 error_recovery_guidance，明确异常处理和重试建议\n- 轻量精简，部分内容合并，更聚焦接口六维测试和实际落地\n\nv1.4.1 | 2026-06-25T16:53:21.053Z | auto\n\n- Simplified the skill description for clarity and focus.\n- Removed redundant details and repetitive keyword lists from documentation.\n- No change to test strategy content, checklists, or example usage.\n- Deleted the skill-card.md file as part of documentation cleanup.\n\nv1.4.0 | 2026-06-24T05:05:01.519Z | auto\n\n- 增强功能和范围，支持RESTful、GraphQL、gRPC、WebSocket全面的接口测试方法与协议细分；\n- 拓展“when_to_use”关键词，自动覆盖更多接口测试相关场景（如WebSocket、契约测试、兼容性等）；\n- 引入“接口类型速查”、“契约/兼容性测试检查清单”等新结构，提升六维测试的实用性与检查覆盖；\n- 更新工具对比表，推荐主流API测试及契约测试工具与Mock工具；\n- 新增实用场景示例，明确应对各类API及集成场景的测试要点和Mock策略；\n- 移除 skill-card.md，精简文档结构。\n\nv1.3.0 | 2026-06-21T04:49:50.702Z | auto\n\n- Added a comprehensive skill description and usage guide in SKILL.md, detailing interface testing for RESTful, GraphQL, and gRPC APIs.\n- Introduced testing coverage standards by complexity, including required case counts and six test dimensions (functionality, security, exception, performance, contract, compatibility).\n- Provided detailed checklists and practical examples for each testing dimension (including sample code for REST Assured and Pytest).\n- Documented recommended tools for API testing, mocking, and contract validation.\n- Included a final acceptance checklist to ensure thoroughness and maintainability of test solutions.\n\nArchive index:\n\nArchive v1.8.0: 8 files, 22518 bytes\n\nFiles: assets/case-template.md (3414b), references/core-flows.md (7374b), references/scenarios.md (3750b), references/test-cases.md (16920b), references/tooling.md (3503b), skill-card.md (1976b), SKILL.md (9782b), _meta.json (133b)\n\nFile v1.8.0:SKILL.md\n\n---\nname: qa-api-testing\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n  触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility.\nlicense: MIT\nallowed-tools: Read Grep Glob Bash WebFetch\nmetadata:\n  display-name: \"Api Testing\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"接口测试\\\"、\\\"API测试\\\"、\\\"接口自动化\\\"、\\\"RESTful测试\\\"、\\\"GraphQL测试\\\"、\\\"gRPC测试\\\"、\\\"契约测试\\\"、\\\"接口安全测试\\\"、需要测试API时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-test-automation-arch\\\",\\\"qa-req-deconstruction\\\"],\\\"downstream\\\":[\\\"qa-ci-cd-testing\\\",\\\"qa-execution-observation\\\"]}\"\n  references: \"[\\\"references/core-flows.md\\\",\\\"references/test-cases.md\\\",\\\"references/tooling.md\\\",\\\"references/scenarios.md\\\",\\\"assets/case-template.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"接口文档\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"API接口文档或契约文件\\\"},{\\\"name\\\":\\\"自动化架构\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-automation-arch的自动化架构设计\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"测试策略\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-strategy-design的测试策略\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每个接口测试用例带唯一ID：TC_{接口模块缩写}_{功能缩写}_{序号}（如 TC_API_LOGIN_001）\\\",\\\"关联接口契约ID\\\"],\\\"structure\\\":[{\\\"test_cases\\\":\\\"接口测试用例（固定 9 列 Markdown 表格：用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\\\"},\\\"用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\\\",\\\"覆盖率：标注口径（基于现有接口文档/契约），禁止\\\\\\\"全覆盖/100%\\\\\\\"绝对化表述；未覆盖接口标注\\\\\\\"未覆盖+原因\\\\\\\"\\\",\\\"占比取整：每维允许偏差 ≤1 条；接口数 <5 时以每维至少 1 条兜底并注明实际分布\\\"],\\\"api_test_plan\\\":\\\"接口测试方案\\\",\\\"mock_strategy\\\":\\\"Mock策略\\\",\\\"automation_scripts\\\":\\\"自动化脚本设计\\\",\\\"security_checks\\\":\\\"安全测试清单\\\"}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"接口异常时记录完整请求/响应信息，增加重试机制\\\",\\\"retry_behavior\\\":\\\"修复网络/环境问题后重新执行接口测试\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"见正文「深度要求」表：简单接口=接口数×5 / 中等=×10 / 复杂=×15\\\",\\\"minimum\\\":\\\"六维全覆盖（功能/安全/异常/性能/契约/兼容）；接口数 <5 时以每维至少 1 条兜底，替代不可行的百分比配额\\\"}\"\n---\n\n# 接口测试专项\n\n## 核心原则\n\n接口 Bug 大多不在状态码，而在**数据结构不一致、字段类型错配、空值处理与并发副作用**。\n200 只能证明\"通路是通的\"，证明不了\"数据是对的\"。\n\n## 1. 先定位接口类型（决定重心）\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n| **SOAP** | 企业级系统、金融/医疗 | WSDL契约验证、XML报文结构、WS-Security | XML、强契约、RPC风格 |\n| **Webhook** | 支付回调、事件通知 | 验签、幂等性、超时重试、回调顺序 | HTTP回调、被动触发、需主动Mock |\n\n## 2. 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|------|------|\n| 功能测试 | 40% | 正向/反向/边界/参数 |\n| 安全测试 | 20% | 认证/授权/注入 |\n| 异常测试 | 15% | 超时/重试/降级 |\n| 性能测试 | 10% | 响应时间/并发 |\n| 契约测试 | 10% | 接口契约验证 |\n| 兼容性测试 | 5% | 版本兼容 |\n\n> **偏差声明**：技能集通用六维标准为 功能/异常/边界/并发/安全/性能（见 `docs/standards.md`，装整套技能集时可得）。本技能针对 API 测试专项调整：将「边界」归入功能测试维（边界值验证是参数测试的子项）、将「并发」归入性能测试维（并发能力是 API 性能指标），新增「契约测试」与「兼容性测试」两维——这两者是接口测试的核心风险面（契约破裂与版本迁移），在通用功能测试中无独立维度。若与通用六维口径冲突，以本技能的六维为准，并在测试报告中说明。\n>\n> **小规模降级**：上表占比适用于接口数 ≥ 5 的项目。接口数 < 5 时配额在数学上无法成立（20% 安全测试不足 1 条），此时改为「每维至少 1 条 + 覆盖率标注实际口径」，不要为凑比例编造用例。占比取整规则（先保 P0 所属维 → 向下取整 → 偏差 ≤1 条）见 `references/core-flows.md`。\n\n## 3. 加载时机\n\n**需要时才读，不要一上来全读**：\n\n| 什么时候读 | 读哪个 |\n|-----------|--------|\n| 展开某一维的测试范围，或交付前逐项自检（32 项） | [`references/core-flows.md`](references/core-flows.md)（六维详图 + Mock 策略 + 检查清单） |\n| 生成具体测试用例；被测接口是 GraphQL/gRPC/WebSocket/SOAP/Webhook | [`references/test-cases.md`](references/test-cases.md)（39 条用例 + OWASP API Top 10 对照 + 协议专项） |\n| 选工具，或要展开某工具能力边界 | [`references/tooling.md`](references/tooling.md)（默认选型 + 能力矩阵 + 性能工具） |\n| 用户描述的情况命中特定风险场景 | [`references/scenarios.md`](references/scenarios.md)（5 个场景，校正测试重心） |\n| 写用例表 | [`assets/case-template.md`](assets/case-template.md)（9 列模板 + 填写要求） |\n\n## 4. 工具默认选型\n\n没别的约束就用这套：\n\n| 场景 | 默认工具 | 理由 |\n|------|---------|------|\n| 日常调试与文档 | Postman / Apifox | 上手最快，协作与文档一体 |\n| 自动化执行 | **pytest + requests**（Python）/ REST Assured（Java） | 生态成熟、易接 CI |\n| 契约测试 | **Pact**（消费者驱动）/ Schemathesis（OpenAPI 校验） | 前者管协作方破坏性变更，后者管实现偏离契约 |\n| 第三方与异常 Mock | **WireMock** | 延迟/超时/脏数据开箱即用 |\n| 性能 | **k6**（CI 友好）；需 GUI 分布式再选 JMeter | 压测按需引入，非默认动作 |\n\n> 明确\"单工具全栈\"诉求用 **Karate**。gRPC 用 grpcurl 调试（WireMock 不覆盖流式语义）。\n> 完整能力矩阵与选型避坑见 [`references/tooling.md`](references/tooling.md)。\n\n## 5. 输出格式\n\n**9 列标准表格**：\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_LOGIN_001 | 功能测试 | 登录接口 | 正确凭证登录成功 | P0 | 接口文档已提供，账号已就绪 | 发送POST /api/login，参数{user,pass} | 返回200，响应含token且有效 | 高 |\n| TC_API_LOGIN_002 | 安全测试 | 登录接口 | Token伪造被拒绝 | P0 | 合法Token已知 | 修改Token签名后请求受保护接口 | 返回401，拒绝访问 | 高 |\n| TC_API_LOGIN_003 | 异常测试 | 登录接口 | 超时重试幂等性 | P1 | 模拟网关超时 | 请求超时后自动重试2次 | 重试成功且无重复副作用 | 中 |\n\n> 上面 3 行只用于展示**每列的写法**，不是完整用例集。P0≤20% 等占比约束作用于最终交付的整份用例集，\n> 不要照抄这 3 行的级别分布。完整模板见 [`assets/case-template.md`](assets/case-template.md)。\n\n**方案产出顺序**：接口类型定位 → 六维用例矩阵 → Mock 策略 → 自动化脚本设计 → 安全清单 → 风险提示。\n\n## 6. 交付前自检\n\n- [ ] 9 列齐全，无列错位、无单元格含 `|`（会破坏表格与 CSV）\n- [ ] 用例编号唯一且符合 `TC_{模块}_{功能}_{序号}`\n- [ ] P0-P3 占比符合；接口数 <5 时已注明实际分布口径\n- [ ] 覆盖率已标注口径，无\"全覆盖/100%\"绝对化表述\n- [ ] 未覆盖接口已写明\"未覆盖 + 原因\"\n- [ ] 六维检查清单已逐项过（见 `references/core-flows.md` 第 8 节）\n\n**机器校验**：\n\n```bash\npython scripts/validate_testcase_table.py <用例文件>\n```\n\n覆盖列数、编号唯一性、级别/风险取值、占比、覆盖率措辞。报错先修再交付。\n\nFile v1.8.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790655922458\n}\n\nFile v1.8.0:references/core-flows.md\n\n# 接口测试核心流程详图\n\n> 本文件是 [SKILL.md](../SKILL.md) 的详细展开：承载六维测试范围的树状详图、交付前检查清单与 Mock 策略。\n> 典型用例模板见 [test-cases.md](test-cases.md)，工具选型见 [tooling.md](tooling.md)，场景示例见 [scenarios.md](scenarios.md)。\n> 1-7 节是\"这一维测什么范围\"，第 8 节是\"交付前逐项查什么\" —— 按需加载对应小节，不必通读。\n\n## 目录\n\n1. [功能测试](#1-功能测试) · 2. [安全测试](#2-安全测试) · 3. [异常测试](#3-异常测试)\n4. [性能测试](#4-性能测试) · 5. [契约测试](#5-契约测试) · 6. [兼容性测试](#6-兼容性测试)\n7. [Mock 策略](#7-mock-策略) · 8. [交付前检查清单](#8-交付前检查清单)\n\n## 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n## 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n## 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n## 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n\n性能基准建议（可配置，无基准时先建基线）：\n├─ P95 响应时间 < 500ms（按业务场景调整）\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%\n```\n\n## 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n## 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 7. Mock 策略\n\n### Mock 时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock 工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n> 能力对照与选型默认值见 [tooling.md](tooling.md)。\n>\n> ⚠️ **Mock 的边界**：Mock 返回的响应是你自己写的，它只能证明\"我方在下游异常时怎么表现\"，\n> 不能替代真实联调，也不能用它验证\"下游返回的数据是否正确\"。\n\n---\n\n## 8. 交付前检查清单\n\n> 逐项打勾，不适用项写\"不适用 + 原因\"，不要静默跳过。\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费者契约：消费者期望的接口行为是否满足\n- [ ] 生产者契约：接口提供方是否履行约定\n- [ ] 契约版本管理：接口变更是否遵循版本策略\n- [ ] 契约自动化验证：契约是否集成到CI/CD\n\n### 兼容性测试检查\n- [ ] 版本兼容：新旧版本接口是否兼容\n- [ ] 协议兼容：不同协议实现是否一致\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\n- [ ] 上游兼容：依赖服务变更后的影响\n\n### 格式与口径检查\n- [ ] 9 列齐全，无列错位、无单元格含 `|`\n- [ ] 用例编号唯一且符合 `TC_{模块}_{功能}_{序号}`\n- [ ] P0-P3 占比符合要求（用例少时已注明实际分布口径）\n- [ ] 覆盖率已标注口径，无\"全覆盖/100%\"绝对化表述\n- [ ] 未覆盖接口已标注\"未覆盖 + 原因\"\n\nFile v1.8.0:references/scenarios.md\n\n# 接口测试场景示例（5 个）\n\n> 本文是 `qa-api-testing` 的**场景示例**。用户描述的具体情况命中下列任一场景时读本文，\n> 对照它确认测试重心是否放对；情况不匹配时按 [`core-flows.md`](core-flows.md) 自行展开。\n> 接口类型速查见 `SKILL.md`，用例起点见 [`test-cases.md`](test-cases.md)。\n\n场景的作用是**校正测试重心**，不是提供用例。\n\n---\n\n## 场景：测试一个第三方支付回调接口（Webhook）\n\n重心在**异常 + 安全 + 契约**。回调是被动触发的接口，你控制不了调用方，只能靠自己防。\n\n- **Mock 策略**：模拟支付网关超时、签名错误、重复回调（Mock 工具见 [`tooling.md`](tooling.md)）\n- **异常测试**：回调超时重试机制、幂等性验证（同一 event_id 连续 2-3 次）\n- **安全测试**：回调签名验证（篡改 body / 伪造签名）、回调地址白名单\n- **契约测试**：请求/响应格式是否与网关文档一致\n\n**别漏**：回调的幂等性是资损直接相关的。同一个 `event_id` 被重放必须只入账一次 ——\n这在 [`test-cases.md`](test-cases.md) 的 Webhook 专项里有现成用例。\n\n---\n\n## 场景：升级版本后部分接口报错\n\n重心切到**兼容性**（占比 5%，但此时是 100% 重心）。\n\n典型触发点：\n\n- 新版本响应中**新增了必填字段**，旧客户端解析失败\n- 接口 URL 路径变更，旧版本路由失效\n- 返回数据格式从 XML 改为 JSON，旧客户端不兼容\n\n**做法**：列出破坏性变更清单 → 逐个对照在用消费者 → 产出兼容性影响分析 + 版本迁移方案。\n\n**注意**：新增字段在 JSON 客户端里通常是安全的（未声明字段被忽略），\n真正危险的是**改类型、删字段、改枚举值**——这三类才是必须发版通知的破坏性变更。\n\n---\n\n## 场景：接口偶发 500 / 超时\n\n重心在**异常 + 可靠性**。先分流再定用例。\n\n- 先分清是**被测接口自身**问题还是**下游依赖**问题（看错误栈最深处的服务名）\n- 下游超时 → 验证降级/熔断/兜底数据是否生效，错误码是否友好\n- 自身问题 → 验证边界入参是否触发了未处理分支\n- 写操作伴随超时 → 幂等性验证（重试是否产生重复副作用）\n\n**做法**：可注入延迟/错误（WireMock 或网关故障注入）→ 复现 → 按上面两条分流 → 出用例。\n\n---\n\n## 场景：GraphQL 接口查询变慢\n\n重心在**性能 + 安全**。GraphQL 的两个固有风险面：\n\n- **查询复杂度**：构造深度嵌套 / 大量别名的 query 触发资源耗尽\n- **N+1 查询**：列表 + 关联对象时 DB 查询数随列表长度线性爆炸\n\n- **性能**：确认是否用了 DataLoader/批量加载；P95 达标且 DB 查询数不随列表长度线性增长\n- **安全**：depth/complexity limit 是否生效\n- 字段级权限：用低权角色查询高权字段（如他人 email），应返回 null 或权限错误\n\n见 [`test-cases.md`](test-cases.md) 的 GraphQL 专项。\n\n---\n\n## 场景：支付订单接口被恶意刷单\n\n重心在**安全 + 性能**。这是资损直接相关的组合场景。\n\n- **越权**：用用户 A 的 token 请求 B 的订单 → 应 403/404，不返回 B 的任何数据\n- **限流**：短时间高频请求触发 429 + Retry-After，且超限请求不产生业务副作用\n- **注入**：金额/数量字段传 SQL/XSS 片段 → 应被参数化或拒绝\n- **批量赋值**：请求体里多塞一个 `amount` 字段 → 不得直接生效\n- **响应最小化**：响应不得包含密码哈希、内部主键、无关用户数据\n\n见 [`test-cases.md`](test-cases.md) 的 OWASP API Top 10 对照表。\n\nFile v1.8.0:references/test-cases.md\n\n# 接口测试六维典型用例库（39 条）\n\n> 本文件是 [SKILL.md](../SKILL.md) 的详细展开：承载 9 列标准格式的六维典型用例库、OWASP API Top 10 对照与协议专项用例（GraphQL/gRPC/WebSocket/SOAP/Webhook）。\n> 各维度的测试范围详图与交付检查清单见 [core-flows.md](core-flows.md)，工具选型见 [tooling.md](tooling.md)，场景示例见 [scenarios.md](scenarios.md)。\n> 用例为可复用模板：实际输出须按被测接口的字段、业务规则改写预置条件、测试步骤与预期结果，不得照抄编号与模块名。\n\n## 分布与加载\n\n39 条按用途分三块，**按需加载，不必通读**：\n\n| 区块 | 条数 | 什么时候读 |\n|------|------|-----------|\n| 六维用例（功能5/安全6/异常4/性能3/契约4/兼容4） | 26 | 任何 REST 接口都要用 |\n| OWASP API Top 10 对照表 | — | 做安全维度时读，避免只测注入而漏接口特有风险 |\n| 协议专项（GraphQL3/gRPC2/WebSocket2/SOAP3/Webhook3） | 13 | **仅当**被测接口是该协议时读 |\n\n## 9 列标准格式与编号规则\n\n| 列 | 填写要求 |\n|----|---------|\n| 用例编号 | `TC_{接口模块缩写}_{功能缩写}_{序号}`，如 `TC_API_LOGIN_001`；本库模板暂用维度缩写（FUNC/SEC/EXC/PERF/PACT/COMPAT） |\n| 测试类型 | 功能测试/安全测试/异常测试/性能测试/契约测试/兼容性测试 |\n| 功能模块 | 接口所属业务模块（如 登录接口/订单接口/支付回调） |\n| 测试标题 | 动词开头，明确验证点 |\n| 用例级别 | P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景） |\n| 预置条件 | 数据+环境+权限+账号状态，具体到可执行 |\n| 测试步骤 | 操作→预期反应，一步一验证，含请求方法/路径/关键参数 |\n| 预期结果 | 可量化、可验证（状态码+响应结构+业务结果+副作用） |\n| 风险等级 | 高/中/低（按资损/安全/可用性影响评定） |\n\n> 覆盖率表述必须标注口径（基于现有接口文档/契约），禁止\"全覆盖/100%\"绝对化；未覆盖接口标注\"未覆盖+原因\"。\n\n## 一、功能测试典型用例（占比 40%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_FUNC_001 | 功能测试 | 通用模板 | 正常请求返回正确数据结构 | P0 | 有效账号与鉴权凭证 | 发送合法请求（含全部必填参数） | 返回 200，响应体结构与契约定义一致，业务数据正确 | 高 |\n| TC_API_FUNC_002 | 功能测试 | 通用模板 | 必填参数缺失返回明确错误 | P0 | 接口文档已定义必填项 | 逐一去掉每个必填参数后请求 | 返回 400 与明确错误码/字段提示，不产生数据变更 | 高 |\n| TC_API_FUNC_003 | 功能测试 | 通用模板 | 参数类型不匹配被拒绝 | P1 | 接口文档已定义字段类型 | 数值字段传字符串、布尔字段传数字等类型错配 | 返回 400 与类型错误提示，服务端无异常堆栈泄露 | 中 |\n| TC_API_FUNC_004 | 功能测试 | 分页查询 | 分页边界值处理正确 | P1 | 测试数据 ≥1 页容量 | 分别请求 size=0/1/最大值/最大值+1、page=0/末页/末页+1 | 边界内正常返回，越界返回空集或明确错误，无 500 | 中 |\n| TC_API_FUNC_005 | 功能测试 | 列表查询 | 多筛选参数组合结果正确 | P1 | 造数覆盖各筛选维度 | 两两组合及全量组合筛选条件 | 结果集与条件交集一致，排序/去重正确 | 中 |\n\n## 二、安全测试典型用例（占比 20%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_SEC_001 | 安全测试 | 资源类接口 | 水平越权访问被拒绝（BOLA） | P0 | 用户 A、B 两套有效凭证，资源归属清晰 | 用 A 的 Token 请求 B 的资源 ID | 返回 403/404，不返回 B 的任何数据 | 高 |\n| TC_API_SEC_002 | 安全测试 | 管理类接口 | 垂直越权调用被拒绝（BFLA） | P0 | 普通用户与管理员各一套凭证 | 用普通用户 Token 调用管理员接口 | 返回 403，接口不执行任何管理动作 | 高 |\n| TC_API_SEC_003 | 安全测试 | 认证入口 | 无效/伪造凭证被拒绝 | P0 | 已知合法 Token 及签名算法 | 分别用无 Token、过期 Token、篡改签名请求受保护接口 | 一律返回 401，响应不含内部信息 | 高 |\n| TC_API_SEC_004 | 安全测试 | 输入参数 | 注入攻击被拦截 | P0 | 常规账号 | 在参数中注入 SQL/XSS/命令片段后请求 | 注入被过滤或参数化处理，返回参数错误而非执行结果 | 高 |\n| TC_API_SEC_005 | 安全测试 | 响应数据 | 敏感字段脱敏（防过度暴露） | P0 | 返回体含手机号/身份证/邮箱等字段 | 请求查询类接口并检查响应字段 | 敏感字段掩码显示，不返回密码哈希、内部 ID 等多余字段 | 高 |\n| TC_API_SEC_006 | 安全测试 | 开放接口 | 限流与防刷生效 | P1 | 未鉴权或低权限入口 | 短时间高频请求触发限流阈值 | 返回 429 与 Retry-After，超限请求不产生业务副作用 | 中 |\n\n### OWASP API Top 10（2023）对照\n\n安全维度的用例设计应对照 OWASP API Security Top 10 逐项检查，避免只测注入而漏掉接口特有风险：\n\n| OWASP 条目 | 对应测试点 |\n|-----------|-----------|\n| API1 对象级授权失效（BOLA） | TC_API_SEC_001：遍历资源 ID 验证归属校验 |\n| API2 认证失效 | TC_API_SEC_003：Token 生命周期、弱口令、暴力破解防护 |\n| API3 对象属性级授权失效（BOPLA） | TC_API_SEC_005：响应/请求中的敏感属性暴露与批量赋值 |\n| API4 无限制资源消耗 | TC_API_SEC_006 + 性能维：限流、深度分页、超大 payload |\n| API5 功能级授权失效（BFLA） | TC_API_SEC_002：角色矩阵逐接口验证 |\n| API6 敏感业务流滥用 | 退款/提现/改价等流程的频控与人工审核触发 |\n| API7 服务端请求伪造（SSRF） | 回调地址/URL 参数类接口的白名单校验 |\n| API8 安全配置错误 | HTTP 方法、CORS、TLS 配置、错误堆栈泄露 |\n| API9 资产清单管理不当 | 未文档化接口（Shadow API）与旧版本接口的下线验证 |\n| API10 不安全 API 消费 | 对第三方接口返回数据的校验与脱敏后再输出 |\n\n## 三、异常测试典型用例（占比 15%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_EXC_001 | 异常测试 | 写操作接口 | 超时重试不产生重复副作用（幂等性） | P0 | 可模拟网关/服务端超时；写接口有幂等键或可查询副作用 | 请求超时后按服务端重试策略重放 2 次，核对业务数据 | 重试成功且最终只产生一次业务变更（如仅扣款一次、仅创建一单） | 高 |\n| TC_API_EXC_002 | 异常测试 | 依赖下游的接口 | 下游异常时降级策略生效 | P1 | 可模拟下游服务不可用（Mock/断网/延迟） | 制造下游超时与报错，观察接口行为 | 触发预设降级（兜底数据/熔断），返回友好错误而非 500，恢复后自动回归 | 中 |\n| TC_API_EXC_003 | 异常测试 | 通用 | 非法 JSON / 超大 payload 被拒绝 | P1 | 常规接口 | 发送格式错误 JSON、超出大小限制的请求体 | 返回 400/413 明确错误，服务不崩溃、无堆栈泄露 | 中 |\n| TC_API_EXC_004 | 异常测试 | 通用 | 空数据与不完整数据响应可处理 | P2 | 造数为空集/字段缺失场景 | 请求返回空结果的查询；模拟上游返回缺字段数据 | 空集返回空结构而非 null 异常；缺字段走默认值/报错路径可控 | 低 |\n\n## 四、性能测试典型用例（占比 10%）\n\n> 无历史基准时先做基准测试建立基线，再断言相对退化 < 20%；P95 < 500ms 为建议值，按业务场景调整。\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_PERF_001 | 性能测试 | 核心查询接口 | 预期负载下 P95 达标 | P0 | 压测环境隔离；已建性能基线 | 以预期 QPS 持续压测 ≥10 分钟 | P95 < 基准阈值（默认 500ms），错误率 < 0.1% | 高 |\n| TC_API_PERF_002 | 性能测试 | 核心接口 | 极限负载下优雅退化 | P1 | 已确定 TPS 上限 | 以 TPS 上限 80%→100%→120% 阶梯加压 | 80% 稳定；100% 接近上限；120% 触发限流而非雪崩，恢复后自愈 | 中 |\n| TC_API_PERF_003 | 性能测试 | 核心接口 | 长时间稳定性（无内存泄漏） | P1 | 监控就绪（CPU/内存/连接数） | 以中等负载连续运行 ≥4 小时 | 无内存持续增长、连接泄漏、错误率爬升 | 中 |\n\n性能压测工具（k6 / Locust / JMeter / wrk）的选型差异见 [`tooling.md`](tooling.md)。\n\n## 五、契约测试典型用例（占比 10%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_PACT_001 | 契约测试 | 已有 OpenAPI/Pact 契约的接口 | 响应结构符合契约定义 | P0 | 契约文件已入库 | 用 Schemathesis/Dredd 按 OpenAPI 校验实际响应，或跑 Pact 验证测试 | 字段名/类型/必填/枚举与契约一致，无未声明字段 | 高 |\n| TC_API_PACT_002 | 契约测试 | 变更中的接口 | 接口变更不破坏既有消费者契约 | P0 | 各消费者契约已汇总 | 接口改版后运行全部消费者契约集 | 所有消费者契约通过；破坏性变更需先走版本协商 | 高 |\n| TC_API_PACT_003 | 契约测试 | 变更中的接口 | 契约变更通知触达所有消费方 | P1 | 契约仓库有订阅/通知机制 | 修改契约字段类型后检查通知流水 | 变更通知发送至所有注册消费方，含变更说明与迁移截止日期 | 中 |\n| TC_API_PACT_004 | 契约测试 | 多消费者接口 | 消费者契约集差异冲突可发现 | P2 | 同一接口被≥2个消费方以不同期望调用 | 汇总所有消费者契约，比对必填字段与枚举差异 | 差异点列出冲突清单，研发据此决策版本协商或兼容方案 | 中 |\n\n## 六、兼容性测试典型用例（占比 5%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_COMPAT_001 | 兼容性测试 | 带 URL 版本的接口 | 旧版本接口在新版本发布后仍可用 | P0 | v1/v2 并行部署 | 用旧客户端参数请求 v1 | v1 行为与变更前一致，未被 v2 破坏 | 高 |\n| TC_API_COMPAT_002 | 兼容性测试 | 升级中的接口 | 新增字段对旧客户端向后兼容 | P0 | v2 响应较 v1 新增字段 | 旧客户端解析 v2 响应 | 新增字段为可选且旧客户端可忽略，解析不报错 | 中 |\n| TC_API_COMPAT_003 | 兼容性测试 | 数据格式迁移接口 | 响应格式从 XML 迁移至 JSON 的兼容性 | P1 | 接口历史返回 XML，新版返回 JSON | 分别用 Accept: application/xml 和 application/json 请求 | JSON 响应结构正确；XML 响应仍可返回或给出明确迁移提示，不返回 500 | 中 |\n| TC_API_COMPAT_004 | 兼容性测试 | 废弃接口 | 已废弃接口返回弃用警告而非直接删除 | P2 | 接口文档标注 Deprecated | 请求标注为 Deprecated 的接口 | 响应头含 Deprecation/Sunset 字段，响应体含迁移指引，HTTP 状态仍为 200 | 低 |\n\n## 七、协议专项：GraphQL / gRPC / WebSocket 补充用例\n\nREST 之外的协议有各自特有风险面，接口类型为 GraphQL/gRPC/WebSocket 时须在本节模板上追加：\n\n### GraphQL 专项\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_GQL_001 | 安全测试 | GraphQL 端点 | 超深/超大查询被深度限制拦截 | P0 | 存在嵌套类型（如 user→orders→items→…） | 构造深度嵌套与大量别名的 query | 返回明确错误（depth/complexity limit），服务端无资源耗尽 | 高 |\n| TC_API_GQL_002 | 安全测试 | GraphQL 字段级权限 | 对象内字段权限细粒度生效 | P0 | 同一对象对不同角色暴露不同字段（如 email 仅本人可见） | 用低权角色查询高权字段 | 高权字段返回 null/权限错误，不泄露数据 | 高 |\n| TC_API_GQL_003 | 性能测试 | 关联查询 | N+1 查询不拖垮响应时间 | P1 | 列表项含关联对象 | 请求列表+关联对象的批量查询 | 使用 DataLoader/批量加载，P95 达标，DB 查询数不随列表长度线性爆炸 | 中 |\n\n### gRPC 专项\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_GPRC_001 | 功能测试 | 流式接口 | 流式消息顺序与完整性正确 | P0 | 服务端流/双向流接口 | 建立流连接，发送多批消息 | 消息顺序与发送一致，无丢失/重复，流正常关闭（EOF） | 中 |\n| TC_API_GPRC_002 | 异常测试 | 流式接口 | 流中途断开的资源回收 | P1 | 长流连接 | 客户端中途取消（deadline/cancel） | 服务端及时释放流资源，无半开连接堆积 | 中 |\n\n### WebSocket 专项\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_WS_001 | 异常测试 | 长连接 | 心跳保活与断线重连正确 | P0 | 服务端有心跳机制 | 保持连接超过心跳周期；人为断网后恢复 | 心跳超时主动断开；客户端重连后恢复订阅，不重复推送 | 中 |\n| TC_API_WS_002 | 安全测试 | 消息通道 | 未授权连接/越权订阅被拒绝 | P0 | 消息通道带鉴权 | 用无 Token 或他人 Token 订阅他人频道 | 连接或订阅被拒绝，收不到他人消息 | 高 |\n\n### SOAP 专项\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_SOAP_001 | 功能测试 | SOAP 接口 | 请求/响应报文符合 WSDL 契约 | P0 | WSDL 文件已提供 | 用 SOAP UI 或 Postman 按 WSDL 生成请求，校验响应 | 报文结构（Envelope/Header/Body）与 WSDL 定义一致，命名空间正确 | 高 |\n| TC_API_SOAP_002 | 安全测试 | SOAP 接口 | WS-Security 认证与签名校验生效 | P0 | 接口启用 WS-Security | 发送无签名/篡改签名/过期 Timestamp 的请求 | 服务端拒绝并返回 SOAP Fault，不含内部异常信息 | 高 |\n| TC_API_SOAP_003 | 异常测试 | SOAP 接口 | Fault 报文结构与错误码规范 | P1 | 已知错误触发条件 | 构造必填字段缺失、无效枚举值等异常请求 | 返回 SOAP Fault，含 faultcode/faultstring/detail，错误码与文档一致 | 中 |\n\n### Webhook 专项\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_HOOK_001 | 安全测试 | Webhook 回调 | 签名验证拒绝伪造回调 | P0 | 回调方已公布签名算法与密钥 | 篡改回调体或伪造签名后请求回调接口 | 返回 401/403，不执行任何业务逻辑 | 高 |\n| TC_API_HOOK_002 | 异常测试 | Webhook 回调 | 重复回调不产生重复副作用（幂等） | P0 | 回调接口有幂等键或唯一请求 ID | 同一回调请求连续发送 2-3 次 | 首次正常处理，后续返回幂等成功响应，业务数据无重复变更 | 高 |\n| TC_API_HOOK_003 | 异常测试 | Webhook 回调 | 回调超时后重试与退避策略正确 | P1 | 回调方有重试机制 | 模拟回调接口超时/返回 5xx，观察重试行为 | 按退避策略重试（如指数退避），达到上限后告警，不无限重试 | 中 |\n\nFile v1.8.0:references/tooling.md\n\n# 接口测试工具选型\n\n> 本文是 `qa-api-testing` 的**工具参考**。需要选型、或要展开某工具的能力边界时读本文；\n> 没有特殊约束时直接用 `SKILL.md` 的默认选型表即可，不必读本文。\n\n## 默认选型（无特殊约束时直接用这套）\n\n| 场景 | 默认工具 | 理由 |\n|------|---------|------|\n| 日常调试与文档 | Postman / Apifox | 上手最快，团队协作与接口文档一体 |\n| 自动化执行 | **pytest + requests**（Python 栈）/ REST Assured（Java 栈） | 生态成熟、易接 CI |\n| 契约测试 | **Pact**（消费者驱动）/ Schemathesis（OpenAPI 校验） | 前者管协作方破坏性变更，后者管实现与契约一致 |\n| 第三方与异常 Mock | **WireMock** | 延迟/超时/脏数据场景开箱即用 |\n| 性能 | **k6**（脚本轻、CI 友好）；需 GUI 与分布式再选 JMeter | 压测不是本技能默认动作，按需引入 |\n\n> 明确\"单工具全栈\"诉求时用 **Karate**（REST+GraphQL 自动化/契约/Mock 一体）。\n> gRPC 用 grpcurl 调试；WireMock 无法覆盖流式语义，gRPC 流式用例要另配工具。\n\n## 能力对照矩阵\n\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\n|-----|---------|--------|---------|------|---------|\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\n| **Schemathesis** | REST(OpenAPI) | ✅ | ✅ | ❌ | 按 OpenAPI 契约自动生成并校验用例 |\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\n| **MockServer** | 通用HTTP | ❌ | ❌ | ✅ | 轻量级 Mock，易上手 |\n| **grpcurl / gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC 接口调试（流式需专用工具） |\n| **SOAP UI** | SOAP | ✅ | ✅ | ❌ | 按 WSDL 生成请求、校验报文结构 |\n\n## 性能压测工具（性能维占 10%，按需引入）\n\n| 工具 | 特点 | 适用 |\n|------|------|------|\n| **k6** | JS 脚本、CI 友好、依赖少 | 首选，尤其已有 CI 时 |\n| **Locust** | Python 脚本、易造数 | Python 栈团队 |\n| **JMeter** | GUI + 分布式、生态最广 | 需可视化配置或大规模分布式 |\n| **wrk** | 极轻量基准工具 | 快速摸底，不做完整场景 |\n\n> 性能用例见 [`test-cases.md`](test-cases.md) 第四节。无历史基准时先做基准测试建立基线，\n> 再断言相对退化 < 20%；P95 < 500ms 为建议值，按业务场景调整。\n\n## 选型时的三个常见坑\n\n1. **用功能测试的工具去做契约测试**：Pact 和 Schemathesis 解决的是不同问题 —— 前者管\n   \"消费者会不会被我的变更打爆\"，后者管\"实现是否偏离契约\"。做接口回归用 Schemathesis，\n   做跨团队协作用 Pact。\n2. **Mock 覆盖了真实行为**：WireMock 返回的响应是你自己写的，它证明不了真实下游的行为。\n   第三方 Mock 只能验证\"我方在下游异常时怎么表现\"，不能替代真实联调。\n3. **压测和功能测试混用同一套脚本**：功能脚本串行断言业务结果，压测脚本要的是高并发下的\n   指标采样。混用两边都做不好。\n\nFile v1.8.0:assets/case-template.md\n\n# 接口测试用例模板（9 列标准格式）\n\n> 复制下面任一块板到你的产出里填写。列定义与常见错误见文末表格，协议专项用例见\n> [`test-cases.md`](test-cases.md)。\n\n## A. Markdown 表格（默认形态）\n\n```markdown\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_LOGIN_001 | 功能测试 | 登录接口 | 正确凭证登录成功 | P0 | 接口文档已提供，测试账号已就绪 | POST /api/login，body {\"user\":\"u1\",\"pass\":\"***\"} | 返回 200，响应含 token 且调用 /api/profile 有效；无堆栈信息 | 高 |\n| TC_API_LOGIN_002 | 安全测试 | 登录接口 | 伪造 Token 被拒 | P0 | 已知合法 token 与签名算法 | 改 1 个字符后请求 /api/profile | 返回 401，响应不含任何内部信息与用户数据 | 高 |\n| TC_API_LOGIN_003 | 异常测试 | 登录接口 | 写操作超时重试不产生重复副作用 | P1 | 网关可注入延迟；写接口有幂等键 | 令首次请求延迟至超时，按服务端策略重放 2 次 | 重试成功且最终仅 1 次登录成功记录 | 中 |\n```\n\n## B. 单用例展开（需要写清请求/响应细节时用）\n\n```markdown\n### TC_API_ORD_004 — 订单列表深分页越界\n\n- **测试类型**：功能测试\n- **功能模块**：订单查询\n- **预置条件**：账号 A 名下 25 笔订单；接口支持 page/size 分页\n- **测试步骤**：\n  1. GET /api/orders?page=999&size=20\n  2. GET /api/orders?size=0\n  3. GET /api/orders?size=100000\n- **预期结果**：\n  - page 越界：返回 200 + 空数组，或 400 带明确错误码，**不得 500**\n  - size=0：返回明确错误（400），不返回全量数据\n  - size 超上限：被服务端截断到上限或返回 400，**不得因未限制而拖垮 DB**\n- **用例级别**：P1\n- **风险等级**：中\n```\n\n## 填写要求（自检用）\n\n| 列 | 要求 | 常见错误 |\n|----|------|---------|\n| 用例编号 | `TC_{接口模块缩写}_{功能缩写}_{序号}`，三位序号，同批内不重号 | 照抄 `TC_API_FUNC_001` 里的维度缩写当最终编号 |\n| 测试类型 | 六维之一：功能/安全/异常/性能/契约/兼容性 | 写成\"正常用例\"\"异常用例\" |\n| 功能模块 | 具体接口名，如\"登录接口\"\"支付回调\" | 写\"用户模块\"\"订单\" |\n| 测试标题 | 动词开头，点明验证点 | 写\"测试登录\" |\n| 用例级别 | P0 核心阻断 / P1 主要功能 / P2 次要 / P3 边缘；占比见 SKILL.md | 全标 P0 |\n| 预置条件 | 环境 + 数据 + 权限 + 可注入的故障，具体到可复现 | 只写\"接口文档已提供\" |\n| 测试步骤 | 含真实 method + path + 关键参数，一步一验证 | 写\"调用登录接口\" |\n| 预期结果 | 可量化：状态码 + 响应结构 + 业务结果 + 副作用 | 写\"返回正常\" |\n| 风险等级 | 高（资损/越权/数据泄露）/ 中（体验与稳定性）/ 低 | 全标高 |\n\n## 交付前校验\n\n```bash\npython scripts/validate_testcase_table.py <用例文件>\n```\n\n覆盖 9 列完整性、编号唯一性、级别取值、风险取值、P0-P3 占比、覆盖率口径措辞、\n绝对化措辞禁令。用例总数 <10 时加 `--no-quota`（20% 配额不足 1 条，数学上不成立）\n并在报告中注明实际分布口径。\n\nFile v1.8.0:skill-card.md\n\n## Description:\n\nGuides API testing across REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints with test cases, contract checks, mock strategies, and tool recommendations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to plan API tests for functionality, security, failures, performance, contracts, and compatibility, and to prepare traceable test cases.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Security, load, webhook, or retry tests may affect live services, credentials, payments, or write operations.\n\nMitigation: Run generated tests only on systems you own or are authorized to test; use approved test environments and credentials for sensitive or state-changing scenarios.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/kokxi/skills/qa-api-testing)\n- [Core testing flows](artifact/references/core-flows.md)\n- [Test case examples](artifact/references/test-cases.md)\n- [Testing tools](artifact/references/tooling.md)\n- [Testing scenarios](artifact/references/scenarios.md)\n- [Test case template](artifact/assets/case-template.md)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Guidance, Code]\n\n**Output Format:** [Markdown test-case tables, test plans, checklists, and automation script designs]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Chinese-language guidance; test cases include unique IDs and contract links, with coverage scoped to the provided API documentation.]\n\n## Skill Version(s):\n\n1.8.0 (source: skill frontmatter and server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.7: 3 files, 6798 bytes\n\nFiles: skill-card.md (1668b), SKILL.md (13015b), _meta.json (133b)\n\nFile v1.7.7:SKILL.md\n\n---\nname: qa-api-testing\nslug: qa-api-testing\ndisplayName: Api Testing\nversion: 1.7.7\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\nallowed-tools: Read Grep Glob Bash WebFetch\nrelated_skills:\n  upstream:\n    - qa-test-automation-arch    # 输入：自动化架构设计\n    - qa-req-deconstruction      # 输入：接口需求分析\n  downstream:\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\n    - qa-execution-observation   # 输出：接口测试结果\ninput_format:\n  required:\n    - name: 接口文档\n      type: string\n      description: API接口文档或契约文件\n    - name: 自动化架构\n      type: object\n      description: 来自qa-test-automation-arch的自动化架构设计\n  optional:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\noutput_format:\n  traceability:\n    - 每个接口测试用例带唯一ID：TC_{接口模块缩写}_{功能缩写}_{序号}（如 TC_API_LOGIN_001），遵循 format.md 编号规则\n    - 关联接口契约ID\n  structure:\n    - test_cases: 接口测试用例（固定 9 列 Markdown 表格：用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有接口文档/契约），禁止\"全覆盖/100%\"绝对化表述；未覆盖接口标注\"未覆盖+原因\"\n    - api_test_plan: 接口测试方案\n    - mock_strategy: Mock策略\n    - automation_scripts: 自动化脚本设计\n    - security_checks: 安全测试清单\nerror_recovery_guidance:\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\ncategories: ['Development','Testing']\ndepth_requirement_quantification:\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\n---\n# 接口测试专项\n\n## 核心原则\n\n接口是系统的骨架，接口测试是自动化的基石。\n\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\n\n## 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|------|------|\n| 功能测试 | 40% | 正向/反向/边界/参数 |\n| 安全测试 | 20% | 认证/授权/注入 |\n| 异常测试 | 15% | 超时/重试/降级 |\n| 性能测试 | 10% | 响应时间/并发 |\n| 契约测试 | 10% | 接口契约验证 |\n| 兼容性测试 | 5% | 版本兼容 |\n\n### 接口类型速查\n\n不同协议接口各有侧重，以下为推荐测试重点：\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n\n## 核心流程\n\n### 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n### 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n### 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n### 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n\n性能基准建议（可配置，无基准时先建基线）：\n├─ P95 响应时间 < 500ms（按业务场景调整）\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%\n```\n\n### 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n### 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 接口测试工具选型\n\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\n|-----|---------|--------|---------|------|---------|\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\n\n## Mock策略\n\n### Mock时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n## 检查清单\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费者契约：消费者期望的接口行为是否满足\n- [ ] 生产者契约：接口提供方是否履行约定\n- [ ] 契约版本管理：接口变更是否遵循版本策略\n- [ ] 契约自动化验证：契约是否集成到CI/CD\n\n### 兼容性测试检查\n- [ ] 版本兼容：新旧版本接口是否兼容\n- [ ] 协议兼容：不同协议实现是否一致\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\n- [ ] 上游兼容：依赖服务变更后的影响\n\n## 输出示例\n\n**用户说\"测试这个登录接口\"**\n→ 启动接口测试六维覆盖：\n  - 功能：正常登录、错误密码、参数缺失\n  - 安全：Token伪造、SQL注入、越权访问\n  - 异常：超时、重试、幂等性\n  - 性能：响应时间基准、并发阈值\n  - 契约：接口契约是否符合OpenAPI定义\n  - 兼容：新旧版本接口是否兼容\n\n**用例输出示例（9 列标准格式）**：\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_LOGIN_001 | 功能测试 | 登录接口 | 正确凭证登录成功 | P0 | 接口文档已提供，账号已就绪 | 发送POST /api/login，参数{user,pass} | 返回200，响应含token且有效 | 高 |\n| TC_API_LOGIN_002 | 安全测试 | 登录接口 | Token伪造被拒绝 | P0 | 合法Token已知 | 修改Token签名后请求受保护接口 | 返回401，拒绝访问 | 高 |\n| TC_API_LOGIN_003 | 异常测试 | 登录接口 | 超时重试幂等性 | P1 | 模拟网关超时 | 请求超时后自动重试2次 | 重试成功且无重复副作用 | 中 |\n\n**接口文档（OpenAPI/Swagger）已提供**\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\n\n**场景：测试一个第三方支付回调接口**\n→ 重点覆盖异常与Mock：\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\n  - 异常测试：回调超时重试机制、幂等性验证\n  - 安全测试：回调签名验证、回调地址白名单\n  - 契约测试：支付回调的请求/响应格式是否符合约定\n\n**场景：升级版本后部分接口报错（兼容性问题）**\n→ 启动兼容性检查：\n  - 新版本响应中新增了必填字段，旧客户端无法解析\n  - 接口URL路径变更，旧版本路由失效\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.7.7:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.7.7\",\n  \"publishedAt\": 1790519524601\n}\n\nFile v1.7.7:skill-card.md\n\n## Description:\n\nProvides Chinese-language guidance for testing RESTful, GraphQL, gRPC, and WebSocket APIs, including test matrices, contract assertions, and tool selection.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to design API test cases, contract checks, mock strategies, and security and performance test plans for documented interfaces.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Security and load-test suggestions could affect live services if run without review.\n\nMitigation: Review proposed tests and run them only against systems and environments you are authorized to test.\n\nRisk: Full API request and response logs may expose sensitive data.\n\nMitigation: Redact credentials and personal data before saving or sharing test logs.\n\n## Reference(s):\n\n- [ClawHub qa-api-testing release](https://clawhub.ai/kokxi/skills/qa-api-testing)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Guidance]\n\n**Output Format:** [Markdown test-case tables, plans, and checklists]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes contract assertions, mock strategies, and automation-script designs.]\n\n## Skill Version(s):\n\n1.7.7 (source: skill frontmatter and ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.6: 3 files, 7142 bytes\n\nFiles: skill-card.md (2069b), SKILL.md (13631b), _meta.json (133b)\n\nFile v1.7.6:SKILL.md\n\n---\r\nname: qa-api-testing\r\nslug: qa-api-testing\r\ndisplayName: 接口测试\r\nversion: 1.7.5\r\ndescription: >-\r\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\r\n  本技能属于 QA Test Skills 技能集（49 个技能之一），完整工作流体验需安装全套：npx skills add Kokxi/qa-test-skills\r\n\r\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\r\nallowed-tools: Read Grep Glob Bash WebFetch\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-automation-arch    # 输入：自动化架构设计\r\n    - qa-req-deconstruction      # 输入：接口需求分析\r\n  downstream:\r\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\r\n    - qa-execution-observation   # 输出：接口测试结果\r\ninput_format:\r\n  required:\r\n    - name: 接口文档\r\n      type: string\r\n      description: API接口文档或契约文件\r\n    - name: 自动化架构\r\n      type: object\r\n      description: 来自qa-test-automation-arch的自动化架构设计\r\n  optional:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\noutput_format:\r\n  traceability:\r\n    - 每个接口测试用例带唯一ID：TC_{接口模块缩写}_{功能缩写}_{序号}（如 TC_API_LOGIN_001），遵循 format.md 编号规则\r\n    - 关联接口契约ID\r\n  structure:\r\n    - test_cases: 接口测试用例（固定 9 列 Markdown 表格：用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\r\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\r\n    - 覆盖率：标注口径（基于现有接口文档/契约），禁止\"全覆盖/100%\"绝对化表述；未覆盖接口标注\"未覆盖+原因\"\r\n    - api_test_plan: 接口测试方案\r\n    - mock_strategy: Mock策略\r\n    - automation_scripts: 自动化脚本设计\r\n    - security_checks: 安全测试清单\r\nerror_recovery_guidance:\r\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\r\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\r\ncategories: ['Development','Testing']\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\r\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\r\n---\r\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\r\n\r\n# 接口测试专项\r\n\r\n## 核心原则\r\n\r\n接口是系统的骨架，接口测试是自动化的基石。\r\n\r\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\r\n\r\n## 深度要求\r\n\r\n| 复杂度 | 用例数要求 | 说明 |\r\n|--------|-----------|------|\r\n| 简单接口 | 接口数×5 | 单一功能接口 |\r\n| 中等接口 | 接口数×10 | 多参数接口 |\r\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\r\n\r\n**必须覆盖的6个维度**：\r\n\r\n| 维度 | 占比 | 说明 |\r\n|------|------|------|\r\n| 功能测试 | 40% | 正向/反向/边界/参数 |\r\n| 安全测试 | 20% | 认证/授权/注入 |\r\n| 异常测试 | 15% | 超时/重试/降级 |\r\n| 性能测试 | 10% | 响应时间/并发 |\r\n| 契约测试 | 10% | 接口契约验证 |\r\n| 兼容性测试 | 5% | 版本兼容 |\r\n\r\n### 接口类型速查\r\n\r\n不同协议接口各有侧重，以下为推荐测试重点：\r\n\r\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\r\n|---------|---------|---------|---------|\r\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\r\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\r\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\r\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\r\n\r\n## 核心流程\r\n\r\n### 1. 功能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 正向测试：正常输入返回正确结果\r\n├─ 反向测试：异常输入返回正确错误\r\n├─ 边界测试：边界值处理正确\r\n├─ 参数测试：参数组合覆盖\r\n└─ 业务测试：业务规则验证\r\n\r\n测试用例设计：\r\n├─ 入参校验：类型、长度、格式、必填\r\n├─ 返回校验：状态码、响应体、响应头\r\n├─ 业务校验：数据正确性、状态变更\r\n└─ 异常校验：错误码、错误信息\r\n```\r\n\r\n### 2. 安全测试\r\n\r\n```text\r\n测试维度：\r\n├─ 认证测试：Token/Session/OAuth\r\n├─ 授权测试：角色权限、资源访问\r\n├─ 注入测试：SQL注入、XSS、命令注入\r\n├─ 数据安全：敏感数据加密、脱敏\r\n└─ 速率限制：限流、防刷\r\n\r\n常见漏洞：\r\n├─ 越权访问：水平越权、垂直越权\r\n├─ 认证绕过：Token伪造、Session固定\r\n├─ 注入攻击：SQL注入、命令注入\r\n└─ 敏感泄露：密码明文、敏感信息暴露\r\n```\r\n\r\n### 3. 异常测试\r\n\r\n```text\r\n测试维度：\r\n├─ 超时场景\r\n│   ├─ 连接超时：TCP连接建立超时\r\n│   ├─ 读取超时：响应数据返回超时\r\n│   └─ 超时重试：超时后的重试行为是否符合预期\r\n│\r\n├─ 重试机制\r\n│   ├─ 幂等性：重复请求是否产生副作用\r\n│   ├─ 退避策略：重试间隔是否合理\r\n│   └─ 重试上限：达到最大重试次数后的行为\r\n│\r\n├─ 故障容错\r\n│   ├─ 降级策略：下游服务异常时是否降级\r\n│   ├─ 熔断机制：连续失败是否触发熔断\r\n│   └─ 限流效果：超出限流阈值时的响应\r\n│\r\n└─ 数据异常\r\n    ├─ 空响应：返回空数据时的处理\r\n    ├─ 部分数据：数据不完整时的处理\r\n    └─ 数据损坏：返回数据格式错误时的处理\r\n```\r\n\r\n### 4. 性能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 响应时间：P50/P95/P99\r\n├─ 并发能力：并发请求处理\r\n├─ 吞吐量：TPS/QPS\r\n├─ 稳定性：长时间运行\r\n└─ 资源消耗：CPU/内存/连接\r\n\r\n测试方法：\r\n├─ 基准测试：单请求性能基线\r\n├─ 负载测试：预期负载下表现\r\n├─ 压力测试：极限负载下表现\r\n└─ 波动测试：流量波动下表现\r\n\r\n性能基准建议（可配置，无基准时先建基线）：\r\n├─ P95 响应时间 < 500ms（按业务场景调整）\r\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\r\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%\r\n```\r\n\r\n### 5. 契约测试\r\n\r\n```text\r\n测试维度：\r\n├─ 消费者驱动\r\n│   ├─ 消费者期望：API是否满足消费者的调用期望\r\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\r\n│   └─ 消费者契约集：所有消费者的契约汇总验证\r\n│\r\n├─ 生产者验证\r\n│   ├─ 接口实现验证：实际接口是否符合契约约定\r\n│   ├─ 回归检查：接口变更是否破坏已有契约\r\n│   └─ 版本策略：契约版本管理与兼容性保证\r\n│\r\n└─ 自动化集成\r\n    ├─ CI集成：契约测试是否纳入流水线\r\n    ├─ 变更通知：契约变更时是否通知相关方\r\n    └─ 契约仓库：契约文件是否统一管理\r\n```\r\n\r\n### 6. 兼容性测试\r\n\r\n```text\r\n测试维度：\r\n├─ 版本兼容\r\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\r\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\r\n│   └─ 版本迁移：接口版本迁移方案是否平滑\r\n│\r\n├─ 协议兼容\r\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\r\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\r\n│   └─ 编码格式：UTF-8/ASCII等编码处理\r\n│\r\n└─ 集成兼容\r\n    ├─ 上游依赖：依赖服务变更后的适配能力\r\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\r\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\r\n```\r\n\r\n## 接口测试工具选型\r\n\r\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\r\n|-----|---------|--------|---------|------|---------|\r\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\r\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\r\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\r\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\r\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\r\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\r\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\r\n\r\n## Mock策略\r\n\r\n### Mock时机\r\n\r\n```text\r\n需要Mock的场景：\r\n├─ 第三方服务：支付、短信、地图\r\n├─ 不稳定服务：外部依赖\r\n├─ 开发中服务：接口未就绪\r\n├─ 特殊场景：异常、超时、限流\r\n└─ 测试数据：特定数据构造\r\n```\r\n\r\n### Mock工具\r\n\r\n```text\r\n├─ WireMock：Java生态，功能全面\r\n├─ MockServer：轻量级，易于使用\r\n├─ Postman Mock：在线Mock服务\r\n├─ MSW：前端Mock，拦截请求\r\n└─ 自建Mock：Python/Node.js脚本\r\n```\r\n\r\n## 检查清单\r\n\r\n### 功能测试检查\r\n- [ ] 正向测试：正常输入返回正确结果\r\n- [ ] 反向测试：异常输入返回正确错误\r\n- [ ] 边界测试：边界值处理正确\r\n- [ ] 参数测试：参数组合覆盖\r\n- [ ] 业务测试：业务规则验证\r\n\r\n### 安全测试检查\r\n- [ ] 认证测试：Token/Session/OAuth\r\n- [ ] 授权测试：角色权限、资源访问\r\n- [ ] 注入测试：SQL注入、XSS、命令注入\r\n- [ ] 数据安全：敏感数据加密、脱敏\r\n- [ ] 速率限制：限流、防刷\r\n\r\n### 异常测试检查\r\n- [ ] 超时测试：请求超时处理\r\n- [ ] 重试测试：失败重试机制\r\n- [ ] 降级测试：服务降级处理\r\n- [ ] 熔断测试：熔断机制验证\r\n\r\n### 性能测试检查\r\n- [ ] 响应时间：P50/P95/P99\r\n- [ ] 并发能力：并发请求处理\r\n- [ ] 吞吐量：TPS/QPS\r\n- [ ] 稳定性：长时间运行\r\n\r\n### 契约测试检查\r\n- [ ] 消费者契约：消费者期望的接口行为是否满足\r\n- [ ] 生产者契约：接口提供方是否履行约定\r\n- [ ] 契约版本管理：接口变更是否遵循版本策略\r\n- [ ] 契约自动化验证：契约是否集成到CI/CD\r\n\r\n### 兼容性测试检查\r\n- [ ] 版本兼容：新旧版本接口是否兼容\r\n- [ ] 协议兼容：不同协议实现是否一致\r\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\r\n- [ ] 上游兼容：依赖服务变更后的影响\r\n\r\n## 输出示例\r\n\r\n**用户说\"测试这个登录接口\"**\r\n→ 启动接口测试六维覆盖：\r\n  - 功能：正常登录、错误密码、参数缺失\r\n  - 安全：Token伪造、SQL注入、越权访问\r\n  - 异常：超时、重试、幂等性\r\n  - 性能：响应时间基准、并发阈值\r\n  - 契约：接口契约是否符合OpenAPI定义\r\n  - 兼容：新旧版本接口是否兼容\r\n\r\n**用例输出示例（9 列标准格式）**：\r\n\r\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\r\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\r\n| TC_API_LOGIN_001 | 功能测试 | 登录接口 | 正确凭证登录成功 | P0 | 接口文档已提供，账号已就绪 | 发送POST /api/login，参数{user,pass} | 返回200，响应含token且有效 | 高 |\r\n| TC_API_LOGIN_002 | 安全测试 | 登录接口 | Token伪造被拒绝 | P0 | 合法Token已知 | 修改Token签名后请求受保护接口 | 返回401，拒绝访问 | 高 |\r\n| TC_API_LOGIN_003 | 异常测试 | 登录接口 | 超时重试幂等性 | P1 | 模拟网关超时 | 请求超时后自动重试2次 | 重试成功且无重复副作用 | 中 |\r\n\r\n**接口文档（OpenAPI/Swagger）已提供**\r\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\r\n\r\n**场景：测试一个第三方支付回调接口**\r\n→ 重点覆盖异常与Mock：\r\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\r\n  - 异常测试：回调超时重试机制、幂等性验证\r\n  - 安全测试：回调签名验证、回调地址白名单\r\n  - 契约测试：支付回调的请求/响应格式是否符合约定\r\n\r\n**场景：升级版本后部分接口报错（兼容性问题）**\r\n→ 启动兼容性检查：\r\n  - 新版本响应中新增了必填字段，旧客户端无法解析\r\n  - 接口URL路径变更，旧版本路由失效\r\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\r\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.7.6:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.7.6\",\n  \"publishedAt\": 1788266157742\n}\n\nFile v1.7.6:skill-card.md\n\n## Description:\n\nGuides agents through API testing for RESTful, GraphQL, gRPC, and WebSocket services, producing test matrices, contract assertions, security checks, mock strategy, and tool recommendations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, QA engineers, and test automation engineers use this skill to design API test coverage across function, security, exception handling, performance, contract, and compatibility dimensions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The artifact recommends installing a broader third-party QA skill set with an unpinned command, which expands trust beyond this reviewed release.\n\nMitigation: Review the source and pin or verify the exact version before installing the broader skill set, especially in managed or production-adjacent environments.\n\nRisk: API testing can capture credentials, tokens, cookies, secrets, or personal data in request and response logs.\n\nMitigation: Use non-production credentials where possible and redact authorization headers, cookies, tokens, secrets, and personal data before sharing logs or generated test artifacts.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-api-testing)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, guidance]\n\n**Output Format:** [Markdown with tables, checklists, and optional code or shell command blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include API test matrices, contract assertion lists, mock strategies, automation script designs, and security checklists.]\n\n## Skill Version(s):\n\n1.7.6 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.5: 3 files, 6824 bytes\n\nFiles: skill-card.md (1847b), SKILL.md (13015b), _meta.json (133b)\n\nFile v1.7.5:SKILL.md\n\n---\nname: qa-api-testing\nslug: qa-api-testing\ndisplayName: Api Testing\nversion: 1.7.5\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\nallowed-tools: Read Grep Glob Bash WebFetch\nrelated_skills:\n  upstream:\n    - qa-test-automation-arch    # 输入：自动化架构设计\n    - qa-req-deconstruction      # 输入：接口需求分析\n  downstream:\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\n    - qa-execution-observation   # 输出：接口测试结果\ninput_format:\n  required:\n    - name: 接口文档\n      type: string\n      description: API接口文档或契约文件\n    - name: 自动化架构\n      type: object\n      description: 来自qa-test-automation-arch的自动化架构设计\n  optional:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\noutput_format:\n  traceability:\n    - 每个接口测试用例带唯一ID：TC_{接口模块缩写}_{功能缩写}_{序号}（如 TC_API_LOGIN_001），遵循 format.md 编号规则\n    - 关联接口契约ID\n  structure:\n    - test_cases: 接口测试用例（固定 9 列 Markdown 表格：用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有接口文档/契约），禁止\"全覆盖/100%\"绝对化表述；未覆盖接口标注\"未覆盖+原因\"\n    - api_test_plan: 接口测试方案\n    - mock_strategy: Mock策略\n    - automation_scripts: 自动化脚本设计\n    - security_checks: 安全测试清单\nerror_recovery_guidance:\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\ncategories: ['Development','Testing']\ndepth_requirement_quantification:\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\n---\n# 接口测试专项\n\n## 核心原则\n\n接口是系统的骨架，接口测试是自动化的基石。\n\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\n\n## 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|------|------|\n| 功能测试 | 40% | 正向/反向/边界/参数 |\n| 安全测试 | 20% | 认证/授权/注入 |\n| 异常测试 | 15% | 超时/重试/降级 |\n| 性能测试 | 10% | 响应时间/并发 |\n| 契约测试 | 10% | 接口契约验证 |\n| 兼容性测试 | 5% | 版本兼容 |\n\n### 接口类型速查\n\n不同协议接口各有侧重，以下为推荐测试重点：\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n\n## 核心流程\n\n### 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n### 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n### 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n### 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n\n性能基准建议（可配置，无基准时先建基线）：\n├─ P95 响应时间 < 500ms（按业务场景调整）\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%\n```\n\n### 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n### 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 接口测试工具选型\n\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\n|-----|---------|--------|---------|------|---------|\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\n\n## Mock策略\n\n### Mock时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n## 检查清单\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费者契约：消费者期望的接口行为是否满足\n- [ ] 生产者契约：接口提供方是否履行约定\n- [ ] 契约版本管理：接口变更是否遵循版本策略\n- [ ] 契约自动化验证：契约是否集成到CI/CD\n\n### 兼容性测试检查\n- [ ] 版本兼容：新旧版本接口是否兼容\n- [ ] 协议兼容：不同协议实现是否一致\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\n- [ ] 上游兼容：依赖服务变更后的影响\n\n## 输出示例\n\n**用户说\"测试这个登录接口\"**\n→ 启动接口测试六维覆盖：\n  - 功能：正常登录、错误密码、参数缺失\n  - 安全：Token伪造、SQL注入、越权访问\n  - 异常：超时、重试、幂等性\n  - 性能：响应时间基准、并发阈值\n  - 契约：接口契约是否符合OpenAPI定义\n  - 兼容：新旧版本接口是否兼容\n\n**用例输出示例（9 列标准格式）**：\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_LOGIN_001 | 功能测试 | 登录接口 | 正确凭证登录成功 | P0 | 接口文档已提供，账号已就绪 | 发送POST /api/login，参数{user,pass} | 返回200，响应含token且有效 | 高 |\n| TC_API_LOGIN_002 | 安全测试 | 登录接口 | Token伪造被拒绝 | P0 | 合法Token已知 | 修改Token签名后请求受保护接口 | 返回401，拒绝访问 | 高 |\n| TC_API_LOGIN_003 | 异常测试 | 登录接口 | 超时重试幂等性 | P1 | 模拟网关超时 | 请求超时后自动重试2次 | 重试成功且无重复副作用 | 中 |\n\n**接口文档（OpenAPI/Swagger）已提供**\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\n\n**场景：测试一个第三方支付回调接口**\n→ 重点覆盖异常与Mock：\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\n  - 异常测试：回调超时重试机制、幂等性验证\n  - 安全测试：回调签名验证、回调地址白名单\n  - 契约测试：支付回调的请求/响应格式是否符合约定\n\n**场景：升级版本后部分接口报错（兼容性问题）**\n→ 启动兼容性检查：\n  - 新版本响应中新增了必填字段，旧客户端无法解析\n  - 接口URL路径变更，旧版本路由失效\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.7.5:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.7.5\",\n  \"publishedAt\": 1788102651098\n}\n\nFile v1.7.5:skill-card.md\n\n## Description:\n\nHelps agents plan API testing for RESTful, GraphQL, gRPC, and WebSocket services, producing test matrices, contract assertions, security checks, mock strategy, automation script designs, and tool recommendations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, developers, and test automation teams use this skill to design API tests across RESTful, GraphQL, gRPC, and WebSocket interfaces, including functional, security, exception, performance, contract, and compatibility checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated API requests or shell commands could be run against production or third-party systems without authorization.\n\nMitigation: Use the skill only for authorized API testing, prefer test environments, and run requests or commands only with explicit permission and appropriate test credentials.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-api-testing)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with tables, checklists, and optional code or shell command snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include API test matrices, contract assertion checklists, mock strategy, automation script designs, and security checklists.]\n\n## Skill Version(s):\n\n1.7.5 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.0: 3 files, 6284 bytes\n\nFiles: skill-card.md (2191b), SKILL.md (11354b), _meta.json (133b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: qa-api-testing\nslug: qa-api-testing\ndisplayName: Api Testing\nversion: 1.7.0\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\nallowed-tools: Read Grep Glob Bash WebFetch\nrelated_skills:\n  upstream:\n    - qa-test-automation-arch    # 输入：自动化架构设计\n    - qa-req-deconstruction      # 输入：接口需求分析\n  downstream:\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\n    - qa-execution-observation   # 输出：接口测试结果\ninput_format:\n  required:\n    - name: 接口文档\n      type: string\n      description: API接口文档或契约文件\n    - name: 自动化架构\n      type: object\n      description: 来自qa-test-automation-arch的自动化架构设计\n  optional:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\noutput_format:\n  traceability:\n    - 每个接口测试用例带唯一ID（TC-XXXX）\n    - - 关联接口契约ID\n  structure:\n    - api_test_plan: 接口测试方案\n    - test_cases: 接口测试用例\n    - mock_strategy: Mock策略\n    - automation_scripts: 自动化脚本设计\n    - security_checks: 安全测试清单\nerror_recovery_guidance:\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\ncategories: ['Development','Testing']\ndepth_requirement_quantification:\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\n---\n# 接口测试专项\n\n## 核心原则\n\n接口是系统的骨架，接口测试是自动化的基石。\n\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\n\n## 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|------|------|\n| 功能测试 | 40% | 正向/反向/边界/参数 |\n| 安全测试 | 20% | 认证/授权/注入 |\n| 异常测试 | 15% | 超时/重试/降级 |\n| 性能测试 | 10% | 响应时间/并发 |\n| 契约测试 | 10% | 接口契约验证 |\n| 兼容性测试 | 5% | 版本兼容 |\n\n### 接口类型速查\n\n不同协议接口各有侧重，以下为推荐测试重点：\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n\n## 核心流程\n\n### 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n### 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n### 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n### 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n```\n\n### 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n### 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 接口测试工具选型\n\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\n|-----|---------|--------|---------|------|---------|\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\n\n## Mock策略\n\n### Mock时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n## 检查清单\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费者契约：消费者期望的接口行为是否满足\n- [ ] 生产者契约：接口提供方是否履行约定\n- [ ] 契约版本管理：接口变更是否遵循版本策略\n- [ ] 契约自动化验证：契约是否集成到CI/CD\n\n### 兼容性测试检查\n- [ ] 版本兼容：新旧版本接口是否兼容\n- [ ] 协议兼容：不同协议实现是否一致\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\n- [ ] 上游兼容：依赖服务变更后的影响\n\n## 输出示例\n\n**用户说\"测试这个登录接口\"**\n→ 启动接口测试六维覆盖：\n  - 功能：正常登录、错误密码、参数缺失\n  - 安全：Token伪造、SQL注入、越权访问\n  - 异常：超时、重试、幂等性\n  - 性能：响应时间基准、并发阈值\n  - 契约：接口契约是否符合OpenAPI定义\n  - 兼容：新旧版本接口是否兼容\n\n**接口文档（OpenAPI/Swagger）已提供**\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\n\n**场景：测试一个第三方支付回调接口**\n→ 重点覆盖异常与Mock：\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\n  - 异常测试：回调超时重试机制、幂等性验证\n  - 安全测试：回调签名验证、回调地址白名单\n  - 契约测试：支付回调的请求/响应格式是否符合约定\n\n**场景：升级版本后部分接口报错（兼容性问题）**\n→ 启动兼容性检查：\n  - 新版本响应中新增了必填字段，旧客户端无法解析\n  - 接口URL路径变更，旧版本路由失效\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1786890846911\n}\n\nFile v1.7.0:skill-card.md\n\n## Description:\n\nThis skill helps agents design API testing plans for RESTful, GraphQL, gRPC, and WebSocket interfaces, covering functional checks, parameter combinations, authentication and authorization checks, timeout and retry behavior, idempotency, contract validation, compatibility, and tool selection.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to turn API documentation and automation architecture into API test matrices, contract assertions, mock strategies, security checklists, and automation script designs.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill may propose Bash commands or live API requests while helping design or execute API testing workflows.\n\nMitigation: Review commands before execution, run tests only against APIs you are authorized to test, and prefer non-production environments for disruptive checks.\n\nRisk: API security, failure, and performance testing can expose sensitive request or response data or affect service availability if run without controls.\n\nMitigation: Sanitize captured traffic, protect credentials and tokens, define rate and concurrency limits, and scope tests to approved systems before execution.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with structured test matrices, checklists, and optional code or command examples.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include API test plans, test cases, mock strategies, automation script designs, security checklists, compatibility impact analysis, and version migration guidance.]\n\n## Skill Version(s):\n\n1.7.0 (source: SKILL.md frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.3: 3 files, 6153 bytes\n\nFiles: skill-card.md (1931b), SKILL.md (11354b), _meta.json (133b)\n\nFile v1.6.3:SKILL.md\n\n---\nname: qa-api-testing\nslug: qa-api-testing\ndisplayName: Api Testing\nversion: 1.6.3\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\nallowed-tools: Read Grep Glob Bash WebFetch\nrelated_skills:\n  upstream:\n    - qa-test-automation-arch    # 输入：自动化架构设计\n    - qa-req-deconstruction      # 输入：接口需求分析\n  downstream:\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\n    - qa-execution-observation   # 输出：接口测试结果\ninput_format:\n  required:\n    - name: 接口文档\n      type: string\n      description: API接口文档或契约文件\n    - name: 自动化架构\n      type: object\n      description: 来自qa-test-automation-arch的自动化架构设计\n  optional:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\noutput_format:\n  traceability:\n    - 每个接口测试用例带唯一ID（TC-XXXX）\n    - - 关联接口契约ID\n  structure:\n    - api_test_plan: 接口测试方案\n    - test_cases: 接口测试用例\n    - mock_strategy: Mock策略\n    - automation_scripts: 自动化脚本设计\n    - security_checks: 安全测试清单\nerror_recovery_guidance:\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\ncategories: ['Development','Testing']\ndepth_requirement_quantification:\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\n---\n# 接口测试专项\n\n## 核心原则\n\n接口是系统的骨架，接口测试是自动化的基石。\n\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\n\n## 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|------|------|\n| 功能测试 | 40% | 正向/反向/边界/参数 |\n| 安全测试 | 20% | 认证/授权/注入 |\n| 异常测试 | 15% | 超时/重试/降级 |\n| 性能测试 | 10% | 响应时间/并发 |\n| 契约测试 | 10% | 接口契约验证 |\n| 兼容性测试 | 5% | 版本兼容 |\n\n### 接口类型速查\n\n不同协议接口各有侧重，以下为推荐测试重点：\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n\n## 核心流程\n\n### 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n### 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n### 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n### 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n```\n\n### 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n### 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 接口测试工具选型\n\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\n|-----|---------|--------|---------|------|---------|\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\n\n## Mock策略\n\n### Mock时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n## 检查清单\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费者契约：消费者期望的接口行为是否满足\n- [ ] 生产者契约：接口提供方是否履行约定\n- [ ] 契约版本管理：接口变更是否遵循版本策略\n- [ ] 契约自动化验证：契约是否集成到CI/CD\n\n### 兼容性测试检查\n- [ ] 版本兼容：新旧版本接口是否兼容\n- [ ] 协议兼容：不同协议实现是否一致\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\n- [ ] 上游兼容：依赖服务变更后的影响\n\n## 输出示例\n\n**用户说\"测试这个登录接口\"**\n→ 启动接口测试六维覆盖：\n  - 功能：正常登录、错误密码、参数缺失\n  - 安全：Token伪造、SQL注入、越权访问\n  - 异常：超时、重试、幂等性\n  - 性能：响应时间基准、并发阈值\n  - 契约：接口契约是否符合OpenAPI定义\n  - 兼容：新旧版本接口是否兼容\n\n**接口文档（OpenAPI/Swagger）已提供**\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\n\n**场景：测试一个第三方支付回调接口**\n→ 重点覆盖异常与Mock：\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\n  - 异常测试：回调超时重试机制、幂等性验证\n  - 安全测试：回调签名验证、回调地址白名单\n  - 契约测试：支付回调的请求/响应格式是否符合约定\n\n**场景：升级版本后部分接口报错（兼容性问题）**\n→ 启动兼容性检查：\n  - 新版本响应中新增了必填字段，旧客户端无法解析\n  - 接口URL路径变更，旧版本路由失效\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.6.3:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.6.3\",\n  \"publishedAt\": 1786548042715\n}\n\nFile v1.6.3:skill-card.md\n\n## Description:\n\nHelps agents design API test plans for RESTful, GraphQL, gRPC, and WebSocket services, including functional validation, parameter combinations, authorization checks, retry and idempotency coverage, contract assertions, compatibility checks, and tool recommendations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to turn API documentation, contracts, or testing requests into structured API test matrices, security checklists, mock strategies, and automation guidance.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Security testing guidance could be applied to APIs without authorization.\n\nMitigation: Use the skill only for APIs you own or have explicit permission to test.\n\nRisk: Generated API test plans may miss service-specific business rules or regulatory requirements.\n\nMitigation: Review the generated matrix against the API contract, product requirements, and applicable compliance obligations before execution.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-api-testing)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, guidance]\n\n**Output Format:** [Markdown with API test matrices, checklists, mock strategy, and automation script designs.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include test case IDs, protocol-specific coverage notes, security checks, and compatibility analysis.]\n\n## Skill Version(s):\n\n1.6.3 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.0: 3 files, 6284 bytes\n\nFiles: skill-card.md (2291b), SKILL.md (11611b), _meta.json (133b)\n\nFile v1.6.0:SKILL.md\n\n---\r\nname: qa-api-testing\r\nversion: 1.6.0\r\ndescription: >-\r\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\r\n\r\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时\r\nallowed-tools: Read Grep Glob Bash WebFetch\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-automation-arch    # 输入：自动化架构设计\r\n    - qa-req-deconstruction      # 输入：接口需求分析\r\n  downstream:\r\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\r\n    - qa-execution-observation   # 输出：接口测试结果\r\ninput_format:\r\n  required:\r\n    - name: 接口文档\r\n      type: string\r\n      description: API接口文档或契约文件\r\n    - name: 自动化架构\r\n      type: object\r\n      description: 来自qa-test-automation-arch的自动化架构设计\r\n  optional:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\noutput_format:\r\n  traceability:\r\n    - 每个接口测试用例带唯一ID（TC-XXXX）\r\n    - - 关联接口契约ID\r\n  structure:\r\n    - api_test_plan: 接口测试方案\r\n    - test_cases: 接口测试用例\r\n    - mock_strategy: Mock策略\r\n    - automation_scripts: 自动化脚本设计\r\n    - security_checks: 安全测试清单\r\nerror_recovery_guidance:\r\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\r\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\r\ncategories: ['Development','Testing']\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据接口数量和复杂度调整测试深度：简单×1/中等×2/复杂×3\"\r\n  minimum: \"至少覆盖功能验证、参数组合、安全鉴权3个维度\"\r\n---\r\n# 接口测试专项\r\n\r\n## 核心原则\r\n\r\n接口是系统的骨架，接口测试是自动化的基石。\r\n\r\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\r\n\r\n## 深度要求\r\n\r\n| 复杂度 | 用例数要求 | 说明 |\r\n|--------|-----------|------|\r\n| 简单接口 | 接口数×5 | 单一功能接口 |\r\n| 中等接口 | 接口数×10 | 多参数接口 |\r\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\r\n\r\n**必须覆盖的6个维度**：\r\n\r\n| 维度 | 占比 | 说明 |\r\n|------|------|------|\r\n| 功能测试 | 40% | 正向/反向/边界/参数 |\r\n| 安全测试 | 20% | 认证/授权/注入 |\r\n| 异常测试 | 15% | 超时/重试/降级 |\r\n| 性能测试 | 10% | 响应时间/并发 |\r\n| 契约测试 | 10% | 接口契约验证 |\r\n| 兼容性测试 | 5% | 版本兼容 |\r\n\r\n### 接口类型速查\r\n\r\n不同协议接口各有侧重，以下为推荐测试重点：\r\n\r\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\r\n|---------|---------|---------|---------|\r\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\r\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\r\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\r\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\r\n\r\n## 核心流程\r\n\r\n### 1. 功能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 正向测试：正常输入返回正确结果\r\n├─ 反向测试：异常输入返回正确错误\r\n├─ 边界测试：边界值处理正确\r\n├─ 参数测试：参数组合覆盖\r\n└─ 业务测试：业务规则验证\r\n\r\n测试用例设计：\r\n├─ 入参校验：类型、长度、格式、必填\r\n├─ 返回校验：状态码、响应体、响应头\r\n├─ 业务校验：数据正确性、状态变更\r\n└─ 异常校验：错误码、错误信息\r\n```\r\n\r\n### 2. 安全测试\r\n\r\n```text\r\n测试维度：\r\n├─ 认证测试：Token/Session/OAuth\r\n├─ 授权测试：角色权限、资源访问\r\n├─ 注入测试：SQL注入、XSS、命令注入\r\n├─ 数据安全：敏感数据加密、脱敏\r\n└─ 速率限制：限流、防刷\r\n\r\n常见漏洞：\r\n├─ 越权访问：水平越权、垂直越权\r\n├─ 认证绕过：Token伪造、Session固定\r\n├─ 注入攻击：SQL注入、命令注入\r\n└─ 敏感泄露：密码明文、敏感信息暴露\r\n```\r\n\r\n### 3. 异常测试\r\n\r\n```text\r\n测试维度：\r\n├─ 超时场景\r\n│   ├─ 连接超时：TCP连接建立超时\r\n│   ├─ 读取超时：响应数据返回超时\r\n│   └─ 超时重试：超时后的重试行为是否符合预期\r\n│\r\n├─ 重试机制\r\n│   ├─ 幂等性：重复请求是否产生副作用\r\n│   ├─ 退避策略：重试间隔是否合理\r\n│   └─ 重试上限：达到最大重试次数后的行为\r\n│\r\n├─ 故障容错\r\n│   ├─ 降级策略：下游服务异常时是否降级\r\n│   ├─ 熔断机制：连续失败是否触发熔断\r\n│   └─ 限流效果：超出限流阈值时的响应\r\n│\r\n└─ 数据异常\r\n    ├─ 空响应：返回空数据时的处理\r\n    ├─ 部分数据：数据不完整时的处理\r\n    └─ 数据损坏：返回数据格式错误时的处理\r\n```\r\n\r\n### 4. 性能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 响应时间：P50/P95/P99\r\n├─ 并发能力：并发请求处理\r\n├─ 吞吐量：TPS/QPS\r\n├─ 稳定性：长时间运行\r\n└─ 资源消耗：CPU/内存/连接\r\n\r\n测试方法：\r\n├─ 基准测试：单请求性能基线\r\n├─ 负载测试：预期负载下表现\r\n├─ 压力测试：极限负载下表现\r\n└─ 波动测试：流量波动下表现\r\n```\r\n\r\n### 5. 契约测试\r\n\r\n```text\r\n测试维度：\r\n├─ 消费者驱动\r\n│   ├─ 消费者期望：API是否满足消费者的调用期望\r\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\r\n│   └─ 消费者契约集：所有消费者的契约汇总验证\r\n│\r\n├─ 生产者验证\r\n│   ├─ 接口实现验证：实际接口是否符合契约约定\r\n│   ├─ 回归检查：接口变更是否破坏已有契约\r\n│   └─ 版本策略：契约版本管理与兼容性保证\r\n│\r\n└─ 自动化集成\r\n    ├─ CI集成：契约测试是否纳入流水线\r\n    ├─ 变更通知：契约变更时是否通知相关方\r\n    └─ 契约仓库：契约文件是否统一管理\r\n```\r\n\r\n### 6. 兼容性测试\r\n\r\n```text\r\n测试维度：\r\n├─ 版本兼容\r\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\r\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\r\n│   └─ 版本迁移：接口版本迁移方案是否平滑\r\n│\r\n├─ 协议兼容\r\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\r\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\r\n│   └─ 编码格式：UTF-8/ASCII等编码处理\r\n│\r\n└─ 集成兼容\r\n    ├─ 上游依赖：依赖服务变更后的适配能力\r\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\r\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\r\n```\r\n\r\n## 接口测试工具选型\r\n\r\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\r\n|-----|---------|--------|---------|------|---------|\r\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\r\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\r\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\r\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\r\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\r\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\r\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\r\n\r\n## Mock策略\r\n\r\n### Mock时机\r\n\r\n```text\r\n需要Mock的场景：\r\n├─ 第三方服务：支付、短信、地图\r\n├─ 不稳定服务：外部依赖\r\n├─ 开发中服务：接口未就绪\r\n├─ 特殊场景：异常、超时、限流\r\n└─ 测试数据：特定数据构造\r\n```\r\n\r\n### Mock工具\r\n\r\n```text\r\n├─ WireMock：Java生态，功能全面\r\n├─ MockServer：轻量级，易于使用\r\n├─ Postman Mock：在线Mock服务\r\n├─ MSW：前端Mock，拦截请求\r\n└─ 自建Mock：Python/Node.js脚本\r\n```\r\n\r\n## 检查清单\r\n\r\n### 功能测试检查\r\n- [ ] 正向测试：正常输入返回正确结果\r\n- [ ] 反向测试：异常输入返回正确错误\r\n- [ ] 边界测试：边界值处理正确\r\n- [ ] 参数测试：参数组合覆盖\r\n- [ ] 业务测试：业务规则验证\r\n\r\n### 安全测试检查\r\n- [ ] 认证测试：Token/Session/OAuth\r\n- [ ] 授权测试：角色权限、资源访问\r\n- [ ] 注入测试：SQL注入、XSS、命令注入\r\n- [ ] 数据安全：敏感数据加密、脱敏\r\n- [ ] 速率限制：限流、防刷\r\n\r\n### 异常测试检查\r\n- [ ] 超时测试：请求超时处理\r\n- [ ] 重试测试：失败重试机制\r\n- [ ] 降级测试：服务降级处理\r\n- [ ] 熔断测试：熔断机制验证\r\n\r\n### 性能测试检查\r\n- [ ] 响应时间：P50/P95/P99\r\n- [ ] 并发能力：并发请求处理\r\n- [ ] 吞吐量：TPS/QPS\r\n- [ ] 稳定性：长时间运行\r\n\r\n### 契约测试检查\r\n- [ ] 消费者契约：消费者期望的接口行为是否满足\r\n- [ ] 生产者契约：接口提供方是否履行约定\r\n- [ ] 契约版本管理：接口变更是否遵循版本策略\r\n- [ ] 契约自动化验证：契约是否集成到CI/CD\r\n\r\n### 兼容性测试检查\r\n- [ ] 版本兼容：新旧版本接口是否兼容\r\n- [ ] 协议兼容：不同协议实现是否一致\r\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\r\n- [ ] 上游兼容：依赖服务变更后的影响\r\n\r\n## 输出示例\r\n\r\n**用户说\"测试这个登录接口\"**\r\n→ 启动接口测试六维覆盖：\r\n  - 功能：正常登录、错误密码、参数缺失\r\n  - 安全：Token伪造、SQL注入、越权访问\r\n  - 异常：超时、重试、幂等性\r\n  - 性能：响应时间基准、并发阈值\r\n  - 契约：接口契约是否符合OpenAPI定义\r\n  - 兼容：新旧版本接口是否兼容\r\n\r\n**接口文档（OpenAPI/Swagger）已提供**\r\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\r\n\r\n**场景：测试一个第三方支付回调接口**\r\n→ 重点覆盖异常与Mock：\r\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\r\n  - 异常测试：回调超时重试机制、幂等性验证\r\n  - 安全测试：回调签名验证、回调地址白名单\r\n  - 契约测试：支付回调的请求/响应格式是否符合约定\r\n\r\n**场景：升级版本后部分接口报错（兼容性问题）**\r\n→ 启动兼容性检查：\r\n  - 新版本响应中新增了必填字段，旧客户端无法解析\r\n  - 接口URL路径变更，旧版本路由失效\r\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\r\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1783358041954\n}\n\nFile v1.6.0:skill-card.md\n\n## Description: <br>\nProvides Chinese-language guidance for testing RESTful, GraphQL, gRPC, and WebSocket APIs, including functional validation, parameter combinations, authentication and authorization checks, timeout and retry behavior, idempotency, contract assertions, compatibility, test matrices, and tool selection. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, QA engineers, and test automation engineers use this skill to design API test plans, contract assertion checklists, mock strategies, security checks, and automation-script outlines for RESTful, GraphQL, gRPC, WebSocket, and third-party callback APIs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: API testing guidance could be applied to systems the user is not authorized to assess. <br>\nMitigation: Use the skill only for APIs and environments where testing is explicitly authorized. <br>\nRisk: Captured request and response logs may include secrets, tokens, personal data, or production credentials. <br>\nMitigation: Avoid production credentials where possible and redact secrets and sensitive data from logs and shared test artifacts. <br>\n\n\n## Reference(s): <br>\n- [Qa Api Testing on ClawHub](https://clawhub.ai/kokxi/skills/qa-api-testing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, configuration, guidance] <br>\n**Output Format:** [Markdown with structured checklists, tables, test matrices, and code or command snippets when useful] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs are guidance artifacts for API testing, including test plans, test cases, mock strategies, automation script designs, security checks, contract assertions, and tool recommendations.] <br>\n\n## Skill Version(s): <br>\n1.6.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.5.0: 3 files, 6190 bytes\n\nFiles: skill-card.md (2258b), SKILL.md (11529b), _meta.json (133b)\n\nFile v1.5.0:SKILL.md\n\n---\r\nname: qa-api-testing\r\nversion: 1.5.0\r\ndescription: >-\r\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\r\n\r\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"WebSocket测试\"、\"契约测试\"、\"接口Mock\"、\"接口安全\"、\"API兼容性\"、\"Swagger测试\"、\"OpenAPI\"、需要测试API时\r\nallowed-tools: Read Grep Glob Bash WebFetch\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-automation-arch    # 输入：自动化架构设计\r\n    - qa-req-deconstruction      # 输入：接口需求分析\r\n  downstream:\r\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\r\n    - qa-execution-observation   # 输出：接口测试结果\r\ninput_format:\r\n  required:\r\n    - name: 接口文档\r\n      type: string\r\n      description: API接口文档或契约文件\r\n    - name: 自动化架构\r\n      type: object\r\n      description: 来自qa-test-automation-arch的自动化架构设计\r\n  optional:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\noutput_format:\r\n  structure:\r\n    - api_test_plan: 接口测试方案\r\n    - test_cases: 接口测试用例\r\n    - mock_strategy: Mock策略\r\n    - automation_scripts: 自动化脚本设计\r\n    - security_checks: 安全测试清单\r\nerror_recovery_guidance:\r\n  on_failure: \"接口异常时记录完整请求/响应信息，增加重试机制\"\r\n  retry_behavior: \"修复网络/环境问题后重新执行接口测试\"\r\n---\r\n\r\n# 接口测试专项\r\n\r\n## 核心原则\r\n\r\n你是一位接口测试专家，擅长设计和执行接口测试。\r\n**核心原则**：接口是系统的骨架，接口测试是自动化的基石。\r\n本技能覆盖功能、安全、异常、性能、契约、兼容性6个维度的接口测试要点。\r\n\r\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\r\n\r\n## 深度要求\r\n\r\n| 复杂度 | 用例数要求 | 说明 |\r\n|--------|-----------|------|\r\n| 简单接口 | 接口数×5 | 单一功能接口 |\r\n| 中等接口 | 接口数×10 | 多参数接口 |\r\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\r\n\r\n**必须覆盖的6个维度**：\r\n\r\n| 维度 | 占比 | 说明 |\r\n|------|------|------|\r\n| 功能测试 | 40% | 正向/反向/边界/参数 |\r\n| 安全测试 | 20% | 认证/授权/注入 |\r\n| 异常测试 | 15% | 超时/重试/降级 |\r\n| 性能测试 | 10% | 响应时间/并发 |\r\n| 契约测试 | 10% | 接口契约验证 |\r\n| 兼容性测试 | 5% | 版本兼容 |\r\n\r\n### 接口类型速查\r\n\r\n不同协议接口各有侧重，以下为推荐测试重点：\r\n\r\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\r\n|---------|---------|---------|---------|\r\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\r\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\r\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\r\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\r\n\r\n## 核心流程\r\n\r\n### 1. 功能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 正向测试：正常输入返回正确结果\r\n├─ 反向测试：异常输入返回正确错误\r\n├─ 边界测试：边界值处理正确\r\n├─ 参数测试：参数组合覆盖\r\n└─ 业务测试：业务规则验证\r\n\r\n测试用例设计：\r\n├─ 入参校验：类型、长度、格式、必填\r\n├─ 返回校验：状态码、响应体、响应头\r\n├─ 业务校验：数据正确性、状态变更\r\n└─ 异常校验：错误码、错误信息\r\n```\r\n\r\n### 2. 安全测试\r\n\r\n```text\r\n测试维度：\r\n├─ 认证测试：Token/Session/OAuth\r\n├─ 授权测试：角色权限、资源访问\r\n├─ 注入测试：SQL注入、XSS、命令注入\r\n├─ 数据安全：敏感数据加密、脱敏\r\n└─ 速率限制：限流、防刷\r\n\r\n常见漏洞：\r\n├─ 越权访问：水平越权、垂直越权\r\n├─ 认证绕过：Token伪造、Session固定\r\n├─ 注入攻击：SQL注入、命令注入\r\n└─ 敏感泄露：密码明文、敏感信息暴露\r\n```\r\n\r\n### 3. 异常测试\r\n\r\n```text\r\n测试维度：\r\n├─ 超时场景\r\n│   ├─ 连接超时：TCP连接建立超时\r\n│   ├─ 读取超时：响应数据返回超时\r\n│   └─ 超时重试：超时后的重试行为是否符合预期\r\n│\r\n├─ 重试机制\r\n│   ├─ 幂等性：重复请求是否产生副作用\r\n│   ├─ 退避策略：重试间隔是否合理\r\n│   └─ 重试上限：达到最大重试次数后的行为\r\n│\r\n├─ 故障容错\r\n│   ├─ 降级策略：下游服务异常时是否降级\r\n│   ├─ 熔断机制：连续失败是否触发熔断\r\n│   └─ 限流效果：超出限流阈值时的响应\r\n│\r\n└─ 数据异常\r\n    ├─ 空响应：返回空数据时的处理\r\n    ├─ 部分数据：数据不完整时的处理\r\n    └─ 数据损坏：返回数据格式错误时的处理\r\n```\r\n\r\n### 4. 性能测试\r\n\r\n```text\r\n测试维度：\r\n├─ 响应时间：P50/P95/P99\r\n├─ 并发能力：并发请求处理\r\n├─ 吞吐量：TPS/QPS\r\n├─ 稳定性：长时间运行\r\n└─ 资源消耗：CPU/内存/连接\r\n\r\n测试方法：\r\n├─ 基准测试：单请求性能基线\r\n├─ 负载测试：预期负载下表现\r\n├─ 压力测试：极限负载下表现\r\n└─ 波动测试：流量波动下表现\r\n```\r\n\r\n### 5. 契约测试\r\n\r\n```text\r\n测试维度：\r\n├─ 消费者驱动\r\n│   ├─ 消费者期望：API是否满足消费者的调用期望\r\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\r\n│   └─ 消费者契约集：所有消费者的契约汇总验证\r\n│\r\n├─ 生产者验证\r\n│   ├─ 接口实现验证：实际接口是否符合契约约定\r\n│   ├─ 回归检查：接口变更是否破坏已有契约\r\n│   └─ 版本策略：契约版本管理与兼容性保证\r\n│\r\n└─ 自动化集成\r\n    ├─ CI集成：契约测试是否纳入流水线\r\n    ├─ 变更通知：契约变更时是否通知相关方\r\n    └─ 契约仓库：契约文件是否统一管理\r\n```\r\n\r\n### 6. 兼容性测试\r\n\r\n```text\r\n测试维度：\r\n├─ 版本兼容\r\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\r\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\r\n│   └─ 版本迁移：接口版本迁移方案是否平滑\r\n│\r\n├─ 协议兼容\r\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\r\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\r\n│   └─ 编码格式：UTF-8/ASCII等编码处理\r\n│\r\n└─ 集成兼容\r\n    ├─ 上游依赖：依赖服务变更后的适配能力\r\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\r\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\r\n```\r\n\r\n## 接口测试工具选型\r\n\r\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\r\n|-----|---------|--------|---------|------|---------|\r\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\r\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\r\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\r\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\r\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\r\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\r\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\r\n\r\n## Mock策略\r\n\r\n### Mock时机\r\n\r\n```text\r\n需要Mock的场景：\r\n├─ 第三方服务：支付、短信、地图\r\n├─ 不稳定服务：外部依赖\r\n├─ 开发中服务：接口未就绪\r\n├─ 特殊场景：异常、超时、限流\r\n└─ 测试数据：特定数据构造\r\n```\r\n\r\n### Mock工具\r\n\r\n```text\r\n├─ WireMock：Java生态，功能全面\r\n├─ MockServer：轻量级，易于使用\r\n├─ Postman Mock：在线Mock服务\r\n├─ MSW：前端Mock，拦截请求\r\n└─ 自建Mock：Python/Node.js脚本\r\n```\r\n\r\n## 检查清单\r\n\r\n### 功能测试检查\r\n- [ ] 正向测试：正常输入返回正确结果\r\n- [ ] 反向测试：异常输入返回正确错误\r\n- [ ] 边界测试：边界值处理正确\r\n- [ ] 参数测试：参数组合覆盖\r\n- [ ] 业务测试：业务规则验证\r\n\r\n### 安全测试检查\r\n- [ ] 认证测试：Token/Session/OAuth\r\n- [ ] 授权测试：角色权限、资源访问\r\n- [ ] 注入测试：SQL注入、XSS、命令注入\r\n- [ ] 数据安全：敏感数据加密、脱敏\r\n- [ ] 速率限制：限流、防刷\r\n\r\n### 异常测试检查\r\n- [ ] 超时测试：请求超时处理\r\n- [ ] 重试测试：失败重试机制\r\n- [ ] 降级测试：服务降级处理\r\n- [ ] 熔断测试：熔断机制验证\r\n\r\n### 性能测试检查\r\n- [ ] 响应时间：P50/P95/P99\r\n- [ ] 并发能力：并发请求处理\r\n- [ ] 吞吐量：TPS/QPS\r\n- [ ] 稳定性：长时间运行\r\n\r\n### 契约测试检查\r\n- [ ] 消费者契约：消费者期望的接口行为是否满足\r\n- [ ] 生产者契约：接口提供方是否履行约定\r\n- [ ] 契约版本管理：接口变更是否遵循版本策略\r\n- [ ] 契约自动化验证：契约是否集成到CI/CD\r\n\r\n### 兼容性测试检查\r\n- [ ] 版本兼容：新旧版本接口是否兼容\r\n- [ ] 协议兼容：不同协议实现是否一致\r\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\r\n- [ ] 上游兼容：依赖服务变更后的影响\r\n\r\n## 输出示例\r\n\r\n**用户说\"测试这个登录接口\"**\r\n→ 启动接口测试六维覆盖：\r\n  - 功能：正常登录、错误密码、参数缺失\r\n  - 安全：Token伪造、SQL注入、越权访问\r\n  - 异常：超时、重试、幂等性\r\n  - 性能：响应时间基准、并发阈值\r\n  - 契约：接口契约是否符合OpenAPI定义\r\n  - 兼容：新旧版本接口是否兼容\r\n\r\n**接口文档（OpenAPI/Swagger）已提供**\r\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\r\n\r\n**场景：测试一个第三方支付回调接口**\r\n→ 重点覆盖异常与Mock：\r\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\r\n  - 异常测试：回调超时重试机制、幂等性验证\r\n  - 安全测试：回调签名验证、回调地址白名单\r\n  - 契约测试：支付回调的请求/响应格式是否符合约定\r\n\r\n**场景：升级版本后部分接口报错（兼容性问题）**\r\n→ 启动兼容性检查：\r\n  - 新版本响应中新增了必填字段，旧客户端无法解析\r\n  - 接口URL路径变更，旧版本路由失效\r\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\r\n→ 输出：兼容性影响分析报告 + 版本迁移方案\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1782736265389\n}\n\nFile v1.5.0:skill-card.md\n\n## Description: <br>\nGuides agents in designing API testing plans for RESTful, GraphQL, gRPC, and WebSocket interfaces, with emphasis on functional coverage, parameter combinations, authentication and authorization checks, retries, idempotency, contract validation, and backward compatibility. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, QA engineers, and test automation engineers use this skill to plan API test coverage, produce test matrices, define contract assertions, choose testing and mock tools, and identify security, failure-mode, performance, and compatibility checks for APIs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: API test plans or generated commands could be applied to APIs, credentials, or environments outside the user's authorization. <br>\nMitigation: Use the skill only for APIs and credentials the user is authorized to test, and confirm the intended scope before execution. <br>\nRisk: Suggested Bash or WebFetch actions could affect live services or expose sensitive request data if run without review. <br>\nMitigation: Review proposed commands and requests before execution, prefer controlled test environments, and avoid sending production secrets unless explicitly approved. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with structured checklists, matrices, assertions, and example automation design notes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include proposed Bash or WebFetch actions for API testing workflows; review before running against live systems.] <br>\n\n## Skill Version(s): <br>\n1.5.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.1: 3 files, 5722 bytes\n\nFiles: skill-card.md (1803b), SKILL.md (10994b), _meta.json (133b)\n\nFile v1.4.1:SKILL.md\n\n---\r\nname: qa-api-testing\r\ndescription: >-\r\n  接口测试专项设计，覆盖RESTful/GraphQL/gRPC/WebSocket的测试方法、用例设计和工具选型。当需要接口测试或API自动化时激活。\r\n\r\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"WebSocket测试\"、\"契约测试\"、\"接口Mock\"、\"接口安全\"、\"API兼容性\"、\"Swagger测试\"、\"OpenAPI\"、需要测试API时\r\nallowed-tools: Read Grep Glob Bash WebFetch\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-automation-arch    # 输入：自动化架构设计\r\n    - qa-req-deconstruction      # 输入：接口需求分析\r\n  downstream:\r\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\r\n    - qa-execution-observation   # 输出：接口测试结果\r\ninput_format: 接口文档/契约 + 自动化架构\r\noutput_format: 接口测试方案（用例设计+自动化脚本+Mock策略）\r\n---\r\n\r\n# 接口测试专项\r\n\r\n## Overview\r\n\r\n你是一位接口测试专家，擅长设计和执行接口测试。\r\n**核心原则**：接口是系统的骨架，接口测试是自动化的基石。\r\n本技能覆盖功能、安全、异常、性能、契约、兼容性6个维度的接口测试要点。\r\n\r\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\r\n\r\n## 接口测试深度要求（参考值）\r\n\r\n| 复杂度 | 用例数要求 | 说明 |\r\n|--------|-----------|------|\r\n| 简单接口 | 接口数×5 | 单一功能接口 |\r\n| 中等接口 | 接口数×10 | 多参数接口 |\r\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\r\n\r\n**必须覆盖的6个维度**：\r\n\r\n| 维度 | 占比 | 说明 |\r\n|------|------|------|\r\n| 功能测试 | 40% | 正向/反向/边界/参数 |\r\n| 安全测试 | 20% | 认证/授权/注入 |\r\n| 异常测试 | 15% | 超时/重试/降级 |\r\n| 性能测试 | 10% | 响应时间/并发 |\r\n| 契约测试 | 10% | 接口契约验证 |\r\n| 兼容性测试 | 5% | 版本兼容 |\r\n\r\n### 接口类型速查\r\n\r\n不同协议接口各有侧重，以下为推荐测试重点：\r\n\r\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\r\n|---------|---------|---------|---------|\r\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\r\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\r\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\r\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\r\n\r\n## 接口测试检查清单\r\n\r\n### 功能测试检查\r\n- [ ] 正向测试：正常输入返回正确结果\r\n- [ ] 反向测试：异常输入返回正确错误\r\n- [ ] 边界测试：边界值处理正确\r\n- [ ] 参数测试：参数组合覆盖\r\n- [ ] 业务测试：业务规则验证\r\n\r\n### 安全测试检查\r\n- [ ] 认证测试：Token/Session/OAuth\r\n- [ ] 授权测试：角色权限、资源访问\r\n- [ ] 注入测试：SQL注入、XSS、命令注入\r\n- [ ] 数据安全：敏感数据加密、脱敏\r\n- [ ] 速率限制：限流、防刷\r\n\r\n### 异常测试检查\r\n- [ ] 超时测试：请求超时处理\r\n- [ ] 重试测试：失败重试机制\r\n- [ ] 降级测试：服务降级处理\r\n- [ ] 熔断测试：熔断机制验证\r\n\r\n### 性能测试检查\r\n- [ ] 响应时间：P50/P95/P99\r\n- [ ] 并发能力：并发请求处理\r\n- [ ] 吞吐量：TPS/QPS\r\n- [ ] 稳定性：长时间运行\r\n\r\n### 契约测试检查\r\n- [ ] 消费者契约：消费者期望的接口行为是否满足\r\n- [ ] 生产者契约：接口提供方是否履行约定\r\n- [ ] 契约版本管理：接口变更是否遵循版本策略\r\n- [ ] 契约自动化验证：契约是否集成到CI/CD\r\n\r\n### 兼容性测试检查\r\n- [ ] 版本兼容：新旧版本接口是否兼容\r\n- [ ] 协议兼容：不同协议实现是否一致\r\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\r\n- [ ] 上游兼容：依赖服务变更后的影响\r\n\r\n### 1. 功能测试\r\n\r\n```\r\n测试维度：\r\n├─ 正向测试：正常输入返回正确结果\r\n├─ 反向测试：异常输入返回正确错误\r\n├─ 边界测试：边界值处理正确\r\n├─ 参数测试：参数组合覆盖\r\n└─ 业务测试：业务规则验证\r\n\r\n测试用例设计：\r\n├─ 入参校验：类型、长度、格式、必填\r\n├─ 返回校验：状态码、响应体、响应头\r\n├─ 业务校验：数据正确性、状态变更\r\n└─ 异常校验：错误码、错误信息\r\n```\r\n\r\n### 2. 安全测试\r\n\r\n```\r\n测试维度：\r\n├─ 认证测试：Token/Session/OAuth\r\n├─ 授权测试：角色权限、资源访问\r\n├─ 注入测试：SQL注入、XSS、命令注入\r\n├─ 数据安全：敏感数据加密、脱敏\r\n└─ 速率限制：限流、防刷\r\n\r\n常见漏洞：\r\n├─ 越权访问：水平越权、垂直越权\r\n├─ 认证绕过：Token伪造、Session固定\r\n├─ 注入攻击：SQL注入、命令注入\r\n└─ 敏感泄露：密码明文、敏感信息暴露\r\n```\r\n\r\n### 3. 异常测试\r\n\r\n```\r\n测试维度：\r\n├─ 超时场景\r\n│   ├─ 连接超时：TCP连接建立超时\r\n│   ├─ 读取超时：响应数据返回超时\r\n│   └─ 超时重试：超时后的重试行为是否符合预期\r\n│\r\n├─ 重试机制\r\n│   ├─ 幂等性：重复请求是否产生副作用\r\n│   ├─ 退避策略：重试间隔是否合理\r\n│   └─ 重试上限：达到最大重试次数后的行为\r\n│\r\n├─ 故障容错\r\n│   ├─ 降级策略：下游服务异常时是否降级\r\n│   ├─ 熔断机制：连续失败是否触发熔断\r\n│   └─ 限流效果：超出限流阈值时的响应\r\n│\r\n└─ 数据异常\r\n    ├─ 空响应：返回空数据时的处理\r\n    ├─ 部分数据：数据不完整时的处理\r\n    └─ 数据损坏：返回数据格式错误时的处理\r\n```\r\n\r\n### 4. 性能测试\r\n\r\n```\r\n测试维度：\r\n├─ 响应时间：P50/P95/P99\r\n├─ 并发能力：并发请求处理\r\n├─ 吞吐量：TPS/QPS\r\n├─ 稳定性：长时间运行\r\n└─ 资源消耗：CPU/内存/连接\r\n\r\n测试方法：\r\n├─ 基准测试：单请求性能基线\r\n├─ 负载测试：预期负载下表现\r\n├─ 压力测试：极限负载下表现\r\n└─ 波动测试：流量波动下表现\r\n```\r\n\r\n### 5. 契约测试\r\n\r\n```\r\n测试维度：\r\n├─ 消费者驱动\r\n│   ├─ 消费者期望：API是否满足消费者的调用期望\r\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\r\n│   └─ 消费者契约集：所有消费者的契约汇总验证\r\n│\r\n├─ 生产者验证\r\n│   ├─ 接口实现验证：实际接口是否符合契约约定\r\n│   ├─ 回归检查：接口变更是否破坏已有契约\r\n│   └─ 版本策略：契约版本管理与兼容性保证\r\n│\r\n└─ 自动化集成\r\n    ├─ CI集成：契约测试是否纳入流水线\r\n    ├─ 变更通知：契约变更时是否通知相关方\r\n    └─ 契约仓库：契约文件是否统一管理\r\n```\r\n\r\n### 6. 兼容性测试\r\n\r\n```\r\n测试维度：\r\n├─ 版本兼容\r\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\r\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\r\n│   └─ 版本迁移：接口版本迁移方案是否平滑\r\n│\r\n├─ 协议兼容\r\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\r\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\r\n│   └─ 编码格式：UTF-8/ASCII等编码处理\r\n│\r\n└─ 集成兼容\r\n    ├─ 上游依赖：依赖服务变更后的适配能力\r\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\r\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\r\n```\r\n\r\n## 接口测试工具选型\r\n\r\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\r\n|-----|---------|--------|---------|------|---------|\r\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\r\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\r\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\r\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\r\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\r\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\r\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\r\n\r\n## Mock策略\r\n\r\n### Mock时机\r\n\r\n```\r\n需要Mock的场景：\r\n├─ 第三方服务：支付、短信、地图\r\n├─ 不稳定服务：外部依赖\r\n├─ 开发中服务：接口未就绪\r\n├─ 特殊场景：异常、超时、限流\r\n└─ 测试数据：特定数据构造\r\n```\r\n\r\n### Mock工具\r\n\r\n```\r\n├─ WireMock：Java生态，功能全面\r\n├─ MockServer：轻量级，易于使用\r\n├─ Postman Mock：在线Mock服务\r\n├─ MSW：前端Mock，拦截请求\r\n└─ 自建Mock：Python/Node.js脚本\r\n```\r\n\r\n## Examples\r\n\r\n**用户说\"测试这个登录接口\"**\r\n→ 启动接口测试六维覆盖：\r\n  - 功能：正常登录、错误密码、参数缺失\r\n  - 安全：Token伪造、SQL注入、越权访问\r\n  - 异常：超时、重试、幂等性\r\n  - 性能：响应时间基准、并发阈值\r\n  - 契约：接口契约是否符合OpenAPI定义\r\n  - 兼容：新旧版本接口是否兼容\r\n\r\n**接口文档（OpenAPI/Swagger）已提供**\r\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\r\n\r\n**场景：测试一个第三方支付回调接口**\r\n→ 重点覆盖异常与Mock：\r\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\r\n  - 异常测试：回调超时重试机制、幂等性验证\r\n  - 安全测试：回调签名验证、回调地址白名单\r\n  - 契约测试：支付回调的请求/响应格式是否符合约定\r\n\r\n**场景：升级版本后部分接口报错（兼容性问题）**\r\n→ 启动兼容性检查：\r\n  - 新版本响应中新增了必填字段，旧客户端无法解析\r\n  - 接口URL路径变更，旧版本路由失效\r\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\r\n→ 输出：兼容性影响分析报告 + 版本迁移方案\r\n\r\n## Guidelines\r\n\r\n接口测试完成后检查：\r\n- [ ] 功能测试是否覆盖正向/反向/边界？\r\n- [ ] 安全测试是否覆盖认证/授权/注入？\r\n- [ ] 异常测试是否覆盖超时/重试/降级/熔断？\r\n- [ ] 性能测试是否定义基准？\r\n- [ ] 契约测试是否实施？\r\n- [ ] 兼容性是否验证？\r\n- [ ] Mock策略是否设计？\r\n- [ ] 自动化脚本是否可维护？\n\nFile v1.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.4.1\",\n  \"publishedAt\": 1782406401053\n}\n\nFile v1.4.1:skill-card.md\n\n## Description: <br>\nDesigns API testing plans for RESTful, GraphQL, gRPC, and WebSocket interfaces, covering test cases, automation approach, tool selection, and mock strategy. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and QA engineers use this skill to turn API documentation, contracts, or interface requirements into a six-dimension API test plan covering functional, security, exception, performance, contract, and compatibility testing. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Review before execution as proposals could introduce incorrect or misleading guidance into skills. <br>\nMitigation: Review and scan skill before deployment. <br>\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-api-testing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown test plans, checklists, examples, and automation script guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include mock strategy and tool recommendations; inspect the skill text for unexpected invisible or control characters before installation and review generated scripts or commands before use.] <br>\n\n## Skill Version(s): <br>\n1.4.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.0: 3 files, 5912 bytes\n\nFiles: skill-card.md (2102b), SKILL.md (11424b), _meta.json (133b)\n\nFile v1.4.0:SKILL.md\n\n---\r\nname: qa-api-testing\r\ndescription: >-\r\n  接口测试专项设计，覆盖RESTful、GraphQL、gRPC、WebSocket接口的测试方法、用例设计和工具选型。当用户提到接口测试、API测试、接口自动化或需要测试API时自动触发。\r\n  也适用于：需要对接口进行安全审计、设计Mock方案、实施契约测试或验证接口兼容性时。\r\n  包含功能、安全、异常、性能、契约、兼容性6个维度的测试要点。\r\n  关键词：接口测试、API测试、RESTful、GraphQL、gRPC、契约测试、Mock策略、接口自动化、API安全测试、接口兼容性、OpenAPI测试。\r\nwhen_to_use: 用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"WebSocket测试\"、\"契约测试\"、\"接口Mock\"、\"接口安全\"、\"API兼容性\"、\"Swagger测试\"、\"OpenAPI\"、需要测试API时\r\nallowed-tools: Read Grep Glob Bash WebFetch\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-automation-arch    # 输入：自动化架构设计\r\n    - qa-req-deconstruction      # 输入：接口需求分析\r\n  downstream:\r\n    - qa-ci-cd-testing           # 输出：接口测试用于CI/CD\r\n    - qa-execution-observation   # 输出：接口测试结果\r\ninput_format: 接口文档/契约 + 自动化架构\r\noutput_format: 接口测试方案（用例设计+自动化脚本+Mock策略）\r\n---\r\n\r\n# 接口测试专项\r\n\r\n## Overview\r\n\r\n你是一位接口测试专家，擅长设计和执行接口测试。\r\n**核心原则**：接口是系统的骨架，接口测试是自动化的基石。\r\n本技能覆盖功能、安全、异常、性能、契约、兼容性6个维度的接口测试要点。\r\n\r\n**启动方式**：用户提出接口测试需求后，按接口类型速查表定位协议特点，启动六维测试方案输出。\r\n\r\n## 接口测试深度要求（参考值）\r\n\r\n| 复杂度 | 用例数要求 | 说明 |\r\n|--------|-----------|------|\r\n| 简单接口 | 接口数×5 | 单一功能接口 |\r\n| 中等接口 | 接口数×10 | 多参数接口 |\r\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\r\n\r\n**必须覆盖的6个维度**：\r\n\r\n| 维度 | 占比 | 说明 |\r\n|------|------|------|\r\n| 功能测试 | 40% | 正向/反向/边界/参数 |\r\n| 安全测试 | 20% | 认证/授权/注入 |\r\n| 异常测试 | 15% | 超时/重试/降级 |\r\n| 性能测试 | 10% | 响应时间/并发 |\r\n| 契约测试 | 10% | 接口契约验证 |\r\n| 兼容性测试 | 5% | 版本兼容 |\r\n\r\n### 接口类型速查\r\n\r\n不同协议接口各有侧重，以下为推荐测试重点：\r\n\r\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\r\n|---------|---------|---------|---------|\r\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\r\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\r\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\r\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\r\n\r\n## 接口测试检查清单\r\n\r\n### 功能测试检查\r\n- [ ] 正向测试：正常输入返回正确结果\r\n- [ ] 反向测试：异常输入返回正确错误\r\n- [ ] 边界测试：边界值处理正确\r\n- [ ] 参数测试：参数组合覆盖\r\n- [ ] 业务测试：业务规则验证\r\n\r\n### 安全测试检查\r\n- [ ] 认证测试：Token/Session/OAuth\r\n- [ ] 授权测试：角色权限、资源访问\r\n- [ ] 注入测试：SQL注入、XSS、命令注入\r\n- [ ] 数据安全：敏感数据加密、脱敏\r\n- [ ] 速率限制：限流、防刷\r\n\r\n### 异常测试检查\r\n- [ ] 超时测试：请求超时处理\r\n- [ ] 重试测试：失败重试机制\r\n- [ ] 降级测试：服务降级处理\r\n- [ ] 熔断测试：熔断机制验证\r\n\r\n### 性能测试检查\r\n- [ ] 响应时间：P50/P95/P99\r\n- [ ] 并发能力：并发请求处理\r\n- [ ] 吞吐量：TPS/QPS\r\n- [ ] 稳定性：长时间运行\r\n\r\n### 契约测试检查\r\n- [ ] 消费者契约：消费者期望的接口行为是否满足\r\n- [ ] 生产者契约：接口提供方是否履行约定\r\n- [ ] 契约版本管理：接口变更是否遵循版本策略\r\n- [ ] 契约自动化验证：契约是否集成到CI/CD\r\n\r\n### 兼容性测试检查\r\n- [ ] 版本兼容：新旧版本接口是否兼容\r\n- [ ] 协议兼容：不同协议实现是否一致\r\n- [ ] 数据格式兼容：JSON/XML/Protobuf格式兼容\r\n- [ ] 上游兼容：依赖服务变更后的影响\r\n\r\n### 1. 功能测试\r\n\r\n```\r\n测试维度：\r\n├─ 正向测试：正常输入返回正确结果\r\n├─ 反向测试：异常输入返回正确错误\r\n├─ 边界测试：边界值处理正确\r\n├─ 参数测试：参数组合覆盖\r\n└─ 业务测试：业务规则验证\r\n\r\n测试用例设计：\r\n├─ 入参校验：类型、长度、格式、必填\r\n├─ 返回校验：状态码、响应体、响应头\r\n├─ 业务校验：数据正确性、状态变更\r\n└─ 异常校验：错误码、错误信息\r\n```\r\n\r\n### 2. 安全测试\r\n\r\n```\r\n测试维度：\r\n├─ 认证测试：Token/Session/OAuth\r\n├─ 授权测试：角色权限、资源访问\r\n├─ 注入测试：SQL注入、XSS、命令注入\r\n├─ 数据安全：敏感数据加密、脱敏\r\n└─ 速率限制：限流、防刷\r\n\r\n常见漏洞：\r\n├─ 越权访问：水平越权、垂直越权\r\n├─ 认证绕过：Token伪造、Session固定\r\n├─ 注入攻击：SQL注入、命令注入\r\n└─ 敏感泄露：密码明文、敏感信息暴露\r\n```\r\n\r\n### 3. 异常测试\r\n\r\n```\r\n测试维度：\r\n├─ 超时场景\r\n│   ├─ 连接超时：TCP连接建立超时\r\n│   ├─ 读取超时：响应数据返回超时\r\n│   └─ 超时重试：超时后的重试行为是否符合预期\r\n│\r\n├─ 重试机制\r\n│   ├─ 幂等性：重复请求是否产生副作用\r\n│   ├─ 退避策略：重试间隔是否合理\r\n│   └─ 重试上限：达到最大重试次数后的行为\r\n│\r\n├─ 故障容错\r\n│   ├─ 降级策略：下游服务异常时是否降级\r\n│   ├─ 熔断机制：连续失败是否触发熔断\r\n│   └─ 限流效果：超出限流阈值时的响应\r\n│\r\n└─ 数据异常\r\n    ├─ 空响应：返回空数据时的处理\r\n    ├─ 部分数据：数据不完整时的处理\r\n    └─ 数据损坏：返回数据格式错误时的处理\r\n```\r\n\r\n### 4. 性能测试\r\n\r\n```\r\n测试维度：\r\n├─ 响应时间：P50/P95/P99\r\n├─ 并发能力：并发请求处理\r\n├─ 吞吐量：TPS/QPS\r\n├─ 稳定性：长时间运行\r\n└─ 资源消耗：CPU/内存/连接\r\n\r\n测试方法：\r\n├─ 基准测试：单请求性能基线\r\n├─ 负载测试：预期负载下表现\r\n├─ 压力测试：极限负载下表现\r\n└─ 波动测试：流量波动下表现\r\n```\r\n\r\n### 5. 契约测试\r\n\r\n```\r\n测试维度：\r\n├─ 消费者驱动\r\n│   ├─ 消费者期望：API是否满足消费者的调用期望\r\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\r\n│   └─ 消费者契约集：所有消费者的契约汇总验证\r\n│\r\n├─ 生产者验证\r\n│   ├─ 接口实现验证：实际接口是否符合契约约定\r\n│   ├─ 回归检查：接口变更是否破坏已有契约\r\n│   └─ 版本策略：契约版本管理与兼容性保证\r\n│\r\n└─ 自动化集成\r\n    ├─ CI集成：契约测试是否纳入流水线\r\n    ├─ 变更通知：契约变更时是否通知相关方\r\n    └─ 契约仓库：契约文件是否统一管理\r\n```\r\n\r\n### 6. 兼容性测试\r\n\r\n```\r\n测试维度：\r\n├─ 版本兼容\r\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\r\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\r\n│   └─ 版本迁移：接口版本迁移方案是否平滑\r\n│\r\n├─ 协议兼容\r\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\r\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\r\n│   └─ 编码格式：UTF-8/ASCII等编码处理\r\n│\r\n└─ 集成兼容\r\n    ├─ 上游依赖：依赖服务变更后的适配能力\r\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\r\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\r\n```\r\n\r\n## 接口测试工具选型\r\n\r\n| 工具 | 协议支持 | 自动化 | 契约测试 | Mock | 适用场景 |\r\n|-----|---------|--------|---------|------|---------|\r\n| **Postman/Apifox** | REST/GraphQL/WebSocket | 手动+脚本 | ❌ | ✅ | 接口调试、文档管理、小规模自动化 |\r\n| **pytest+requests** | 通用HTTP | ✅ | ❌ | ❌ | Python项目API自动化、CI集成 |\r\n| **REST Assured** | REST | ✅ | ❌ | ❌ | Java项目API自动化 |\r\n| **Karate** | REST/GraphQL | ✅ | ✅ | ✅ | 全栈API测试（单工具方案） |\r\n| **Pact** | REST/GraphQL | ❌ | ✅ | ✅ | 消费者驱动契约测试 |\r\n| **WireMock** | 通用HTTP | ❌ | ❌ | ✅ | 第三方Mock、异常模拟 |\r\n| **gRPCurl/gRPCui** | gRPC | 手动 | ❌ | ❌ | gRPC接口调试 |\r\n\r\n## Mock策略\r\n\r\n### Mock时机\r\n\r\n```\r\n需要Mock的场景：\r\n├─ 第三方服务：支付、短信、地图\r\n├─ 不稳定服务：外部依赖\r\n├─ 开发中服务：接口未就绪\r\n├─ 特殊场景：异常、超时、限流\r\n└─ 测试数据：特定数据构造\r\n```\r\n\r\n### Mock工具\r\n\r\n```\r\n├─ WireMock：Java生态，功能全面\r\n├─ MockServer：轻量级，易于使用\r\n├─ Postman Mock：在线Mock服务\r\n├─ MSW：前端Mock，拦截请求\r\n└─ 自建Mock：Python/Node.js脚本\r\n```\r\n\r\n## Examples\r\n\r\n**用户说\"测试这个登录接口\"**\r\n→ 启动接口测试六维覆盖：\r\n  - 功能：正常登录、错误密码、参数缺失\r\n  - 安全：Token伪造、SQL注入、越权访问\r\n  - 异常：超时、重试、幂等性\r\n  - 性能：响应时间基准、并发阈值\r\n  - 契约：接口契约是否符合OpenAPI定义\r\n  - 兼容：新旧版本接口是否兼容\r\n\r\n**接口文档（OpenAPI/Swagger）已提供**\r\n→ 基于文档自动生成接口测试方案，识别接口类型（RESTful/GraphQL），输出六维测试要点和Mock策略\r\n\r\n**场景：测试一个第三方支付回调接口**\r\n→ 重点覆盖异常与Mock：\r\n  - Mock策略：模拟支付网关超时、签名错误、重复回调\r\n  - 异常测试：回调超时重试机制、幂等性验证\r\n  - 安全测试：回调签名验证、回调地址白名单\r\n  - 契约测试：支付回调的请求/响应格式是否符合约定\r\n\r\n**场景：升级版本后部分接口报错（兼容性问题）**\r\n→ 启动兼容性检查：\r\n  - 新版本响应中新增了必填字段，旧客户端无法解析\r\n  - 接口URL路径变更，旧版本路由失效\r\n  - 返回数据格式从XML改为JSON，旧客户端兼容性\r\n→ 输出：兼容性影响分析报告 + 版本迁移方案\r\n\r\n## Guidelines\r\n\r\n接口测试完成后检查：\r\n- [ ] 功能测试是否覆盖正向/反向/边界？\r\n- [ ] 安全测试是否覆盖认证/授权/注入？\r\n- [ ] 异常测试是否覆盖超时/重试/降级/熔断？\r\n- [ ] 性能测试是否定义基准？\r\n- [ ] 契约测试是否实施？\r\n- [ ] 兼容性是否验证？\r\n- [ ] Mock策略是否设计？\r\n- [ ] 自动化脚本是否可维护？\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1782277501519\n}\n\nFile v1.4.0:skill-card.md\n\n## Description: <br>\nQa Api Testing helps agents design API testing plans for RESTful, GraphQL, gRPC, and WebSocket interfaces, including functional, security, exception, performance, contract, compatibility, and mock strategy coverage. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and QA engineers use this skill to turn API documentation, contracts, or testing requests into structured API test plans, automation script guidance, and mock strategies across common API protocols. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad API-testing trigger wording may activate the skill for general API-testing language. <br>\nMitigation: Confirm the user wants structured API testing guidance before applying generated plans to a live service. <br>\nRisk: Generated Bash commands or WebFetch requests could affect real systems during security or performance testing. <br>\nMitigation: Review proposed commands and requests before execution and run them only against authorized test environments. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-api-testing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, guidance] <br>\n**Output Format:** [Markdown guidance with checklists, test case outlines, automation script examples, and mock strategy recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include API test matrices across functional, security, exception, performance, contract, and compatibility dimensions.] <br>\n\n## Skill Version(s): <br>\n1.4.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: qa-api-testing Owner: kokxi Summary: 当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth by","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python scripts/validate_testcase_table.py <用例文件>"},{"language":"text","snippet":"测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息"},{"language":"text","snippet":"测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露"},{"language":"text","snippet":"测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理"},{"language":"text","snippet":"测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n\n性能基准建议（可配置，无基准时先建基线）：\n├─ P95 响应时间 < 500ms（按业务场景调整）\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%"},{"language":"text","snippet":"测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: qa-api-testing\ndescription: >-\n  当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。\n  触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility.\nlicense: MIT\nallowed-tools: Read Grep Glob Bash WebFetch\nmetadata:\n  display-name: \"Api Testing\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"接口测试\\\"、\\\"API测试\\\"、\\\"接口自动化\\\"、\\\"RESTful测试\\\"、\\\"GraphQL测试\\\"、\\\"gRPC测试\\\"、\\\"契约测试\\\"、\\\"接口安全测试\\\"、需要测试API时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-test-automation-arch\\\",\\\"qa-req-deconstruction\\\"],\\\"downstream\\\":[\\\"qa-ci-cd-testing\\\",\\\"qa-execution-observation\\\"]}\"\n  references: \"[\\\"references/core-flows.md\\\",\\\"references/test-cases.md\\\",\\\"references/tooling.md\\\",\\\"references/scenarios.md\\\",\\\"assets/case-template.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"接口文档\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"API接口文档或契约文件\\\"},{\\\"name\\\":\\\"自动化架构\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-automation-arch的自动化架构设计\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"测试策略\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-strategy-design的测试策略\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每个接口测试用例带唯一ID：TC_{接口模块缩写}_{功能缩写}_{序号}（如 TC_API_LOGIN_001）\\\",\\\"关联接口契约ID\\\"],\\\"structure\\\":[{\\\"test_cases\\\":\\\"接口测试用例（固定 9 列 Markdown 表格：用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\\\"},\\\"用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\\\",\\\"覆盖率：标注口径（基于现有接口文档/契约），禁止\\\\\\\"全覆盖/100%\\\\\\\"绝对化表述；未覆盖接口标注\\\\\\\"未覆盖+原因\\\\\\\"\\\",\\\"占比取整：每维允许偏差 ≤1 条；接口数 <5 时以每维至少 1 条兜底并注明实际分布\\\"],\\\"api_test_plan\\\":\\\"接口测试方案\\\",\\\"mock_strategy\\\":\\\"Mock策略\\\",\\\"automation_scripts\\\":\\\"自动化脚本设计\\\",\\\"security_checks\\\":\\\"安全测试清单\\\"}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"接口异常时记录完整请求/响应信息，增加重试机制\\\",\\\"retry_behavior\\\":\\\"修复网络/环境问题后重新执行接口测试\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"见正文「深度要求」表：简单接口=接口数×5 / 中等=×10 / 复杂=×15\\\",\\\"minimum\\\":\\\"六维全覆盖（功能/安全/异常/性能/契约/兼容）；接口数 <5 时以每维至少 1 条兜底，替代不可行的百分比配额\\\"}\"\n---\n\n# 接口测试专项\n\n## 核心原则\n\n接口 Bug 大多不在状态码，而在**数据结构不一致、字段类型错配、空值处理与并发副作用**。\n200 只能证明\"通路是通的\"，证明不了\"数据是对的\"。\n\n## 1. 先定位接口类型（决定重心）\n\n| 接口类型 | 典型代表 | 测试重点 | 协议特点 |\n|---------|---------|---------|---------|\n| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |\n| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |\n| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |\n| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |\n| **SOAP** | 企业级系统、金融/医疗 | WSDL契约验证、XML报文结构、WS-Security | XML、强契约、RPC风格 |\n| **Webhook** | 支付回调、事件通知 | 验签、幂等性、超时重试、回调顺序 | HTTP回调、被动触发、需主动Mock |\n\n## 2. 深度要求\n\n| 复杂度 | 用例数要求 | 说明 |\n|--------|-----------|------|\n| 简单接口 | 接口数×5 | 单一功能接口 |\n| 中等接口 | 接口数×10 | 多参数接口 |\n| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |\n\n**必须覆盖的6个维度**：\n\n| 维度 | 占比 | 说明 |\n|------|----"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-api-testing\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790655922458\n}"},{"path":"references/core-flows.md","content":"# 接口测试核心流程详图\n\n> 本文件是 [SKILL.md](../SKILL.md) 的详细展开：承载六维测试范围的树状详图、交付前检查清单与 Mock 策略。\n> 典型用例模板见 [test-cases.md](test-cases.md)，工具选型见 [tooling.md](tooling.md)，场景示例见 [scenarios.md](scenarios.md)。\n> 1-7 节是\"这一维测什么范围\"，第 8 节是\"交付前逐项查什么\" —— 按需加载对应小节，不必通读。\n\n## 目录\n\n1. [功能测试](#1-功能测试) · 2. [安全测试](#2-安全测试) · 3. [异常测试](#3-异常测试)\n4. [性能测试](#4-性能测试) · 5. [契约测试](#5-契约测试) · 6. [兼容性测试](#6-兼容性测试)\n7. [Mock 策略](#7-mock-策略) · 8. [交付前检查清单](#8-交付前检查清单)\n\n## 1. 功能测试\n\n```text\n测试维度：\n├─ 正向测试：正常输入返回正确结果\n├─ 反向测试：异常输入返回正确错误\n├─ 边界测试：边界值处理正确\n├─ 参数测试：参数组合覆盖\n└─ 业务测试：业务规则验证\n\n测试用例设计：\n├─ 入参校验：类型、长度、格式、必填\n├─ 返回校验：状态码、响应体、响应头\n├─ 业务校验：数据正确性、状态变更\n└─ 异常校验：错误码、错误信息\n```\n\n## 2. 安全测试\n\n```text\n测试维度：\n├─ 认证测试：Token/Session/OAuth\n├─ 授权测试：角色权限、资源访问\n├─ 注入测试：SQL注入、XSS、命令注入\n├─ 数据安全：敏感数据加密、脱敏\n└─ 速率限制：限流、防刷\n\n常见漏洞：\n├─ 越权访问：水平越权、垂直越权\n├─ 认证绕过：Token伪造、Session固定\n├─ 注入攻击：SQL注入、命令注入\n└─ 敏感泄露：密码明文、敏感信息暴露\n```\n\n## 3. 异常测试\n\n```text\n测试维度：\n├─ 超时场景\n│   ├─ 连接超时：TCP连接建立超时\n│   ├─ 读取超时：响应数据返回超时\n│   └─ 超时重试：超时后的重试行为是否符合预期\n│\n├─ 重试机制\n│   ├─ 幂等性：重复请求是否产生副作用\n│   ├─ 退避策略：重试间隔是否合理\n│   └─ 重试上限：达到最大重试次数后的行为\n│\n├─ 故障容错\n│   ├─ 降级策略：下游服务异常时是否降级\n│   ├─ 熔断机制：连续失败是否触发熔断\n│   └─ 限流效果：超出限流阈值时的响应\n│\n└─ 数据异常\n    ├─ 空响应：返回空数据时的处理\n    ├─ 部分数据：数据不完整时的处理\n    └─ 数据损坏：返回数据格式错误时的处理\n```\n\n## 4. 性能测试\n\n```text\n测试维度：\n├─ 响应时间：P50/P95/P99\n├─ 并发能力：并发请求处理\n├─ 吞吐量：TPS/QPS\n├─ 稳定性：长时间运行\n└─ 资源消耗：CPU/内存/连接\n\n测试方法：\n├─ 基准测试：单请求性能基线\n├─ 负载测试：预期负载下表现\n├─ 压力测试：极限负载下表现\n└─ 波动测试：流量波动下表现\n\n性能基准建议（可配置，无基准时先建基线）：\n├─ P95 响应时间 < 500ms（按业务场景调整）\n├─ 并发基线：压测确定 TPS 上限，阈值设为上限的 80%\n└─ 无历史基准时：先做基准测试建立基线，再断言相对退化 < 20%\n```\n\n## 5. 契约测试\n\n```text\n测试维度：\n├─ 消费者驱动\n│   ├─ 消费者期望：API是否满足消费者的调用期望\n│   ├─ 请求-响应匹配：请求参数和响应结构的匹配\n│   └─ 消费者契约集：所有消费者的契约汇总验证\n│\n├─ 生产者验证\n│   ├─ 接口实现验证：实际接口是否符合契约约定\n│   ├─ 回归检查：接口变更是否破坏已有契约\n│   └─ 版本策略：契约版本管理与兼容性保证\n│\n└─ 自动化集成\n    ├─ CI集成：契约测试是否纳入流水线\n    ├─ 变更通知：契约变更时是否通知相关方\n    └─ 契约仓库：契约文件是否统一管理\n```\n\n## 6. 兼容性测试\n\n```text\n测试维度：\n├─ 版本兼容\n│   ├─ 向后兼容：新版本是否支持旧版本客户端\n│   ├─ 向前兼容：旧版本是否能处理新版本响应\n│   └─ 版本迁移：接口版本迁移方案是否平滑\n│\n├─ 协议兼容\n│   ├─ 多协议支持：REST/GraphQL/gRPC行为是否一致\n│   ├─ 序列化格式：JSON/XML/Protobuf兼容性\n│   └─ 编码格式：UTF-8/ASCII等编码处理\n│\n└─ 集成兼容\n    ├─ 上游依赖：依赖服务变更后的适配能力\n    ├─ 中间件兼容：网关/代理/负载均衡的影响\n    └─ 客户端兼容：不同SDK版本/语言的兼容性\n```\n\n## 7. Mock 策略\n\n### Mock 时机\n\n```text\n需要Mock的场景：\n├─ 第三方服务：支付、短信、地图\n├─ 不稳定服务：外部依赖\n├─ 开发中服务：接口未就绪\n├─ 特殊场景：异常、超时、限流\n└─ 测试数据：特定数据构造\n```\n\n### Mock 工具\n\n```text\n├─ WireMock：Java生态，功能全面\n├─ MockServer：轻量级，易于使用\n├─ Postman Mock：在线Mock服务\n├─ MSW：前端Mock，拦截请求\n└─ 自建Mock：Python/Node.js脚本\n```\n\n> 能力对照与选型默认值见 [tooling.md](tooling.md)。\n>\n> ⚠️ **Mock 的边界**：Mock 返回的响应是你自己写的，它只能证明\"我方在下游异常时怎么表现\"，\n> 不能替代真实联调，也不能用它验证\"下游返回的数据是否正确\"。\n\n---\n\n## 8. 交付前检查清单\n\n> 逐项打勾，不适用项写\"不适用 + 原因\"，不要静默跳过。\n\n### 功能测试检查\n- [ ] 正向测试：正常输入返回正确结果\n- [ ] 反向测试：异常输入返回正确错误\n- [ ] 边界测试：边界值处理正确\n- [ ] 参数测试：参数组合覆盖\n- [ ] 业务测试：业务规则验证\n\n### 安全测试检查\n- [ ] 认证测试：Token/Session/OAuth\n- [ ] 授权测试：角色权限、资源访问\n- [ ] 注入测试：SQL注入、XSS、命令注入\n- [ ] 数据安全：敏感数据加密、脱敏\n- [ ] 速率限制：限流、防刷\n\n### 异常测试检查\n- [ ] 超时测试：请求超时处理\n- [ ] 重试测试：失败重试机制\n- [ ] 降级测试：服务降级处理\n- [ ] 熔断测试：熔断机制验证\n\n### 性能测试检查\n- [ ] 响应时间：P50/P95/P99\n- [ ] 并发能力：并发请求处理\n- [ ] 吞吐量：TPS/QPS\n- [ ] 稳定性：长时间运行\n\n### 契约测试检查\n- [ ] 消费"},{"path":"references/scenarios.md","content":"# 接口测试场景示例（5 个）\n\n> 本文是 `qa-api-testing` 的**场景示例**。用户描述的具体情况命中下列任一场景时读本文，\n> 对照它确认测试重心是否放对；情况不匹配时按 [`core-flows.md`](core-flows.md) 自行展开。\n> 接口类型速查见 `SKILL.md`，用例起点见 [`test-cases.md`](test-cases.md)。\n\n场景的作用是**校正测试重心**，不是提供用例。\n\n---\n\n## 场景：测试一个第三方支付回调接口（Webhook）\n\n重心在**异常 + 安全 + 契约**。回调是被动触发的接口，你控制不了调用方，只能靠自己防。\n\n- **Mock 策略**：模拟支付网关超时、签名错误、重复回调（Mock 工具见 [`tooling.md`](tooling.md)）\n- **异常测试**：回调超时重试机制、幂等性验证（同一 event_id 连续 2-3 次）\n- **安全测试**：回调签名验证（篡改 body / 伪造签名）、回调地址白名单\n- **契约测试**：请求/响应格式是否与网关文档一致\n\n**别漏**：回调的幂等性是资损直接相关的。同一个 `event_id` 被重放必须只入账一次 ——\n这在 [`test-cases.md`](test-cases.md) 的 Webhook 专项里有现成用例。\n\n---\n\n## 场景：升级版本后部分接口报错\n\n重心切到**兼容性**（占比 5%，但此时是 100% 重心）。\n\n典型触发点：\n\n- 新版本响应中**新增了必填字段**，旧客户端解析失败\n- 接口 URL 路径变更，旧版本路由失效\n- 返回数据格式从 XML 改为 JSON，旧客户端不兼容\n\n**做法**：列出破坏性变更清单 → 逐个对照在用消费者 → 产出兼容性影响分析 + 版本迁移方案。\n\n**注意**：新增字段在 JSON 客户端里通常是安全的（未声明字段被忽略），\n真正危险的是**改类型、删字段、改枚举值**——这三类才是必须发版通知的破坏性变更。\n\n---\n\n## 场景：接口偶发 500 / 超时\n\n重心在**异常 + 可靠性**。先分流再定用例。\n\n- 先分清是**被测接口自身**问题还是**下游依赖**问题（看错误栈最深处的服务名）\n- 下游超时 → 验证降级/熔断/兜底数据是否生效，错误码是否友好\n- 自身问题 → 验证边界入参是否触发了未处理分支\n- 写操作伴随超时 → 幂等性验证（重试是否产生重复副作用）\n\n**做法**：可注入延迟/错误（WireMock 或网关故障注入）→ 复现 → 按上面两条分流 → 出用例。\n\n---\n\n## 场景：GraphQL 接口查询变慢\n\n重心在**性能 + 安全**。GraphQL 的两个固有风险面：\n\n- **查询复杂度**：构造深度嵌套 / 大量别名的 query 触发资源耗尽\n- **N+1 查询**：列表 + 关联对象时 DB 查询数随列表长度线性爆炸\n\n- **性能**：确认是否用了 DataLoader/批量加载；P95 达标且 DB 查询数不随列表长度线性增长\n- **安全**：depth/complexity limit 是否生效\n- 字段级权限：用低权角色查询高权字段（如他人 email），应返回 null 或权限错误\n\n见 [`test-cases.md`](test-cases.md) 的 GraphQL 专项。\n\n---\n\n## 场景：支付订单接口被恶意刷单\n\n重心在**安全 + 性能**。这是资损直接相关的组合场景。\n\n- **越权**：用用户 A 的 token 请求 B 的订单 → 应 403/404，不返回 B 的任何数据\n- **限流**：短时间高频请求触发 429 + Retry-After，且超限请求不产生业务副作用\n- **注入**：金额/数量字段传 SQL/XSS 片段 → 应被参数化或拒绝\n- **批量赋值**：请求体里多塞一个 `amount` 字段 → 不得直接生效\n- **响应最小化**：响应不得包含密码哈希、内部主键、无关用户数据\n\n见 [`test-cases.md`](test-cases.md) 的 OWASP API Top 10 对照表。"},{"path":"references/test-cases.md","content":"# 接口测试六维典型用例库（39 条）\n\n> 本文件是 [SKILL.md](../SKILL.md) 的详细展开：承载 9 列标准格式的六维典型用例库、OWASP API Top 10 对照与协议专项用例（GraphQL/gRPC/WebSocket/SOAP/Webhook）。\n> 各维度的测试范围详图与交付检查清单见 [core-flows.md](core-flows.md)，工具选型见 [tooling.md](tooling.md)，场景示例见 [scenarios.md](scenarios.md)。\n> 用例为可复用模板：实际输出须按被测接口的字段、业务规则改写预置条件、测试步骤与预期结果，不得照抄编号与模块名。\n\n## 分布与加载\n\n39 条按用途分三块，**按需加载，不必通读**：\n\n| 区块 | 条数 | 什么时候读 |\n|------|------|-----------|\n| 六维用例（功能5/安全6/异常4/性能3/契约4/兼容4） | 26 | 任何 REST 接口都要用 |\n| OWASP API Top 10 对照表 | — | 做安全维度时读，避免只测注入而漏接口特有风险 |\n| 协议专项（GraphQL3/gRPC2/WebSocket2/SOAP3/Webhook3） | 13 | **仅当**被测接口是该协议时读 |\n\n## 9 列标准格式与编号规则\n\n| 列 | 填写要求 |\n|----|---------|\n| 用例编号 | `TC_{接口模块缩写}_{功能缩写}_{序号}`，如 `TC_API_LOGIN_001`；本库模板暂用维度缩写（FUNC/SEC/EXC/PERF/PACT/COMPAT） |\n| 测试类型 | 功能测试/安全测试/异常测试/性能测试/契约测试/兼容性测试 |\n| 功能模块 | 接口所属业务模块（如 登录接口/订单接口/支付回调） |\n| 测试标题 | 动词开头，明确验证点 |\n| 用例级别 | P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景） |\n| 预置条件 | 数据+环境+权限+账号状态，具体到可执行 |\n| 测试步骤 | 操作→预期反应，一步一验证，含请求方法/路径/关键参数 |\n| 预期结果 | 可量化、可验证（状态码+响应结构+业务结果+副作用） |\n| 风险等级 | 高/中/低（按资损/安全/可用性影响评定） |\n\n> 覆盖率表述必须标注口径（基于现有接口文档/契约），禁止\"全覆盖/100%\"绝对化；未覆盖接口标注\"未覆盖+原因\"。\n\n## 一、功能测试典型用例（占比 40%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_FUNC_001 | 功能测试 | 通用模板 | 正常请求返回正确数据结构 | P0 | 有效账号与鉴权凭证 | 发送合法请求（含全部必填参数） | 返回 200，响应体结构与契约定义一致，业务数据正确 | 高 |\n| TC_API_FUNC_002 | 功能测试 | 通用模板 | 必填参数缺失返回明确错误 | P0 | 接口文档已定义必填项 | 逐一去掉每个必填参数后请求 | 返回 400 与明确错误码/字段提示，不产生数据变更 | 高 |\n| TC_API_FUNC_003 | 功能测试 | 通用模板 | 参数类型不匹配被拒绝 | P1 | 接口文档已定义字段类型 | 数值字段传字符串、布尔字段传数字等类型错配 | 返回 400 与类型错误提示，服务端无异常堆栈泄露 | 中 |\n| TC_API_FUNC_004 | 功能测试 | 分页查询 | 分页边界值处理正确 | P1 | 测试数据 ≥1 页容量 | 分别请求 size=0/1/最大值/最大值+1、page=0/末页/末页+1 | 边界内正常返回，越界返回空集或明确错误，无 500 | 中 |\n| TC_API_FUNC_005 | 功能测试 | 列表查询 | 多筛选参数组合结果正确 | P1 | 造数覆盖各筛选维度 | 两两组合及全量组合筛选条件 | 结果集与条件交集一致，排序/去重正确 | 中 |\n\n## 二、安全测试典型用例（占比 20%）\n\n| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |\n|---------|---------|---------|---------|---------|---------|---------|---------|---------|\n| TC_API_SEC_001 | 安全测试 | 资源类接口 | 水平越权访问被拒绝（BOLA） | P0 | 用户 A、B 两套有效凭证，资源归属清晰 | 用 A 的 Token 请求 B 的资源 ID | 返回 403/404，不返回 B 的任何数据 | 高 |\n| TC_API_SEC_002 | 安全测试 | 管理类接口 | 垂直越权调用被拒绝（BFLA） | P0 | 普通用户与管理员各一套凭证 | 用普通用户 Token 调用管理员接口 | 返回 403，接口不执行任何管理动作 | 高 |\n| TC_API_SEC_003 | 安全测试 | 认证入口 | 无效/伪造凭证被拒绝 | P0 | 已知合法 Token 及签名算法 | 分别用无 Token、过期 Token、篡改签名请求受保护接口 | 一律返回 401，响应不含内部信息 | 高 |\n| TC_API_SEC_004 | 安全测试 | 输入参数 | 注入攻击被拦截 | P0 | 常规账号 | 在参数中注入 SQL/XSS/命令片段后请求 | 注入被过滤或参数化处理，返回参数错误而非执行结果 | 高 |\n| TC_API_SEC_005 | 安全测试 | 响应数据 | 敏感字段脱敏（防过度暴露） | P0 | 返回体含手机号/身份证/邮箱等字段 | 请求查询类接口并检查响应字段 | 敏感字段掩码显示，不返回密码哈希、内部 ID 等多余字段 | 高 |\n| TC_API_SEC_006 | 安全测试 | 开放接口 | 限流与防刷生效 | P1 | 未鉴权或低权限入口 | 短时间高频请求触发限流阈值 | 返回 429 与 Retry-After，超限请求不产生业务副作用 | 中 |\n\n### OWASP API Top 10（2023）对照\n\n安全维度的用例设计应对照 OWASP API Security Top 10 逐项检查，避免只测注入而漏掉接口特有风险：\n\n| OWASP 条目 | 对应测试点 |\n|-----------|-----------|\n| API1 对象级授权失效（BOLA） | TC_API_SEC_001：遍历资源 ID 验证归属校验 |\n"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility. Skill: qa-api-testing Owner: kokxi Summary: 当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景：接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth by","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1095,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T17:34:32.101Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:39:11.581Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}