没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
接口测试
1 相关概念
1.1 引言
为什么要学习接口测试
场景
某软件提供注册功能, 并且已经通过了功能测试, 但是项目上线一段时间后, 却发现被注册了大量垃圾用
户, 比如: 有的账号或密码超长/ 为空 或 格式错误, 请问为什么?
...
要解决上述问题,必须得学习新知识点:接口测试
1.2 接口介绍
1.2.1 概念
接口: 不同主体之间进行通信的管道, 它应具有一套规范/ 标准
接口有硬件和软件之分
硬件接口举例: 比如 USB 接口, 网线接口 ...
当然了,我们实现接口测试时,一般关注软件层面的接口:
在我们的软件系统之中,前端 与 后端 是两大重要的组成部分
前端主要用于与用户交互, 用户通过前端可以提交数据并查看响应的结果
后端主要处理用户提交的数据产生响应
比如: 搜索引擎搜索关键字实现,常见的注册操作....
显然, 前端 与 后端 二者之间是有数据交互的,这契合接口定义的前半部分内容,那怎么理解
它应具有一套规范或标准呢?
比如访问百度, 搜索 12306:
https://www.baidu.com/s?ie=utf-8&newi=1&mod=1&isbd=1&isid=dbb7757000030268&wd=
12306&rsv_spt=1&rsv_iqid=0xb6d6829700096da7&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-
8&rqlang=cn&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&oq=112%2526lt%253B06&rsv_t=f
41bTkj%2FWB5QzAB9XV%2B43RGSvCE4tiRysCOWZe9%2B3qJhkpJ8RF918SXTmanO1JzDS6k8
&inputT=7087&rsv_sug3=15&rsv_sug1=12&rsv_sug7=100&rsv_pq=dbb7757000030268&pref
ixsug=12%2526lt%253B06&rsp=0&rsv_sug4=7899&bs=112306&rsv_sid=1446_21091_30186_
30201_29568_29221_26350
可以看出:
1. 访问路径包括 /s , 建立通信管道
2. 参数中包括 wd=12306 符合标准
1.2.2 作用
作用: 数据交互
采用接口的优点:
前后端都可以使用自己熟悉的技术
缩短研发周期
保证代码安全
扩展性好
1.2.3 实现
接口是如何实现的?
编码
怎样预定义接口?
落实到文档,该文档称之为 API(Application Program Interface)文档
前端和后端编码时,需要参考 API 文档
举例
1. 编写登录接口的 API 文档
2. 前端和后端按照规范实现
前端:
后端:
获得用户提交的数据
查数据库, 根据查询结果响应数据
成功 True
失败 False
描述: 登录接口
URL: http://www.xxx.com/login POST
提交数据:
账号 username
密码 password
响应结果:
成功 True
失败 False
<form action="http://www.xxx.com/login" method="POST">
账号: <input type="text" name="username" />
密码: <input type="password" name="password" />
</form>
1.2.4 分类
这里只讨论软件方面的接口
按照客户端划分
web 接口
App 接口
小程序 接口
PC客户端 接口
...
按照协议划分
http 接口
socket 接口
webservice 接口
...
按开发人员归属划分
自研接口
第三方接口
按作用划分
用于编程设计, 例如 Java 中的 Interface
用于前后端数据交互, 这类接口才是我们最需要了解的
...
1.3 接口测试介绍
1.3.1 概念
接口测试: 绕过前端,直接测试后端实现是否符合规范
1.3.2 作用
接口测试主要作用如下:
1. 定位 BUG
2. 发现程序中的安全隐患
3. 提高测试效率
1.3.3 实现
实现流程:
绕过前端
首先,通过 URL 定位接口资源
然后,提交测试数据
最后,判断响应结果是否符合预期
从上述流程中,我们可以抽取接口测试的三要素:
1. 定位接口资源
2. 提交测试数据
3. 判断响应结果
1.3.4 分类
按执行的阶段划分
联调前的接口测试
系统测试后的接口测试
按测试目的进行划分
接口功能测试
接口回归测试
也可以有接口冒烟测试
按是否自动化运行划分
接口测试
接口自动化测试
...
1.4 总结
回归引言场景
回顾基本概念
2 RESTful 架构风格
2.1 引言
1. API文档所描述的接口一般都有几百上千个,少则几十页,多则几百页,在API文档的编写过程中,
出现一个较为严峻的问题: 一千个读者有一千个哈姆雷特,同理,对于 API文档编写而言,一千个作
者也有一千个哈姆雷特,同一个项目,不同的作者写出的API文档可能有天壤之别
2. API文档的特点:一人编写,多人阅读,前端、后端和我们测试工作中都需要参考此文档,这意味
着,文档的 易读性强,可以大大提高工作效率,反之,则可能延长开发周期。那么怎样才能够保证
API 文档的易读性呢?
......
为保证API文档的易读性,我们的前辈们,早早的就制定了一些 API 文档的编写规范,如:RESTful
架构风格
2.2 概述
定义
RESTful 架构是一种接口设计架构风格,约束了接口实现的规范
作用
提高文档的易读性
2.3 三要素
2.3.1 总体介绍
接口测试三要素是什么
1. 定位接口资源
2. 提交测试数据
3. 获取响应结果
接口测试要关注三要素,在 API 文档中关于接口的描述也是围绕三要素展开的, 例如:
2.3.2 要素一 定位接口资源
组成
URL(统一资源定位符)
举例: http://127.0.0.1:8081/hello
http://www.baidu.com/s
协议: 常见的有 http/ https /ftp/ ftps 等
IP: 服务器 IP 地址
端口: http一般默认80, https 一般默认443
路径: 一个资源路径映射一个接口实现
请求方式 (数据的提交方式)
常见实现有: GET 、 POST、 PUT、 DELETE 分别对应 查、增、改、删 四种操作
补充
GET 和 POST 二者比较有什么区别?
提交方式不同 (GET提交的数据显示在地址栏,而 POST 隐式的提交数据,后者更安全)
可提交的数据量不同 (GET提交的数据量有限制,而 POST 无限制)
执行效率不同 (GET 的执行效率比 POST 稍高)
2.3.3 要素二 提交测试数据
两种常见提交格式
键值对格式
JSON (类似于 Python 的字典) 格式
举例
键值对
演示:
描述: 实现用户的登录功能
流程:
1、登录表单的数据提交到服务器: http://www.xxx.com/login, 请求方式 POST
2、提交的数据格式: username=xxxx&password=yyyy
3、响应结果:
200 {“msg”:"登录成功"}
200 {"msg":"登录失败"}
剩余38页未读,继续阅读
资源评论
のDemon
- 粉丝: 158
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功