1、接口的概念
接口又叫API,全称application programming interface
:应用程序接口(规范),也就是我们经常会听说Web接口,APP接口。
详细说明:
APP是一种基于C/S架构的应用程序,如抖音、微信等。完整的体验是基于APP客户端和后台云服务端共同作用的结果。
客户端和服务端的数据传递,也就是指客户端向服务端发送请求,服务端响应客户端的过程。
这一系列的通讯都是基于web协议通讯构成的,在利用web协议通讯的时候,企业内通常都会规定客户端和服务端的数据交换格式,这种格式可以是企业内部规定的,也可以是使用webservice国际通用标准,这样一来客户端和服务端就使用同一套标准进行接口间的通讯。
同样的道理,web接口也是如此,web应用通常是B/S架构,客户端是我们熟悉的浏览器。
总结概括:接口就是客户端与服务端之间的标准,或者是共同遵守的一套数据交互的规范。(一般由项目负责人/架构师来制定接口)
2、为什么要使用接口
在项目中未采用接口时:
-
研发标准不统一,团队磨合难度高。
-
研发周期长。
-
可扩展性差。
在项目中使用接口的优点:
-
统一设计标准。
-
扩展性灵活。
-
前后端开发相对独立,前后端都可以使用自己熟悉的技术。
如果你想学习接口测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
Postman接口测试使用教程和接口自动化测试项目实战你要的都有_哔哩哔哩_bilibiliPostman接口测试使用教程和接口自动化测试项目实战你要的都有共计32条视频,包括:1.精通Postman之课程大纲和效果展示、2.精通Postman之接口测试简介和分类、3.精通Postman之接口测试流程和用例设计等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV11K4y1J7sh/?spm_id_from=333.337.search-card.all.click
3、接口文档介绍
接口规范以接口文档的形式进行体现,我们做接口测试也是依据接口文档进行测试。
在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。
接口文档基本形式如下:
名称 | 添加发布会 |
---|---|
描述 | 添加发布会 |
URL | http://127.0.0.1:8000/api/add_event/ |
调用方式 | POST |
请求参数 | eid # 发布会 idname # 发布会标题 limit # 限制人数 status # 状态 address # 地址 start_time # 发布会时间 |
返回值 | {‘status’:200,‘message’:’add event success’} |
状态码 | 每一个状态码要有一条用例。{‘status’:10021,’message’:’parameter error’} {‘status’:10022,’message’:’event id already exists’} {'status':10023,'message':'event name already exists'} {'status':200,'message':'add event success'} |
说明 | 说明参数传入方式,签名校验方式,加密方式等等。 |
4、接口文档要素
一般情况下,开发前就有相应的接口文档,接口文档的形式有很多种,以excel表格或者Word文档或者使用接口管理工具(如swagger等)输出,接口文档包含以下主要的内容:
(1) 接口名称
接口详情 | 说明 |
---|---|
接口名称 | 添加发布会 |
接口描述 | 调用该接接口会创建一个发布会 |
(2)接口URL
名称 | 说明 |
---|---|
请求协议 | http或者https |
接口URL | 127.0.0.1:8000/api/add_event/ |
请求方式 | 新增(post) 修改(put) 删除(delete) 获取(get)等 |
提示:接口URL也可以形成URI的形式,就是把服务器地址省略掉,例如:/api/add_event/
(3)请求参数
字段 | 说明 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
eid | 发布会 | Number | 是 | 默认:10001 |
idname | 发布会标题 | String | 是 | 默认:填写发布会标题 |
start_time | 发布会时间 | Date | 是 | 格式:2018-02-06 10:30:00 |
提示:一般数据类型为
String、Number、Object、Array、Date
几种类型。
(4)返回值
例如:{‘status’:200,‘message’:’add event success’}
,还可以有其他所需字段。
字段 | 说明 | 类型 | 是否必须返回 | 备注 |
---|---|---|---|---|
code | 接口状态码 | Number | 是 | 成功:200 失败:其他状态码 |
message | 接口信息 | String | 是 | 成功:sucess 失败:提示信息 |
提示:
正常请求参数返回值(必有)。 错误请求参数返回值(看公司要求)。
五、接口测试概念 (重点)
接口测试是测试系统组件间接口的一种测试,它界于单元测试与系统测试中间。
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
换句话说,接口测试就是开发人员把这个接口实现了,我们需要去验证这个接口的实现是否正确。但这是一个后台的功能,不想让前端人员介入,因为让前端人员介入的话会比较麻烦。
总结概括:接口测试就是代替前端验证服务端程序是否正确。
六、接口测试原理 (重点)
-
测试人员借助工具模拟客户端向服务器端发送请求。
-
服务器端接受请求后,对请求进行相应的处理并向客户端响应结果。
-
客户端接收响应数据后,测试人员对结果进行判断的一个过程。
接口测试是黑盒测试。作为黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑是否正确。
3、做接口测试的依据是什么
- 需求。熟悉实际的业务需求可以更好的帮我们设计测试用例,准备测试数据。
- 接口文档。根据接口说明文档开发接口测试脚本,执行脚本。
- 原型图。可以根据原型图更好的判断实际测试数据,是否符合接口之间的逻辑关系。
4、接口测试分类 (重要)
-
Web接口测试:
-
服务器接口测试:测试自己公司实现的接口(工作中的重点)
同一个系统内部不同模块、不同服务之间的调用。
比如:目前主流的系统架构为应用层、服务层和数据层。应用层:负责展示数据和发起数据请求。服务层:为应用层提供数据处理。数据层:用来存储数据,有关系型数据库等,各层之间的交互就是通过服务器接口。
-
第三方接口测试:测试别人公司实现的接口(不同系统甚至不同公司之间的接口调用)
在项目中会用到很多第三方接口,比如要做一个系统来展示每天的天气,那天气数据是怎么得到的呢?不可能自己去预测天气,有免费的第三方接口可使用,只需按照接口协议调用想要的天气数据即可。当然这是调用系统外部的数据。
还比如第三方登录时调用外部公司的微博登录、微信登录接口等。
-
-
模块接口测试:就是测试一个类中的方法,或者说模块中的一个接口。
一个程序内部接口的测试,模块接口测试是单元测试的基础,它主要测试模块的调用与返回。
5、接口测试的特点
- 无UI界面:在做接口测试的时候是无法看到应用界面的。
- 无UI交互操作:既然无UI页面,也就不可能在UI上进行点点点操作了。
- 不同于手工测试:接口自动化测试可用于持续集成,接口覆盖率也比较高。
- 基于协议:接口测试是带访问协议的测试,需要测试协议和协议中的内容是否正确。
- 数据验证:检查数据的交换,传递和控制管理过程,还包括处理的次数,业务逻辑是否正确。
- 格式校验:请求参数和返回值的数据格式校验,包括参数的缺省,返回的数据是否完全等。
参考:
- https://www.boxuegu.com/news/3876.html