【前言】
最近项目主要是进行接口开发,边摸索学习并进行实践。
【探索之旅】
站在巨人的肩膀上,立马在网上搜索一下关于接口的内容;果然出来很多类似何为接口、接口与实现、接口测试等一系列文章,本人参考一些并记录下来方便以后查阅,也相当于重新温习一遍吧。
一、什么是接口
接口测试主要用于外部系统与系统之间以及内部各个子系统 之间的交互点,定义特点的交互点,然后通过这些交互点,通过一些特殊的规则也就是协议,来进行数据之间的交互。
二、接口都有那些类型
1、接口一般分为两种:
a.程序内部的接口:方法与方法之间的交互,模块与模块之间的交互,程序内部抛出的接口,比如csdn有登录模块发帖模块等,你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统调用;
b.程序对外的接口:比如你要从别人的网站或服务器获取资源或信息,别人肯定不会把数据库共享给你,你使用他提供的接口,从而达到数据共享的目的。数据通过开放的互联网传输,如果你制定一个规范接口供其他人调用,需要对外开放接口,包括供外网访问的IP/PORT设置;
2、接口的实现分类
a. http api接口:目前个人常用的是该类接口,基于http协议,通过路径来区分调用的方法,请求报文都是key-value的形式,返回报文一般是json形式,有get和post等请求方法,这也是最常用的两种请求方式;
b. webService接口:WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。以上是网络参考的一段,未使用过不熟悉;
三、接口的本质及其工作原理是什么?
接口你可以简单的理解他就是URL,工作原理就会说URL通过get或者post请求像服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。
四、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
五、为什么要做接口测试?
1、越底层发现bug,它的修复成本是越低的。
2、前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
3、检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
4、如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
5、接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
6、现在很多系统前后端架构是分离的,从安全层面来说:
(1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
(2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
六、怎样做接口测试?
1、由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
2、也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。
七、接口测测试点是什么?
目的:测试接口的正确性和稳定性;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
八、接口测试需要掌握哪些知识?
①了解系统及内部各个组件之间的业务逻辑交互;
②了解接口的I/O(input/output:输入输出);
③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;
⑤数据库基础操作命令(检查数据入库、提取测试数据等);
⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;;
【总结】
接口开发对于开发人员来说并不难,对于http api来说掌握协议的基本内容包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等。回顾了以上内容,加深了对接口的理解以及测试需要注意的内容。对于测试感觉自己还是小白,后续将补充一下接口实现过程。