RESTful API接口测试的20个必测项Checklist。建议每个接口至少覆盖:正常、边界、异常、无权限、重复提交、并发六类场景:
资源URL与路由:URL 是否资源化、名词复数、层级清晰;路径参数正确、缺失、非法时是否返回 404 或 400;尾部斜杠、大小写、URL 编码是否处理一致。
HTTP方法语义:GET 查询、POST 创建、PUT 全量更新、PATCH 局部更新、DELETE 删除是否符合语义;禁止用 GET 执行写操作。
HTTP状态码:200、201、204、400、401、403、404、405、409、415、422、429、500 等是否准确;避免所有情况都返回 200。
请求头与内容协商:Content-Type、Accept、Authorization、User-Agent 等是否正确校验;不支持类型返回 415 或 406;JSON、XML 协商是否符合预期。
路径参数与查询参数:必填、类型、长度、格式、枚举、默认值、重复参数、数组参数、非法字符是否校验;空值和缺失是否区分。
请求体与Schema校验:JSON 结构、字段类型、嵌套对象、数组、必填字段、额外字段、null、空字符串、超长字段是否符合契约。
响应体与Schema校验:返回字段完整、类型正确、命名一致;空数据、null、枚举、时间格式、金额精度、ID 类型是否正确;是否泄露内部字段。
认证Authentication:无 token、错误 token、过期 token、篡改 token、刷新 token 是否返回 401;登录、登出、续期是否正常。
授权Authorization:不同角色权限隔离;普通用户访问管理员接口返回 403;水平越权、垂直越权、IDOR 是否防护。
CRUD与数据一致性:创建后能查询、更新后生效、删除后不可查;关联数据、事务、回滚、软删除、唯一约束是否符合预期。
幂等性:GET、PUT、DELETE 多次调用结果一致;POST 重复提交是否产生重复数据;是否支持幂等键或去重机制。
分页、排序、过滤、搜索:page、size、limit、offset 边界;超大分页、负数、越界;排序字段合法性与多字段排序;过滤组合、空结果、特殊字符。
错误处理与异常响应:错误码、错误信息、错误详情结构统一;不返回堆栈、SQL、内部路径;参数错误与业务错误可区分。
边界与特殊字符:空值、超长、Unicode、emoji、中文、特殊符号、时间边界、数值最大最小、浮点精度、大整数是否处理正确。
安全测试:SQL 注入、NoSQL 注入、XSS、SSRF、命令注入、敏感信息脱敏、HTTPS、CORS 配置、JWT 算法与签名、防重放。
缓存与条件请求:Cache-Control、ETag、Last-Modified、If-None-Match、If-Modified-Since 是否正确;命中缓存返回 304。
CORS与跨域预检:OPTIONS 预检是否正常;Access-Control-Allow-Origin、Methods、Headers、Credentials 是否按环境配置,避免滥用星号。
限流、超时、重试、熔断:超过阈值返回 429;超时时间合理;重试是否导致重复写;熔断降级、服务不可用时的错误响应是否友好。
性能与并发:响应时间、吞吐量、错误率;并发创建、更新、删除是否丢数据、超卖、死锁;连接池、慢查询、大响应体是否可接受。
版本管理与文档契约一致性:URL 或 Header 版本策略;新旧版本兼容与弃用;OpenAPI、Swagger 文档与实际接口一致;示例请求可运行。
建议:先把1到13项纳入接口自动化回归;14到20项按安全、性能、兼容性专项测试执行。每个接口至少覆盖正常、边界、异常、权限、重复提交和并发场景。