在线客服
扫描二维码
下载博学谷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 就是起这个作用的。
什么是接口测试?希望大家看完全文,能够对接口测试的概念有进一步的深入了解。如果想对接口测试有一个系统的学习,欢迎大家来博学谷在线学习相关的视频课程!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试开发需要具备哪些测试能力?
软件测试工作在项目中起到了承上启下的作用,会熟练使用测试工具,做工具开发需要具备一定的代码能力。做个测试要求比较高不仅要懂测试还要回开发敲代码,除此之外你需要用户基础测试能力、环境治理能力、专项测试能力、工具开发能力等
10953
2019-06-12 17:50:48
手机软件测试员做啥的?行业分析
手机软件测试员做啥的?作为一个突然出现在大众面前的新兴职业,不少人都对其抱有浓厚兴趣。其实手机软件测试员是一个工作内容很广的职业,大方向主要分为手机软件客户端测试和手机系统的软件测。大白话翻译过来,这个行业就是和手机打交道。那么手机测试具体的工作内容是什么?这个职位对从业者有哪些要求?就让我们一起来看一看。
14554
2019-08-02 10:38:47
做软件测试工资高吗?薪资待遇怎么样?
做软件测试工资高吗?薪资待遇怎么样?初级软件测试月薪大概5K~7K左右。薪资水平高于同龄人1K-2K,2-3年的软件测试月薪在9K~12K左右,工作5年后可以达到年薪20万以上。软件测试人员缺口30万左右,就业竞争压力小于同类其它岗位。
5219
2019-10-07 17:48:05
测试怎么选择抓包软件?
作为一名测试,会抓包是必不可少的,比较主流的抓包工具如:Fiddler、Charles、wireshark等,市面上这么多的抓包工具,各有优势和劣势,没必要全都会使用,找到最适合自己的一款抓包软件即可,该怎么选择呢?下面我就帮大家分析分析。
5246
2020-07-17 11:03:21
Appium 必须掌握的移动端自动化测试框架
企业对移动软件测试的要求越来越高,为了完成大量的高强度移动端的测试需求,掌握高校的移动自动化测试工具则成为每一个软件测试工程师必备的要求。这里为大家详细介绍一下Appium——一款软件测试工程师必须掌握的开源测试自动化框架。
4061
2020-08-24 11:24:41