什么是接口测试
要理解什么是接口测试,首先我们需要理解什么是“接口”。
接口的英文是interface ,接口的原意是 某个对象和外界交互的部分。
所以这个概念本身是非常广泛的。
拿软件来说,有很多接口,就是说有很多种外界交互的部分,常见的有下面几种
用户界面接口
这是大家最熟悉的,
是应用和用户交互的部分。
可能是图形化的界面,叫做图形用户接口 (英文简称为GUI),像右上
也可能是非图形的 命令行接口, 这个也是用户接口 UI, 可以叫command UI,像左上
这种接口:
被测系统交互的外界对象是用户!! 通过终端 包括 显示设备和输入设备进行交互
这些接口的测试一般是人直接操作终端,主要是眼睛看显示器输出,用键盘进行输入。
消息接口
这种接口 软件系统交互的 外界对象是其它程序软件,通过网络消息这种渠道进行交互
使用的网络消息,是制定的协议,比如
diameter,radius(比如:电信鉴权网关),
Web Service,REST API
等等。
这种接口 测试一般是 使用 测试工具, 收发相应的消息
编程接口
这种接口的 被测系统交互的外界对象 也是应用程序, 通过 被测系统提供的编程接口调用 被测系统提供的服务 ,这个编程接口通常是以库的形式提供给外界应用程序。
比如: 为了更方便的使用七牛云OSS, 他们提供了开发包,对其 OSS 接口封装了编程语言库。
详细的文档可以 查看如下网址
https://developer.qiniu.com/sdk#official-sdk
这种接口:
被测系统交互的外界对象是其它应用程序,通过编程接口这种渠道进行交互
这些接口的测试 主要通过 编写代码调用这些接口函数或者对象的方法、
我们这里只列出了典型的几种接口,还有其他种类的 软件系统 接口,就不一一列举了。
综上可知:
对某个我们要测试的系统来说,上述所有和外界交互的部分都是接口,接口这个词的概念非常的宽广。
那么对上述接口的测试都可以称之为接口测试。
泛义上讲,所有的测试都可以称之为接口测试。
UI测试是测试UI接口
消息测试是测试消息接口
编程库的开发包测试 是测试编程接口
Web API 接口
目前移动互联网时代,移动互联应用渗入到我们生活的方方面面。比如 共享单车,滴滴打车,移动支付,社交平台。。。。
而这些形形色色的互联网服务,都是基于Web技术,所以互联网产品对外提供的服务接口,我们通常称之为Web 服务接口,或者 web service 接口。
由于这种服务接口基本上都是基于HTTP的, 客户端发出一个HTTP请求给 服务端,服务端就返回一个HTTP相应。
这种发出请求,得到响应的 方式非常像 编程中的函数调用,也被称为API 调用,所以我们有时把Web服务接口称之为 Web API。
实际上我们很多人经常挂在嘴边的说的"接口测试",或者"API测试",其实就是web服务端提供的 访问接口 的测试,简称 web 服务接口测试,或者 Web API测试。
目前web API接口主要包括两种:
- 基于SOAP的 Web Service 接口
- REST 接口
基于SOAP的 Web Service 接口,比较复杂,已经被业界所摒弃,目前使用的越来越少,我们可以忽略它,
目前使用的比较多的主要是 REST API 接口
REST 并不是非常具体的设计规范,而是一些设计上的风格约束。
REST有如下这些设计风格约束
- 架构采用客户端和服务器结构:
- 连接协议具有无状态性:确保系统的横向拓展能力
- 能够利用Cache机制增进性能
- 层次化的系统
- 每个资源都有其标志(URI), 服务请求中标志要操作的资源的URI
- 通过操作资源的表现形式 (representation) 操作资源
初学者基本都不能 搞懂 上面话的意思,不要紧。
目前的现状是, 目前对REST API 接口的测试, 其实只要有HTTP的背景知识就足够了。
关于你是否能真正理解上面的REST风格约束的意思,对测试人员来说,其实并不重要。
后面我们这系列讲解使用的被测试系统,就是一个服务系统,提供了类似 WEB API 的接口。
我们就通过这个接口对其进行测试。