什么是接口
首先,让我们看看接口的概念。接口一词的英文原文是interface,原本就是一个计算机科学词汇。韦伯词典中的解释:
(n.) A boundary across which two independent systems meet and act on or communicate with each other. In computer technology, there are several types of interfaces.
• user interface – the keyboard, mouse, menus of a computer system. The user interface allows the user to communicate with the operating system. Also see GUI.
• software interface – the languages and codes that the applications use to communicate with each other and with the hardware.
• hardware interface – the wires, plugs and sockets that hardware devices use to communicate with each other.
(v.) To connect with or interact with by means of an interface.
其中名词形式的解释为:“独立系统之间的边界,信息跨越边界传送”。接口可以有多种类型:
- 用户界面:人机界面(user interface,UI)
- 软件接口:代码之间、软件硬件之间的接口(software interface)
- 硬件接口:线缆、插头、插座等等
如果按动词解释,则是指通过接口进行连接与信息交换的行为。一般1和2都会视为软件系统的接口。
举个生活中的例子来理解下什么是接口。
相信大家都去过麦当劳,我们仔细观察下它是如何准备你的订单商品的。如果你的订单上有一个汉堡,工作人员会先找汉堡的原材料,如面包片、肉饼和生菜等,按照规定的步骤将这些原材料组合成一个汉堡,然后送到你手中;如果你的订单上是一份薯条,那么工作人员则会进入另一个工作流程,先找到薯条原材料和炸薯条的锅,把薯条炸好后,送到你的面前。
在上一个例子中,汉堡以及薯条的原料就是接口中必要的条件入参,也就是接口的特定输入;制作汉堡或者烹饪薯条的过程,就是接口内部处理的逻辑;送到你面前的汉堡或者是薯条就是接口的处理结果和特定输出,即返回参数。
我们可以简单理解,接口就是有特定输入和特定输出的一套逻辑处理单元,其本质就是一种锲约,遵循这样一种形式:在开发前期,约定接口会接受什么数据,在处理完成之后,它又会返回什么样的数据。
接口的分类
接口可以根据以下几个大类进行划分:
- 按照语言划分
Python、Java、C、C++等等
- 按照协议划分
HTTP、FTP、TCP\UDP\IP、Dubbo等协议接口
- 按照内外系统划分
内部系统接口和外部系统接口(又叫第三方接口)
- 按照技术应用划分
HTTP协议、Web Service、RESTful、RPC远程过程调用型、Web Socket、FTP、Dubbo协议等等
接口访问形式
接口访问形式可以分为公开接口和私有接口。其中公开接口为不需要认证用户信息,加密信息直接访问的,而私有接口则是需要验证用户会话状态,甚至需要对数据进行加密、解密和签名才能访问。
什么是接口测试
接口测试官方解释是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点联系,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。简单来说接口测试就是检查数据的交换,传递和控制管理的过程。
我们还是以麦当劳的汉堡为例,接口测试就是要要验证制作汉堡的过程是否正确。即既要验证输入了汉堡的原材料,经过制作汉堡的处理流程,最后交付给你的是一个汉堡;又要验证在输入的汉堡原材料不对或者完全不全的情况下,经过制作汉堡的处理流程后,不能交付给你一个汉堡。
接口测试为什么重要
测试人员都听过这样的一句话:测试要尽早介入,测试进行的越早,软件开发的成本就越低,就越能更好的保证软件质量。”
但是如何尽早的进入测试呢?作为测试人员,你一定听说过分层测试,即著名的金字塔模型。金字塔模型将测试流程自下而上拆分成三个层次:单元测试,接口测试以及界面测试。每个阶段所占面积的大小,代表了他们在测试过程中投入和工作量的占比以及运行效率。
但随着敏捷开发以及项目交付工期的压力,开发人员对于单元测试的编写逐渐的减少。为了保证产品的质量,会采用提高接口测试的比重,来弥补单元测试的不足。故金字塔模型就逐渐演变成了菱形模型,即遵循“重量级 API 测试,轻量级 GUI 测试,轻量级单元测试”的原则。
接口测试的优势
做接口测试有什么好处和优越性呢?有以下几个方面来看
- 接口测试更容易和其他自动化系统相结合
- 相当于界面测试,接口测试可以更早开始,也可以测试一些界面测试无法测试范围,因此它使“测试更早投入”这句话变成了现实
- 接口测试还可以保障系统的鲁棒性(Robust的音译,也就是健壮和强壮的意思),使得被测系统更健壮。
总结
主要是讲解了什么是接口,接口测试在测试什么以及接口为什么重要。主要是需要记住以下几点
- 接口测试是通过设计输入和预期输出来完成测试验证,故测试用例设计等方法在接口测试中亦可以通用
- 接口测试是一个技术知识和业务知识相结合的工作,可以更好的提升自己的技术水平
- 接口测试也是功能测试,与界面测试不同之处,仅仅和我们交互的,不再是开发工程师设计的界面,而是测试工具或者代码。
复制代码
说明:部分内容来自《极客时间》接口测试实战课的内容整理