14. 接口测试应该怎么测才算完整
接口测试不是只发请求看返回。
真正的接口测试要覆盖参数校验、业务逻辑、数据一致性、权限安全、异常场景等多个层面。
一、接口测试的核心目标
接口测试主要验证:
- 接口功能是否正确;
- 参数校验是否完整;
- 业务逻辑是否符合预期;
- 数据是否正确落库;
- 权限和安全是否到位;
- 异常场景是否有处理;
- 性能是否可接受。
只看返回成功是不够的。
二、先确认接口文档
接口测试前要先确认:
- 接口地址;
- 请求方法;
- 请求参数;
- 响应结构;
- 业务规则;
- 权限要求;
- 异常情况。
如果文档不清楚,要和开发确认后再测。
三、正常场景要先验证
正常场景是接口的基本功能。
要验证:
- 正确参数是否返回成功;
- 响应数据结构是否符合文档;
- 响应字段是否完整;
- 数据是否正确落库;
- 关联数据是否正确更新。
比如新增订单接口:
- 参数正确时是否返回订单 ID;
- 订单表是否新增记录;
- 库存是否扣减;
- 优惠券是否标记已使用。
四、参数校验要覆盖边界和异常
参数校验是接口安全的基础。
要测试:
- 必填参数为空;
- 参数类型错误;
- 参数格式错误;
- 参数超长;
- 参数超出范围;
- 参数组合冲突;
- 重复参数;
- 非预期参数。
比如用户注册接口:
- 手机号为空;
- 手机号格式错误;
- 手机号已存在;
- 密码为空;
- 密码过短或过长;
- 邮箱格式错误。
五、业务逻辑要结合规则测试
接口不只是传参数,还有业务规则。
要测试:
- 业务规则是否正确;
- 状态流转是否正确;
- 数量金额是否正确;
- 关联数据是否正确;
- 并发操作是否正常;
- 重复操作是否幂等。
比如优惠券使用接口:
- 满足门槛才能用;
- 指定品类才能用;
- 不可叠加时是否拦截;
- 过期券是否可用;
- 已用券是否可用;
- 并发使用是否正确。
六、权限和安全要专门测试
接口权限测试要覆盖:
- 未登录是否可调用;
- 无权限用户是否可调用;
- 参数篡改是否可绕过;
- 越权操作是否被拦截;
- 敏感数据是否暴露;
- 接口是否可被滥用。
比如删除订单接口:
- 未登录是否被拦截;
- 普通用户是否可删除他人订单;
- 管理员是否可删除任意订单。
七、异常场景要主动补充
接口异常场景往往比正常场景更容易出问题。
要测试:
- 网络超时;
- 服务不可用;
- 数据库连接失败;
- 第三方接口失败;
- 数据不存在;
- 状态不允许;
- 并发冲突;
- 重复提交。
比如支付接口:
- 支付成功;
- 支付失败;
- 用户取消;
- 支付超时;
- 重复支付。
八、数据一致性要验证
接口操作后要验证数据库:
- 数据是否正确新增;
- 数据是否正确更新;
- 数据是否正确删除;
- 状态字段是否正确;
- 金额数量是否正确;
- 关联表是否一致;
- 时间戳是否正确。
比如订单支付成功后:
- 订单表状态是否更新;
- 支付流水表是否生成;
- 库存表是否扣减;
- 优惠券表状态是否更新。
九、性能要有基础意识
接口性能测试可以关注:
- 响应时间是否正常;
- 大数据量请求是否超时;
- 并发请求是否正常;
- 频繁请求是否被限制。
专业性能测试可以由性能测试团队负责,但功能测试要有基础意识。
十、面试回答模板
可以这样回答:
接口测试我会先确认接口文档,然后从正常场景、参数校验、业务逻辑、权限安全、异常场景和数据一致性几个方面展开。正常场景验证正确参数返回成功、数据落库、关联更新;参数校验覆盖必填为空、类型错误、格式错误、超长、超出范围、组合冲突;业务逻辑结合规则测试门槛、状态、金额、并发、幂等;权限安全测未登录、无权限、越权、参数篡改;异常场景测超时、服务不可用、数据不存在、状态不允许、并发冲突;数据一致性验证数据库记录是否正确;性能关注响应时间、并发、大数据量。
这个回答能体现你有完整的接口测试思路。
十一、下一步建议
建议你把一个熟悉的接口按上面维度重新整理:
- 接口文档要点;
- 正常场景清单;
- 参数校验清单;
- 业务逻辑规则;
- 权限安全场景;
- 异常场景清单;
- 数据验证点。
