在平常开发过程当中,有人作前端开发,有人负责后端开发。接口就是链接先后台,因为前端开发和后端开发的速度可能不同,例如后端开发好了,可是前端没有开发。那么咱们是否是就不须要测试呢?通常咱们大部分人都是作功能测试,不少是界面的功能测试。若是你理解了接口测试,那么你就能够针对接口进行测试。前端
接口:主要是子模块或者子系统间交互并相互做用的部分。
这里说的接口是广义的,客户端与后台服务间的协议。插件间通讯的接口、模块间的接口、再小到一个类提供的方法,也均可以理解为接口。
接口测试:是指针对模块或系统间接口进行的测试。后端
需求讨论,需求评审,场景设计,编写用列,准备数据,执行测试。api
1接口测试的用例设计,主要从输入和接口处理两方面考虑:
1)针对输入,可按照参数类型进行设计;
2)针对接口处理,可按照逻辑进行用例设计;
3)针对输出,可根据结果进行分析设计。
2针对输入设计
对于接口来讲,输入就是入参。常见参数类型有:
1)数值型(int,long,float,double等)
2)字符串类型
3)数组或链表
4)结构体数组
经过工具模拟客户端向服务端发送请求并接受服务器返回的数据来对接口的功能,逻辑业务,异常,安全进行测试。
1)功能测试:测试这个接口的功能是否实现,而且测试这个接口是否按照接口文档来进行开发的(好比说接口文档规定了一些关键字,在开发过程当中可能出现由于关键字不同,致使某些开发的功能异常,还有自动化脚本也会发生异常)
2)逻辑业务,主要指的是一些逻辑业务依赖关系,好比支付宝提交订单的时候要保证你是在登陆的状况下,若是你没有登陆而提交成功了,这就是异常,能够修改请求的cookie来测试。
3)异常测试:参数异常:关键字参数(应用其余的关键字替换进行测试)、参数为空、参数多少(经过添加参数增添个数),参数错误。数据异常:关键字数据(填入的数据用其余的数据语言的数据替用)、数据长度、数据为空、数据错误。
因为咱们项目先后端调用主要是基于http协议的接口,因此测试接口时主要是经过工具或代码模拟http请求的发送与接收,包括自动化测试也是,比代码实现效率高了很多。安全
接口测试经常使用的工具,国内作得比较好的有eolinker和apipost,流程基本都是发送请求后抓取记录请求数据,而后把数据修改并发送到服务端并接收服务器返回的数据及异常来进行验证接口。不一样的是eolinker能够直接导入整个接口项目,apipost须要用fiddler抓取请求数据,才能导入到工具上使用。工具不是固定的,其余开源的工具也能够试试。
Eolinker:www.eolinker.com
Apipost:www.apipost.cn服务器
接口测试常常遇到的bug和问题,以下:
1)传入参数处理不当,致使程序crash;
2)类型溢出,致使数据读出和写入不一致;
3)因对象权限未进行校验,能够访问其余用户敏感信息;
4)状态处理不当,致使逻辑出现错乱;
5)逻辑校验不完善,可利用漏洞获取非正当利益等。cookie