1.0 接口以及接口测试
1.1接口
1.1.1 硬件接口
USB接口
1.1.2 软件接口
第三方支付接口
1.1.3 接口
系统或者组件之间的交互点,数据交互的通道
本质:这些交互点,实现的是数据的交互
1.1.4 案例
1.2 接口类型
按照范围划分
1.2.1 系统之间的接口
1.2.2 程序内部的接口
程序的内部接口:方法和方法之间,模块和模块之间都有交互
1.3 接口测试
1.3.1 定义
对系统或者组件之间的接口进行测试,主要是检验数据的交换,传递和管理控制过程,以及相互逻辑依赖的关系
1.3.2 接口测试的管理
模拟客户端向服务器发送请求,服务器接收请求之后进行相应的业务处理,并且向客户端返回响应,检验响应是否符号预期。
1.3.3 接口测试特点
接口测试先从用户角度对系统进行全面检测
测试可以提前介入,提早发现bug,符合质量控制前移的概念
可以发现一些页面操作发现不了的问题
接口测试高收益低成本,可以实现接口自动化
1.3.4 实现方式
接口测试工具:fiddler postman jmeter
代码实现:Python+requests
1.3.5 接口自动化测试
1.3.5.1 定义
程序或者工具代替人工自动的完成对接口的测试的一种过程
1.4 接口规范
-
前后端不分离
-
前后端分离
json :
[{'msg_code':10001,'msg':'请求成功'}]
<红楼梦>
作者:曹雪芹
男主:贾宝玉
女主:林黛玉
时间:清代
json
{'author':'cao','boy':'jia','girl':'lin','time':'qing'}
xml
<book>
<author>cao</author>
<boy>jia</boy>
<girl>lin</girl>
<time>qing</time>
</book>
1.4.1 案例 用户模块对于用户数据的操作
-
注册
-
后端角度
-
传统风格
操作 | URL | 请求类型 | 响应数据 | 状态码 |
---|---|---|---|---|
展示对应的注册页面 | http://www.tp_shop.cn/Home/Index/index.html | get | HTML页面 | 200 |
用户进行数据填充,然后提交给后端服务器进行数据存储 | http://www.tp_shop.cn/Home/user/handler_reg | post | 无 | 200 |
用户将需要修改的数据提交后端,后端先找到数据,再进行修改 | http://www.tp_shop.cn/Home/user/change_info或者http://www.tp_shop.cn/Home/user/change_info?user_id=1 | post | 200 | |
用户注销信息,后端先找到数据,然后进行物理删除 | http://www.tp_shop.cn/Home/user/delete_info | get | 200 |
-
restful风格
操作 | URL | 请求类型 | 响应数据 | 状态码 |
---|---|---|---|---|
展示用户注册页面 | http://www.tp_shop.cn/Home/user/ | get | HTML 页面 | 200 |
增加数据 | http://www.tp_shop.cn/Home/user/ | post | 无 | 201 |
更新用户数据 | http://www.tp_shop.cn/Home/user/13111111111 | put/patch | 返回用户信息 | 201 |
删除用户数据 | http://www.tp_shop.cn/Home/user/1 | delete | 无 | 204 |
展示全部的用户信息 | http://www.tp_shop.cn/Home/users/ | get | 分页用户信息 | 200 |
展示某个用户信息 | http://www.tp_shop.cn/Home/user/1 | get | ID位=为1的这位用户信息 | 200 |
1.4.2 restful架构特点
案例: 微博 https://open.weibo.com/wiki/%E5%BE%6AE%E5%8D%9AAPI
每一个URL代表了一个资源
客户端通过http的请求方式,对服务器的资源进行操作
每一个接口之间,传递数据最经常
1.4.3 域名 restful请求相关
版本: http://shanghui.com/app/1.0/users
路径:见案例
1.资源作为网址,只能有名词,不能有动词,而且所用的名词与数据库对应
2.API中的名词,使用复数形式
http动词
get,post,put,delete,patch等
过滤信息
类型 | 描述 |
---|---|
limit | 限制返回数据的数量 |
offset | 返回数据的开始位置 |
page=2&per_page=100 | 指定第几页,每一页的数据有多少条 |
sortby=name&order=asc | 指定的是排序的属性和排序方式 |
1.5 接口测试流程(重点)
1.5.1 需求分析
需求文档
1.5.2 接口文档解析
一般是开发人员编写的接口文档(API文档)
1.5.3 设计测试用例
1.5.4 执行测试用例
1.5.5 接口的缺陷管理和跟踪
1.5.6 生成测试报告
1.5.7 接口自动化持续集成
1.6 接口文档
1.6.1 接口文档
开发人员
API文档,描述的是系统提供的接口信息的文档
根据文档进行开发,并且需要一直进行维护和遵守
1.6.2 接口文档的意义
方便前端人员和后台开发人员更好的配合
项目迭代或者开发人员进行迭代的时候,提高工作效率
项目迭代或者开发人员进行迭代的时候,提高工作效率更加方便查看和维护项目
1.6.3 接口文档的内容
1.6.3.1 基本信息
接口的名称 请求方式 请求路径 接口描述
1.6.3.2 请求参数
请求头(headers content—type)
请求体(请求参数名称,参数类型,是否是必须值,示例,备注)
1.6.3.3 返回数据
根据不同情况返回不同的响应状态码
响应数据
包括具体的响应数据(名称,类型,是否必须值,默认值等等)