接口种类
1)系统内部模块之间的接口(模块接口)
2)外部系统与系统之间的接口
APP–支付宝,APP–微信等不同系统间的交互
3)硬件接口
服务器接口,交换机接口,路由器与调制解调器接口,调制解调器与通信平台接口
什么是接口测试?
接口测试是系统组件间的接口一种测试。
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试重点是检查数据交换,传递参数和控制管理过程,以及系统间的相互逻辑依赖关系。
通俗点,通过URL向服务器或者其他模块等传递测试的数据,对比返回的结果是否符合预期结果。
一般来说,测试接口是指测试接口的功能、性能和稳定性测试,以及安全性测试。工作中接口测试基本是针对HTTP或者HTTPS协议的接口测试
为什么要做接口测试?
1.现在推崇测试越早介入测试,它的修复成本越低
2.前端随便变,接口测好了,后端不用变
3.现在很多系统前后端是分离的,从安全层面来看,只依赖前端就不能满足系统的安全性,需要从后端进行控制,这种情况下就要进行接口测试
4.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供很好的解决方案
5.可以发现页面操作上发现不了的bug
接口测试的范围
接口测试是测什么?
1.业务功能(正常场景、异常场景是否实现)
2.业务规则(覆盖度是否全面)
3.参数验证(边界、业务规则是否达到要求)
4.异常场景(重复提交,并发提交,事务中断,多机环境,大数据量测试)
5.性能测试(响应时间,吞吐率。并发数,资源要求)
6.安全测试(权限验证,SQL注入)
重点是:
1.检查接口返回的数据是否与预期一致
2.检查接口的容错性。比如传入一个错误的数据是否有异常处理
3.接口参数的边界值。比如传递的参数足够大或为负数时,接口是否可以正常处理
4.接口的性能,http请求接口大多与后端执行的SQL语句性能、算法等比较相关
5.接口的安全性。外部调用的接口尤为重要
接口测试需要的文档
** 1.接口文档**
规范化的接口文档包含内容如下:
接口名称,接口的解释
请求类型(如get,post)
数据传递格式(如Jason/xml)
前置条件(如是否需要登录)
请求参数(有多少个请求参数,可选还是必选,含义,类型)
返回参数(有什么参数,含义,类型)
错误代码解释
2.需求文档
接口测试用例设计
用例内容主要包括:
1)主要测试功能点(接口根据其提供的功能点的不同进行划分,若接口功能复杂,推荐对接口用例进行结构划分。每个功能点的用例可根据测试环境的不同以及数据的不同进行填充)
2)测试环境(程序内部环境、程序所调用外部接口的环境)
3)测试数据(接口参数数据、用例执行所需系统数据)
4)执行操作(对所测接口的调用)
5)预期结果(注意每个用例均需验证,避免一个用例中重复做相同的验证,提高测试用例的效率)
用例模板:
所属项目、接口所属功能模块、用例ID、接口名称、用例标题、请求方式、请求URL、请求参数、前置条件、预期结果、请求报文、返回报文、测试结果、测试人员
接口测试步骤
1)开发提供接口说明文档
2)测试分析理解接口文档(业务需求,接口的参数类型以及个数)
3)制定接口测试计划,设计接口测试方案以及用例
4)使用工具执行接口测试
5)编写接口测试报告
常用的接口测试工具
Postman
SoapUI
fiddler
Jmeter
LR
Chrome
火狐
接口测试质量评估标准
1)业务功能覆盖是否完整
2)业务规则覆盖是否完整
3)参数验证是否达到要求
4)接口异常场景覆盖是否完整
5)接口覆盖率是否达到要求
6)代码覆盖率是否达到要求
7)性能指标是否满足需求
8)安全指标是否满足要求