什么是接口
应用程序编程接口,也成为API。简单的讲,就是某 一个功能的实现或展示基于对于另一个功能的调用,那么调用与被调用之间的连接点就是接口。常见接口大致可以分为如下几种:
- 系统与系统之间的调用,比如使用淘宝支付会调用支付宝接口。
- 上层服务对下层服务的调用,比如应用层会调用服务层提供的接口。
- 服务之间的调用,比如注册用户时,会先调用用户查询服务,查看该用户是否已经注册。
总体来说,不管哪种类型,只要把被测接口当做服务方,把测试工具当做客户方,我们的目的就是通过客户方验证服务方是否满足了它提供的功能。
什么是接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要验证数据的交换、传递、控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试的流程
接口测试的流程与功能测试的流程类似,如下:
- 需求分析:需求确定后,研发会根据功能需求进行接口设计,产出接口说明文档,这个过程可以结合对用户、功能需求理解,及接口服务的应用场景给出接口设计的相关建议。
- 测试设计:主要结合接口服务应用场景及功能需求,从功能、 可靠性、性能、安全几个方面考虑 ,可以参考本文最后一个章节。
- 测试用例编写:注意区别接口测试用例和功能测试用例,接口用例是根据不同接口参数的组合与期望结果,对接口返回值、数据库进行校验。
- 测试用例评审
- 测试执行
- 持续集成
接口测试质量评估标准
- 业务功能覆盖是否完整
- 业务规则覆盖是否完整
- 参数验证是否达到要求(边界、业务规则)
- 接口异常场景覆盖是否完整
- 性能指标是否满足要求
- 安全指标是否满足要求
接口测试的测试点
功能性测试
1.参数值
- 有无null边界范围枚举特殊字
- 参数前后的空格
- 错误/无效数据参数
- 默认值大小写
- 参数顺序个数类型
2.参数属性
- 参数顺序个数类型
- 参数长度:null 0, max. max+1
3.参数组合
4. 接口内部逻辑
- 正常分支
- 错误分支,响应错误码
- 异常分支,请求超时、响应超时、响应体格式错误
可靠性测试
- 幕等:重复提交,变量不变,结果应当一致
- 环境异常:网络问题、磁盘问题、数据库异常等情况请求体大
- 大数据量
性能测试
1.接口性能测试
- QPS/TPS
- 并发数
- 响应时间
- 吞吐量
- 大数据量背景
- 服务器资源使用率(CPU、内存、IO)
2.接口稳定性测试
安全测试
1.传输安全,不应暴露明文信息
2.访问安全
3.接口是否防止恶意请求