一、什么是接口?
接口其实就是服务器端定义的一堆函数或方法集合,接口调用其实就是在调用这堆函数或方法。
由于接口是在两台电脑之间远程去调用这些方法,所以不能直接通过函数名来进行调用。不同电脑之间如果要进行通信,必须通过特定的网络协议来实现,所以接口调用必须借助于网络协议来进行调用,所以学习接口测试必须先熟悉网络协议。
二、什么是接口测试?
接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
系统内部的接口调用相当于是函数调用,系统外部的接口大部分都是基于http协议进行调用。简单来说,接口测试就是为了校验接口回发的响应数据与预期结果是否一致。
三、接口设计文档
接口设计文档主要包含以下几个部分:
- 接口说明
- 请求方式
- 请求URL
- 请求参数
- 返回数据
- 返回示例
四、接口测试用例的设计方法
接口测试的原理是模拟客户端向服务器发送请求,服务器接收请求报文后对相应的报文做处理并向客户端返回响应数据,客户端接收应答的过程。
接口测试采用的方法其实与黑盒测试一致,甚至可以把接口测试理解为没有界面的功能测试。只不过接口测试的关注点主要在请求和响应上。另外,还包括接口的安全、接口的性能等。常用的用例设计方法有等价类法、边界值法等。
一般测试用例的设计要从单接口参数的校验到整个业务功能点的验证,还可以验证一些安全性和异常情况。
五、接口测试用例的设计点
1)参数设计
- 参数必填项校验
- 组合可选参数
- 枚举变量,覆盖所有枚举值
- 参数的顺序
- 参数的类型
- 参数有值、null值、空值校验
- 参数边界值校验(包括参数的最大值、最小值,字符串长度等)
- 参数包含特殊字符
2)业务功能设计
- 多接口组合测试,验证某个业务功能点。
3)安全性设计
- 传输数据是否加密。
- 身份权限验证(比如:普通用户是否在操作管理员功能)
- 密码规则是否符合需求或者相关法规要求。
4)异常场景
- 重复提交
- 不存在的参数值
六、接口测试的要点总结
1)检查接口返回的数据结果与预期是否一致。
2)接口测试结果通常需要通过sql语句查询数据库对比确认。
3)接口容错性,比如传递错误的数据类型时,是否可以处理。
4)接口参数边界值。比如:传递的参数足够大或为负数时,接口是否可以正常处理。
5)接口的性能,http请求接口大多与后端执行的sql语句性能、算法等比较相关。
6)接口的安全性,外部调用的接口尤为重要,一般每个接口都要进行鉴权验证。
七、接口测试的流程
1)需求分析(产品经理的需求文档)
2)接口文档解析(开发编写的接口API文档)
3)设计接口测试用例(测试用例模板:接口测试-测试用例模板资源-CSDN文库)
4)准备接口测试脚本(可通过Python语言编写)
5)执行测试用例,跟踪缺陷
6)生成接口测试报告