接口 Bug 大多不在状态码,而在 数据结构不一致、字段类型错配、空值处理与并发副作用。 200 只能证明"通路是通的",证明不了"数据是对的"。
接口类型典型代表测试重点协议特点RESTfulCRUD API、微服务接口状态码、HTTP方法语义、RESTful规范符合度无状态、资源导向、CacheGraphQL聚合查询、数据中台查询复杂度、N+1问题、权限细粒度单一端点、按需查询gRPC内部服务通信、高吞吐场景消息格式、流处理、超时重试Protobuf、双向流、高性能WebSocket实时推送、消息通知连接管理、心跳、消息顺序长连接、全双工、有状态SOAP企业级系统、金融/医疗WSDL契约验证、XML报文结构、WS-SecurityXML、强契约、RPC风格Webhook支付回调、事件通知验签、幂等性、超时重试、回调顺序HTTP回调、被动触发、需主动Mock
复杂度用例数要求说明简单接口接口数×5单一功能接口中等接口接口数×10多参数接口复杂接口接口数×15多依赖/多状态接口
必须覆盖的6个维度:
维度占比说明功能测试40%正向/反向/边界/参数安全测试20%认证/授权/注入异常测试15%超时/重试/降级性能测试10%响应时间/并发契约测试10%接口契约验证兼容性测试5%版本兼容
偏差声明:技能集通用六维标准为 功能/异常/边界/并发/安全/性能(见
docs/standards.md,装整套技能集时可得)。本技能针对 API 测试专项调整:将「边界」归入功能测试维(边界值验证是参数测试的子项)、将「并发」归入性能测试维(并发能力是 API 性能指标),新增「契约测试」与「兼容性测试」两维——这两者是接口测试的核心风险面(契约破裂与版本迁移),在通用功能测试中无独立维度。若与通用六维口径冲突,以本技能的六维为准,并在测试报告中说明。小规模降级:上表占比适用于接口数 ≥ 5 的项目。接口数 < 5 时配额在数学上无法成立(20% 安全测试不足 1 条),此时改为「每维至少 1 条 + 覆盖率标注实际口径」,不要为凑比例编造用例。占比取整规则(先保 P0 所属维 → 向下取整 → 偏差 ≤1 条)见
references/core-flows.md。
需要时才读,不要一上来全读:
什么时候读读哪个展开某一维的测试范围,或交付前逐项自检(32 项)references/core-flows.md(六维详图 + Mock 策略 + 检查清单)生成具体测试用例;被测接口是 GraphQL/gRPC/WebSocket/SOAP/Webhookreferences/test-cases.md(39 条用例 + OWASP API Top 10 对照 + 协议专项)选工具,或要展开某工具能力边界references/tooling.md(默认选型 + 能力矩阵 + 性能工具)用户描述的情况命中特定风险场景references/scenarios.md(5 个场景,校正测试重心)写用例表assets/case-template.md(9 列模板 + 填写要求)
没别的约束就用这套:
场景默认工具理由日常调试与文档Postman / Apifox上手最快,协作与文档一体自动化执行pytest + requests(Python)/ REST Assured(Java)生态成熟、易接 CI契约测试Pact(消费者驱动)/ Schemathesis(OpenAPI 校验)前者管协作方破坏性变更,后者管实现偏离契约第三方与异常 MockWireMock延迟/超时/脏数据开箱即用性能k6(CI 友好);需 GUI 分布式再选 JMeter压测按需引入,非默认动作
明确"单工具全栈"诉求用 Karate。gRPC 用 grpcurl 调试(WireMock 不覆盖流式语义)。 完整能力矩阵与选型避坑见
references/tooling.md。
9 列标准表格:
用例编号测试类型功能模块测试标题用例级别预置条件测试步骤预期结果风险等级TC_API_LOGIN_001功能测试登录接口正确凭证登录成功P0接口文档已提供,账号已就绪发送POST /api/login,参数{user,pass}返回200,响应含token且有效高TC_API_LOGIN_002安全测试登录接口Token伪造被拒绝P0合法Token已知修改Token签名后请求受保护接口返回401,拒绝访问高TC_API_LOGIN_003异常测试登录接口超时重试幂等性P1模拟网关超时请求超时后自动重试2次重试成功且无重复副作用中
上面 3 行只用于展示 每列的写法,不是完整用例集。P0≤20% 等占比约束作用于最终交付的整份用例集, 不要照抄这 3 行的级别分布。完整模板见
assets/case-template.md。
方案产出顺序:接口类型定位 → 六维用例矩阵 → Mock 策略 → 自动化脚本设计 → 安全清单 → 风险提示。
|(会破坏表格与 CSV)TC_{模块}_{功能}_{序号}references/core-flows.md 第 8 节)机器校验:
bash
python scripts/validate_testcase_table.py <用例文件>
覆盖列数、编号唯一性、级别/风险取值、占比、覆盖率措辞。报错先修再交付。