首页/开发/软件测试速查/接口异常与边界用例

接口异常与边界用例

接口异常用例:缺失必填、类型错误、超长与特殊字符、越界数值、未知字段、重复提交、并发修改、鉴权过期与伪造;异常输入应有确定的错误码与可解析的错误体。

软件测试速查开发更新于 2026-10-13

接口异常用例是什么

接口异常用例覆盖:缺失必填、类型错误、超长与特殊字符、越界数值、未知字段、重复提交、并发修改、鉴权过期与伪造。异常输入应有确定的错误码与可解析的错误体;把错误响应当契约的一部分来测试,客户端才能可靠地消费并给出用户提示。

基本信息

输入类型缺失、类型错误、超长、越界、特殊字符、未知字段
并发与重复重复提交、并发修改同一资源
鉴权类令牌缺失、过期、伪造
预期产出确定的 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 不是「拒绝成功」,是服务器未兜底。

易错点

  • 只断言 HTTP 状态码不校验错误体结构,前端无法消费
  • 未知字段处理策略未与实现方确认,断言写错方向
  • 负向用例只在开发环境跑,线上网关层差异(超时、体积限制)未覆盖
  • 并发用例互相覆盖数据,把业务错误误判为竞态缺陷
  • 错误码在不同接口间不统一,客户端只能按文案字符串做匹配

数据来源与参考

  • RFC 9110(客户端错误语义)
  • OWASP API Security Top 10(输入与授权校验相关条目)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌