什么是接口
我们工作中通常理解的接口都默认为软件接口。
软件接口是涉及到软件程序和其他系统进行交互沟通的时候的接口。
它可以分为两类:
◆ 用户和程序之间的中介
◆ 程序与程序之间的中介
用户和程序之间的中介被称为用户界面或者用户接口,也就是UI(User Interface)。
所以UI也是一种接口。
程序与程序之间的中介被称为应用程序编程接口,英文名是API(Application Programming Interface)。电商API接口主要是通过商品ID获取电商平台上的商品详情页SKU价格等商品数据,以帮助我们在数据调用领域工作更加的智能化,数据化。
传输数据的通道 主要包括:
1.内部接口:同一个系统中模块与模块间的接口,前端后端接口;
2.外部接口:跨系统平台与平台间的对接。
02
二、什么是接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试一般以用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。接口测试在淘宝的应用是一个自下而上的发展过程。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为搞复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
03
三、常见接口类型/协议
接口协议(Interface protocol)指的是需要进行信息交换的接口间需要遵从的通信方式和要求。接口协议的种类非常多。接口协议不仅要规定物理层的通信,还需要规定语法层和语义层的要求。
1.HTTP类型/协议:HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。在数据处理上效率比较高。
常用的请求方法有:GET, POST 和 HEAD方法等。(PUT、DELETE、OPTIONS、TRACE、CONNECT)
2.Webservice类型/协议:通过soap协议来获取数据,处理比http协议复杂的数据类型。本质上也是http协议。
注:Restful是一种接口规范,而不是接口协议,restful接口规范中也会用到http协议。
04
四、接口测试原理
原理:模拟客户端向服务器发送请求报文,服务器接受请求报文后对相应的报文做处理并向客户端返回应答,客户端再接受应答的一个过程。
接口测试是黑盒测试。作为黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑。
05
五、GET和POST的区别
Get和Post的区别本质是什么,这也是面试经常问到的问题。
1.http 协议最常见的两种方法 :
GET 和 POST 请求缓存:GET 会被缓存,而 post 不会。
收藏书签:GET 可以,而 POST 不能。
保留浏览器历史记录:GET 可以,而 POST 不能。
用处:get 常用于取回数据,post 用于提交数据。
安全性:post 比 get 安全。
请求参数:querystring 是 url 的一部分 get、post 都可以带上。get 的 querystring (仅支持 urlencode 编码),post 的参数是放在 body(支持多种编码)
请求参数长度限制:get 请求长度最多 1024kb,post 对请求数据没有限制
2.Get 和 Post 都是浏览器向网页服务器提交数据的方法。
Get 把要提交的数据编码在url中,比如/workinfo.jsp/mianshiti?key1=value1&key2=value2 中就编码了键值对 key1,value1 和 key2,value2。受限于 url 的长度限制,Get 方法能传输的数据有限(不同浏览器对 url 长度限制不同,比如微软 IE 设为 2048)。
Post 把要提交的数据放在请求的 body 中,而不会显示在 url 中,因此,也没有数据 大小的限制。由于 Get 把数据编码在 URL 中,所以这些变量显示在浏览器的地址栏,也会被记录在 服务器端的日志中。所以 Post 方法更加安全。
06
六、接口测试流程
1.获取接口需求
2.开发提供接口文档
3.通过抓包工具或者F12获取,并找开发确认
4.编写接口测试用例
07
七、如何编写接口测试用例
1.接口的正常调用,检查接口返回响应结果信息和接口文档一致
2.接口的异常验证,包括长度,类型,必填项等异常,同步考虑边界值,数据类型
3.业务规则验证
4.接口的安全性验证,对于用户的敏感信息(密码,身份证号)进行加密
5.接口的性能验证,接口处理数据的时间也是测试的一个方面。牵扯到算法与代码的优化。
08
八、接口测试工具
接口测试的工具很多,比如 Postman、RESTClient、Jmeter、Loadrunner、SoapUI等,首推的测试工具是Postman和Jmeter,其他工具暂不介绍。
1.Postman:很好用的一款API接口功能测试工具,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。
2.Jmeter:是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比Loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。