在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
接口测试可以说是软件测试中的一个必须掌握的知识点。在测试行业蓬勃发展,从业者要求越来越高的当下,只有满足企业级的接口自动化测试工作,才能在测试行业走得更远。可是许多初学者连“什么是接口测试”,这一问题都没办法回答清楚,下面我们来一起看看接口测试的概念详解。

1、什么是接口?
接口很标准的官方解释是,API即应用程序接口。你可以认为API是一个软件组件、或是一个Web服务与外界进行交互的接口。这里的接口可以和API画等号。作为初学者,或者对接口了解很少的朋友,这个解释其实并不好理解。那如何才能向大家解释清楚接口呢?如何由表及里地让大家理解接口的运转机制呢?下面小编将用逐层叠加的方式来解析接口的概念。
(1)从功能层面来说
从功能层面来说,可以将接口简单理解为一个黑盒子。其上游负责输入参数,下游负责输出参数,类似于平时的黑盒测试对象。这里以一个例子来说明:
在输入URL地址并按 Enter键后,页面实际发送了一次接口请求。具体的请求是:接口地址
(https.//www.v2ex.com/api/nodes/show.json?)+请求参数及其值(nane= python)。后面这个"name= python”就是输入数据;返回的数据就是浏览器展示的一个JSON格式数据。至于这个数据是怎么来的,目前还是看不到的。所以这就像黑盒子一样,输入不同的数据会得到不同的返回结果。这里读者也可以试试其他的参效,看看返回的数据容是什么样子的,比如:
https: //www.v2ex.com/api/nodes/show.json?name=java
https: //www.v2ex.com/api/nodes/show.ison?name=测试
(2)从数据流层面来说
从数据流层面来说,可以将接口理解为连接前端和数据库等后端的纽带,用于在二者之间传递数据、处理数据。在现在主流的框架结构中,后端一般都使用数据库来存储数据,而前端不能直接去数据库中操作数据,一方面不安全,另一方面效率低。要完成数据的交互,必然要有中间的纽带,那就是接口。所以,从这个层面来说,接口主要负责前端页面和后端数据库之间的数据传输和处理。
(3)从编程层面来说
从编程层面来说,可以将接口理解为业务逻辑处理方法的外在表现形式。它可以是一个类下面的方法,也可以是一个函数。从数据流层面来理解,接口会按照“业务逻辑”处理数据。那么业务逻辑在哪里呢?很显然,是在程序代码的函数或方法中。函数或方法按照逻辑返回不同的数据,这便是接口在不同参数下的不同返回信息。所以,从“白盒操作”角度来看,接口测试是直接对函数或方法的代码层进行测试。
2、接口的分类
(1) 系统之间的接口
用得最多的是第三方接口,比如要做一个系统来展示每天的天气,那天气数据是怎么得到的呢?不可能自己去预测天气,有免费的第三方接口可使用,只需按照接口协议调用想要的天气数据。当然,这是调用系统外部的数据。在系统内部也存在这种调用关系,道理类似。
(2) 服务之间的接口
目前主流的系统架构为应用层、服务层和数据层。应用层:负责展示数据和发起数据请求。比如,12306 购票网站上显示的敷新购买操作等。服务层:为应用层提供数据处理。数据层:用来存储数据,有关系型数据库等。
各层之间的调用过程是怎样的呢?例如,在 12306 网站上买票,首先用户需要选择票,然后通过单击“确定”按钮下单。用户下单就是调用了应用层的接口,假设叫“购买接口”, 购买接口会去数据层的数据库中进行查询、新增购买记录等操作。成功完成后,会返回一个成功标志和其他信息。最后,应用层接收到这个接口返回的数据,将买票结果展现给用户。
在这个过程中,各层之间的交互就是通过接口。应用层和服务层之间是通过 HTTP接口,服务层和数据层主要通过DAO (Data Access Object) 访问数据。用Python 操作 MySQL 数据库时,使用的PyMySQL 就是起这个作用的。
什么是接口测试?希望大家看完全文,能够对接口测试的概念有进一步的深入了解。如果想对接口测试有一个系统的学习,欢迎大家来博学谷在线学习相关的视频课程!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试工作中有哪些常用的工具?
软件测试工作中有哪些常用的工具?一般来说软件测试工具有开源测试管理工具、开源功能自动化测试工具、开源性能自动化测试工具、Quality Center、QuickTest Professional、LoadRunner等。
9595
2019-05-15 17:43:21
软件测试与软件开发之间的关系
软件开发是生产制造软件;软件测试是验证开发出来软件的质量。类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。对于软件测试与软件开发过程之间的关系,套用固定的模型不是聪明之举。
16372
2019-07-02 18:33:03
简述MySQL数据库的特性和优势
众所周知,MySQL数据库速度快、可靠性强,而且极具适应性。因此可以说,MySQL是管理内容的最好选择,尤其是对于在不需要事务化处理的情况下。本文就和大家一起来认识一下MySQL数据库,了解它的特性和优势。
8718
2019-10-11 10:22:12
软件测试工程师需要提升哪些职业技能?
很多只会功能测试的测试从业人员知道自己的技术缺陷,但不知道如何提升或者知道如何提升技能。目前行业内的一个职业发展方向,大体上有两条路径管理路线和技术路线。
4811
2021-11-24 14:02:59
新手怎么学习软件测试?从哪里开始学?
新手怎么学习软件测试?从哪里开始学?软件测试岗位不仅需要编程的熟练度,还需要对业务的熟练、协作等软实力。做软件测试工程师要学功能测试、接口测试、性能测试、自动化测试等相关内容。
4032
2022-04-26 10:40:38
