一、什么是接口?
API(Application Programming Interface, 应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。--百度百科
(1)程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口。比如淘宝,要先登录才能看下单,订单和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。
(2)系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物时可选择第三方支付方法(微信、淘宝、银行卡),但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。
二、接口测试价值
1、越底层发现bug,它的修复成本是越低的
2、前端随便变,接口测好了,后端不用变
3、检查系统的安全性、稳定性, 比如 边界参数,防刷
4、检查系统的异常处理能力
5、可以发现很多页面操作发现不了的问题
三、必备知识(从前端走向后端)
1、常用工具:postman、jmeter
2、基础知识:协议类型、常见状态码、get/post区别、URL构成、报文构成、通讯原理
3、常见的字符类型,比如:string、int、long、float、double, char、varchar、text、datatime等
4、数据库操作:增删改查
5、linux基础:了解模块组成架构、会分析日志
6、语言基础:能看懂接口实现,会review代码逻辑和架构设计,能定位bug到代码行;
四 、常用接口类型和工具
1、http api接口:走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串。
常用方法:Put,Delete、post,get,即增删改查。
常用工具:postman、jmeter。
- Get,它用于获取信息,它只是获取、查询数据,它不会修改服务器上的数据;
- Post,它是可以向服务器发送修改请求,从而修改服务器的;
- Delete 删除数据。可以通过Get/Post来实现。用的不多。
- Put,增加、放置数据,可以通过Get/Post来实现。用的不多。
2、webService接口:走soap协议,通过http传输,请求报文和返回报文都是xml格式的,可以用soupui、jmeter等工具进行测试。
五、基础知识
【GET和POST的区别】
(1)GET使用URL或Cookie传参。而POST将数据放在BODY中。
(2)GET的URL会有长度上的限制,则POST的数据则可以非常大。
(3)POST比GET安全,数据在地址栏上不可见。
(4)一般get请求用来获取数据,post请求用来发送数据。
【http接口组成】
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
六、接口测试流程
1、需求文档-PM:充分理解需求,设想有哪些接口
2、接口文档-RD:把需求点与接口定义建立对应关系
3、接口测试 用例设计
4、接口测试用例评审:与RD沟通确认 接口数、接口含义、入参和返回数据含义、状态码含义、业务场景等等;
5、部署后端代码,保证系统接口可用性
6、接口测试执行,bug收录
7、输出接口测试报告
七.反思与改进
踩过的坑
1、开发未及时更新接口文档,延误测试进度
2、接口文档参数说明不明确,导致理解有偏差
3、有些接口需要传token,测试用户身份太多易混淆,导致token传错,响应结果与实际结果不一致
4、使用postman时,URL,参数不小心输错,导致获取不到响应结果
5、测试地址未切换,导致测试结果有偏差
需要改进的点
1、结合业务实际场景进行测试
2、接口复杂时与开发及时沟通了解参数意义
3、需求不明确的地方与产品及时确认
4、需要了解代码架构,接口入口与脉络
5、关注返回参数的同时也要关注接口响应时间