3.1.2 接口测试类型、分类
自动化发展现状是金字塔的模型
现阶段中最核心的自动化测试将是接口自动化
接口概念
前端与后端之间的数据通讯的桥梁;其本质就是数据的输入以及输出的过程;
接口的概念从IT的角度出发,主要是子模块或者子系统间交互并相互作用的部分。虽然接口的形式各有不同,但是从测试角度来说,需要测试的内容大致是相同的,功能,性能,安全。
接口测试的概念
测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点。
原理:接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
目的:测试接口的正确性和稳定性(持续集成是接口测试的核心)。
优点:
-
节约时间,缩短项目时间
-
提高工作效率
-
提高系统的健壮性
常用的工具:
•1)LoadRunner:一款商业性能测试工具,用来做接口测试,很好很强大•2)Jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soaprequest应对测试
•3)postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
•4)SoapUI:开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。
接口测试思维方式
单一接口测试:主要测试的是输入输出值,一些具有业务意义的值需要特别测试(例如,1和2分别代表两个测试场景,那么就不能够把他们看成是等价类,需要分开测试
组合接口测试:主要是通过组合多个单一接口,来测试一个业务场景
Example:测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。
测试:搜索商品--> 选中商品 --> 添加进购物车 --> 提交订单 -->支付
(提交订单时还涉及到地址的选取等)
[注:涉及到如果使用从cookie或者session在本例中的区别:如果使用cookie加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是session,购物车里面的东西就一直存在,即:cookie是本机作用的,session不作用本机]
结构检查:
(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据
(2)字段名称是否正确等
测试的依据:
接口文档包含如下内容:
1、接口概述:
1)接口名称
2)接口功能
3)接口类别
4)提交者、提交时间、需求来源及时间要求
2、HTTP请求方式
3、认证说明
4、请求限制说明
5、请求参数说明
参数名、是否必选、类型、取值范围、描述(非必选项的默认值)
6、相关约束
7、注意事项
8、调用示例
9、返回说明
1)返回数据格式
2)返回结果示例
3)错误代码及返回说明
接口类型
按结构划分:
系统内部之间的接口(系统与子系统之间)、模块与模块之间的接口、系统与第三方接口(支付接口、身份校验信息接口等)
按协议划分:
http类型接口:采用的是http协议(应用层)进行通讯;在进行发送请求时,仅会响应一次,响应的数据格式通常是键值对格式(json格式数据)
WebService类型接口:采用的是soap协议(应用层)进行通讯,其soap协议实际就是基于http协议进行封装的;其发送请求和响应请求的数据格式都是xml格式(两种格式:WSDL、WADL)
WindowSocket类型接口:该接口类型是基于传输层进行封装所得到的socket抽象层,如果客户端与服务器一旦进行建立连接后,则客户端与服务器之间既可以实现相互发送请求和响应的过程;(多应用C/S架构的软件)
接口管理
a.传统的接口api都是使用word文档管理
b.接口管理平台(postman、eolinker、confulence、easyapi......)
c.使用公司自研的工具进行管理
关注下面公众号,每天学习进步一点点