接口测试主要是测试系统 组件间接口的一种测试,主要用于测试服务器与前端(web浏览器,APP)之间的数据交互接口。 测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
接口测试的对象:服务器接口
API指的是一组预先定义好的函数,来让系统或外部的其他组件可以执行它内部实现的功能,但又无须访问源代码或者理解其内部逻辑。
在需求开发过程中,前后端分离开发,两端的研发人员会共同定义好接口,编写接口文档,此后的开发过程中需要遵循这份协议文档。
因此接口测试也是一种黑盒测试,测试人员需要根据接口文档来对服务器Api进行测试,来检测约定的功能是否正确实现,是否有对异常情况做容错处理。
而接口文档的编写是依据前后端数据传输的协议——Http协议进行的。
读懂API文档
对于测试人员,准备接口测试所需要的文档有产品需求文档+API文档。
需求文档用于梳理接口为何这么设计、是否合理;
针对单个接口,接口文档用于获取:接口描述,请求说明,返回说明。
接口测试的模板
接口的构成
http — 普通的http请求,默认端口为80
https — 加密的http请求,传输数据更加安全,默认端口为443
ftp — 文件传输协议,主要用来传输文件,默认端口为21
请求IP:就是指提供接口的系统所部署的服务器地址,可以是直接的IP地址,也可以是域名
请求端口:如果不填端口,都是默认端口,否则需要填写端口号
接口路径:指系统提供的接口在什么位置
接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数,
接口测试质量评估标准
业务功能覆盖是否完整
业务规则覆盖是否完整
参数验证是否达到要求(边界、业务规则)
接口异常场景覆盖是否完整
接口覆盖率是否达到要求
代码覆盖率是否达到要求
性能指标是否满足要求
安全指标是否满足要求
接口测试经常遇到的bug
- 传入参数处理不当,导致程序crash
- 类型溢出,导致数据读出和写入不一致
- 因对象权限未进行校验,可以访问其他用户敏感信息
- 状态处理不当,导致逻辑出现错乱
- 逻辑校验不完善,可利用漏洞获取非正当利益等