实现接口测试
接口测试是检查程序各部分之间的交互点,从无测试到手工测试、借助脚本或工具实现自动化测试以及测试平台的构建,接口测试近几年发展非常迅速,许多企业也都开始重视接口测试,因此,接口测试也成了测试人员的必备技能。
本章首先为读者介绍接口自动化测试的概念,然后用一个示例进行实战。
1、接口测试简介
测试人员经常说的接口是指程序前后端的接口,它是基于某种协议的一种接口。
测试人员向服务器发送一个请求,服务器接收到请求并做处理,然后返回一个响应结果,最后通过对响应结果判断是否符合预期,从而验证接口的功能是否正确。
1.1概念
接口(Application Programming Interface)简称API,用于程序不同部分之间的数据交互。
接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
随着IT行业的分工越来越细化,很多项目都采用前后端分离的开发模式,而这种开发模式有一个很关键的点,即是数据交互-接口。
对接口的测试就是为了保障数据交互的稳定和安全。再就是产品是不断地发展的,内部复杂度也在不断上升,模块之间的依赖、模块与第三方之间的关联也越来越多,如果单纯地依靠页面功能测试,是很难确保数据的安全和各种场景的覆盖的。
而进行接口测试,则可以绕过前端的限制,更大程度地覆盖使用场景,提高代码覆盖率,且接口测试很容易实现自动化,相对UI自动化也比较稳定,可以支持后端开发的快速迭代。因此,进行接口测试是非常有价值且必要的。
接口有很多类型,例如计算机USB接口、操作系统接口、命令行参数接口、不同协议类型接口等,每一种接口的测试方法、测试出发点、使用场景都不相同,因此接口测试是一种宽泛的说法。
但由于软件测试人员接触和测试最多的是HTTP协议类型的接口,于是普遍的认识是:接口测试就是测试HTTP协议类型的接口。
-
1.2常见接口协议
接口是基于某种协议开发的,符合一定的协议规范,下面介绍一些常见的接口协议。
-
1.2.1 HTTP(S)
HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是互联网的基础协议,它是基于TCP协议的应用层传输协议,用于客户端和服务器之间的通信。
请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。
HTTP是面向连接的,客户端首先通过网络与服务器建立连接,然后客户端向服务器提出请求,服务器接到请求后做出相应应答,最后服务器关闭连接。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)是以安全为目标的HTTP通道,在HTTP协议的基础上加入了SSL层。
SSL是安全套接层,主要用于Web的安全传输协议,它是通过证书认证来确保客户端和服务器之间的通信数据是加密安全的。
-
1.2.2 WebService
WebService不是一种协议,是基于HTTP/HTTPS的一种技术方式或风格,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可相互交换数据或集成。
WebService是一种跨编程语言和跨操作系统平台的远程调用技术,换言之,无论你使用何种语言、何种平台或内部采用什么协议,都可以相互交换数据。
-
1.2.3 REST
REST(Representational State Transfer)即表现层状态转化,是一种软件架构风格。
表现层指的是将资源具体呈现出来的形式,客户端想要操作服务器,必须通过某种手段让服务器端发生状态转化,而这种转化是建立在表现层之上的,所以实际就是表现层状态转化。
在具体的HTTP协议里,客户端用到的手段是4个表示操作方式的动词:GET、POST、PUT、DELETE,它们分别对应4种基本操作:GET用来获取资源、POST用来新建资源(也可以用于更新资源)、PUT用来更新资源、DELETE用来删除资源。
-
1.2.4 SOAP
SOAP(Simple Object Access Protocol)是一种简单的基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。
它由四部分组成:
-
SOAP信封(定义了一个框架,该框架描述了消息中的内容,包括消息的内容、发送者、接收者、处理者以及如何处理这些消息);
-
SOAP编码规则(定义了一种系列化机制,用于交换应用程序所定义的数据类型的实例);
-
SOAP RPC表示(定义了用于表示远程过程调用和应答协定);
-
SOAP绑定(定义了一种使用底层传输协议来完成在节点间交换SOAP信封的约定)。
-
1.2.5 FTP
FTP(File Transfer Protocol)即文件传输协议,是用于在网络上进行文件传输的一套标准协议,目标是提高文件的共享性和可靠高效地传送数据。
任何操作系统上的程序只要符合 FTP 协议,就可以互相传输数据。
-
1.2.6. POP3
POP3(Post Office Protocol 3)是邮局协议的第3个版本,主要用于支持使用客户端远程管理在服务器上的电子邮件。
POP3允许用户从服务器上把邮件存储到本地主机上,同时删除保存在邮件服务器上的邮件。
-
1.2.7 SMTP
SMTP(Simple Mail Transfer Protocol)是一种提供可靠且有效的电子邮件传输的协议,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!