1.1 概念(记住)
接口: 不同单元(或模块)进行数据交互的一个通道,还是一套规范,一套标准。
举例: USB接口、网线接口、耳机、插座 ...
-
项目开发中,未采用规范化接口时的缺点
1. 研发标准不统一,团队磨合难度高
2. 研发周期长
3. 可扩展性差
-
项目目开发中,采用规范化接口带来的优点
1. 统一设计标准,更易于团队磨合
2. 缩短研发周期
3. 扩展性灵活
4. 前后端都可以使用自己熟悉的技术,只需保证最终产出符合规范即可(提高编程效率)
1.3 实现
怎么使用规范化接口?
-
编写一个声明接口规范的文档(API 文档 == Application Program Interface 应用程序编程接口)
-
前端和后端在实现时,都按照该文档的约束编写各自代码
2.1 概念
接口测试: 测试后端实现是否符合接口规范
因为后端需要使用编程语言编写业务逻辑,涉及到一些算法实现,易产生 BUG
2.2 作用(了解)
-
对应场景1: 提高测试效率
-
对应场景2: 更精准的定位 BUG
-
对应场景3: 发现程序中的安全隐患
2.3 实现(重点)
流 程: 首先,通过 URL 定位接口资源;然后,提交测试数据;最后,查看响应结果是否符合预期
三要素:
要素1: 怎么定位接口?(查阅API文档,文档中有详细说明)
要素2: 怎么提交测试数据?(提交格式需要查阅 API文档,需要设计用例)
要素3: 对比响应结果(状态码 + 响应体)
2.4 接口测试分类(记住)
-
WEB接口测试(BS架构)
-
服务器接口测试 === 自实现接口
-
外部(第三方)接口测试 === 调用第三方的接口(比如: 支付宝支付、微信支付、天气预报....)
-
-
模块接口测试(CS架构)
3.1 项目简介
-
学生信息管理系统的功能是收集学生的个人信息,以便向老师提供每个学生在校或毕业生学籍的情况,还可以让学生用自己的学号去查看自己在校期间的表现。
-
该系统中主要有三大模块实现,分别是:学院模块、班级模块与学生模块,三大模块分别实现了学院、班级与学生信息增删改查(CRUD)管理.
等等等....
后期,测试过程中,我们经常需要将接口相应的结果与数据库中的数据做比对,接下来我们再介绍一下,如何查看项目的数据库数据。
RESTful 架构风格: 前辈们根据自身的经验教训,总结的一套约束 API 文档编写规范的标准
5.2 作用
保证文档的易读性
5.3 补充知识:三要素(记住)
前提:
-
程序的主要功能点实现: 增删改查
-
每种操作都涉及到三要素
-
RESTFul 架构风格约束了每种操作的三要素实现
三要素:
-
要素1: 怎么定位接口资源
-
URL:
http://127.0.0.1:8000/api/departments/
http: 协议 (http、https、ftp、ftps、SMTP、POP3.....)
127.0.0.1: IP地址(定位被访问的服务器)
8000: 端口号(服务器的每一个程序都有一个独一无二的端口号,可以通过端口号定位被访问的程序)
/api/departments/: 资源路径,可以映射程序中的某个功能点
-
Method:
GET: 查
POST: 增
PUT: 改
DELETE: 删
比较 GET 和 POST 区别?
-
安全: POST 隐式提交,比 GET 更安全
-
效率: GET 请求效率更高
-
功能: POST 功能更强大一些,提交的数据没有长度限制
-
-
-
要素2: 怎么提交测试数据
-
QueryString = 键值对
格式: 键1=值1& 键2=值2& 键3=值3& 键4=值4.....
-
JSON
对象格式
{
"键1":"值1",
"键2":"值2",
"键3":"值4",
....
}
数组格式
[值1,值2,值3 .....]
二者比较,JSON 的可描述性更强,且JSON可以使用专门的工具解析:
-
username=huluwa&password=jiuyeye&aihao=tuhuo&aihao=tushui&aihao=yinshen
-
{
"username":"huluwa",
"password":"jiuyeye",
"aihao":["tuhuo","tushui","yinshen"]
}
-
-
要素3: 怎么对比响应结果
-
关注点1: 状态码
1XX: 杜绝出现,请求正常,但是服务器不给响应
2XX: 响应正常 200 201 204 ....
3XX: 重定向 302
4XX: 浏览器异常 404 400 415
5XX: 服务器异常 500
-
关注点2: 响应体
格式1: HTML 源码
格式2: JSON 数据
-
5.4 实现(记住)
操作 | 要素1 | 要素2 | 要素3 |
---|---|---|---|
增 | URL + POST | 键值对|JSON | 201 + 新增后的数据 |
删 | URL + DELETE | 键值对 | 204 + 无 |
改 | URL + PUT | 键值对|JSON | 201(200) + 修改后的数据 |
查 | URL + GET | 键值对 | 200 + 多条或单条数据 |
PS: RESTful 架构是约束API文档编写的一套软性而非硬性的规范