一、前言
接口测试是测试系统之间接口的一种测试,只要用于检测外部系统和内部系统之间的或者内部的各个子系统之间的交互点。
测试的重点是检测系统之间数据的交换,传递,权限控制,处理次数以及系统之间的逻辑依赖关系等。
二、接口测试简介
1、什么是接口 我们常说的接口一般指两种:
内部接口:开发人员自己开发的接口对自身系统提供数据交互 外部接口:开发系统调用外部的接口(如:微信,支付宝等)
2、接口测试的原理 模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文处理并向客户端返回应答,客户端接口应答的一个过程。
3、接口测试用例设计方法
随着系统复杂度越来越高,接口越来越多,完全覆盖是一件很困难的事情,且实际过程中任意接口的变动都可能导致我们接口测试用例不可用。
所以通常情况下主要测试最外层的两类接口:数据进入系统接口和数据流出系统接口。
接口测试用例设计是需要考虑正例和反例
正例:输入正常的入参,接口返回成功。
反例:包括鉴权反例,参数反例,特殊场景反例,分页场景等。
(反例详情细节请查看接下来的内容)
三、接口测试分类的特点
1、功能分类
1)功能间接口:系统中功能模块间的接口
特点:一般部署在同一个服务器中,并且使用同一个数据库
2)系统间接口:不同系统间的接口
特点:部署在不同服务器上,不仅采用不同的数据库,而且数据库类型还有可能不同
2、类型分类
1)业务接口:系统或功能间有业务逻辑关系
特点:接口间有业务逻辑的上下游关系,可能会涉及跨系统或模块的逻辑控制,以及反向操作。
2)数据接口:接口数据有上下游关系
特点:系统间只存在数据的上下游关系,而且都是进行批量处理的。
3、数据方向分类
1)单向接口:数据在接口中是单向流动的,但根据实现方式分为单项推或单项取
特点:不管是单向推还是单向取,都会有一个FTP地址,存在指定数据文件,并且有定时存取规则,可从日志中查看结果
2)双向接口:两个系统间的数据有往来
特点:可以将不同的数据方向的接口分开分析,当做两个单向接口,注意来往数据通常具有关联性
四、接口测试的工具
目前市面上常用的接口测试工具很多,这里介绍两款最常用的:
1、Jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试
2、Postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
通过笔者调查2000多家公司对于接口工具使用情况来看,目前市面上基于Postman Newman Jenkins Git实现接口自动化测试持续集成的公司占据市面上60%-70%左右。