在线客服
扫描二维码
下载博学谷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 就是起这个作用的。
什么是接口测试?希望大家看完全文,能够对接口测试的概念有进一步的深入了解。如果想对接口测试有一个系统的学习,欢迎大家来博学谷在线学习相关的视频课程!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试人员必须掌握的知识--软件测试分类
软件测试是在产品上线前模拟真实使用场景的测试环节,根据产品不同、使用环境不同,软件测试人员需要掌握不同的测试方式。那软件测试到底有哪些途径呢?下面小编为大家分享一下软件测试人员必须掌握的知识--软件测试分类。
8444
2019-08-08 10:23:27
测试工程师培训自学需要什么?
凡是万事,开头都难,测试工程师培训自学需要什么?可想而知测试工程师这个行业本身难度大,所以你是真的有意,大可以先简入繁,制定有序的三阶段,如第一阶段:专业基础课程、第二阶段:专业核心课程、第三阶段:综合实战项目,有目的的去学习,就离你的行业更近一步了。
7265
2020-01-13 17:33:25
自动化测试是什么?为什么要做自动化测试?
自动化测试是什么?相信对软件测试有一定了解的朋友都不会感到陌生。自动化测试正如字面上理解得那样,是一种自动完成测试工作的测试方式。虽然是说的自动化,但是也是需要测试员手动编写代码去完成测试工作。那么,为什么要做自动化测试呢?下面我们来深入了解一下,自动化测试的定义以及其在软件测试工作中无可比拟的优势。
9619
2020-02-10 20:07:09
软件测试按照什么分类?又是怎么分类的?
在实际项目测试过程中,选择并确定测试模型只是我们实施测试的第一步。除此之外,还要弄清楚整个测试过程中需要做哪些类型的测试,并根据不同的测试类型进行相应的测试,比如我们耳熟能详的功能测试、性能测试等,这样我们的测试工作才能有效进行。那么软件测试按照什么分类?又是怎么分类的呢?简单来讲,软件测试可以按照开发阶段、是否查看代码、是否运行、是否手工操作四个方向分类的。
6481
2020-08-06 17:29:53
软件测试工程师需要提升哪些职业技能?
很多只会功能测试的测试从业人员知道自己的技术缺陷,但不知道如何提升或者知道如何提升技能。目前行业内的一个职业发展方向,大体上有两条路径管理路线和技术路线。
5374
2021-11-24 14:02:59
