接口异常用例是什么
接口异常用例覆盖:缺失必填、类型错误、超长与特殊字符、越界数值、未知字段、重复提交、并发修改、鉴权过期与伪造。异常输入应有确定的错误码与可解析的错误体;把错误响应当契约的一部分来测试,客户端才能可靠地消费并给出用户提示。
基本信息
| 输入类型 | 缺失、类型错误、超长、越界、特殊字符、未知字段 |
|---|---|
| 并发与重复 | 重复提交、并发修改同一资源 |
| 鉴权类 | 令牌缺失、过期、伪造 |
| 预期产出 | 确定的 HTTP 状态码加机器可读错误体 |
| 契约冻结 | 错误体结构(code、message、details)与成功体同等对待 |
异常请求示例
异常请求示例
curl -sS -X POST https://api.example.com/v1/users \
-H 'Content-Type: application/json' \
-d '{}' # 缺少必填字段
# 观察要点:状态码、错误体结构、字段级说明
curl -sS -i -X POST https://api.example.com/v1/users \
-H 'Content-Type: application/json' \
-d '{"name": 123}' # 类型错误典型使用场景
- 联调阶段:把异常响应提前测一遍,前后端尽早对齐错误体。
- 安全边界:伪造与越权输入验证服务端兜底,前端校验不算数。
- 契约测试:错误码与错误体结构纳入接口契约与自动化套件。
- 支付与订单:重复提交、超时重试的确定反馈。
- 网关差异:线上网关的体积、超时限制在本轮用例中覆盖。
- 回归沉淀:每个线上异常修复都回填一条负向用例。
输入类型与预期
| 输入 | 预期 |
|---|---|
| 缺失必填 | 400 或 422,且带字段级说明 |
| 类型错误 | 400 或 422 |
| 超长字符串 | 400 或按约定截断策略 |
| 未知字段 | 按接口约定:忽略或拒绝 |
| 重复提交 | 幂等键存在时返回首次结果 |
| 伪造令牌 | 401 且不泄露校验细节 |
错误体结构(code、message、details)应作为契约的一部分冻结,客户端依赖它做提示。
断言分三层:状态码、业务错误码、字段级信息;只测第一层会让前端拿不到可用提示。
越权与注入类输入若返回 500,通常意味着输入校验缺失:500 不是「拒绝成功」,是服务器未兜底。