1.0 接口以及接口测试
1.1 接口定义
1.1.1 硬件接口
usb接口
1.1.2 软件接口
第三方支付接口
1.1.3 接口
系统或者组件之间的交互点,数据交互的通道
本质:这些交互点,实现的是数据的交互
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 接口规范
1.4.0 web应用模式
前后端不分离
前后端分离
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/user/show_reg | 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%AE%E5%8D%9AAPI
每一个URL代表了一个资源
客户端通过http的请求方式,对服务器的资源进行操作
每一个接口之间,传递数据最经常的格式是json
1.4.3 restful请求相关就
域名: http://shanghui.com/api
版本 :http://shanghui.com/app/1.0/users
路径:见案例
1.资源作为网址,只能有名词,不能有动词,而且所用的名词与数据库表名对应
2.API中的名词,使用复数形式
HTTP动词
get
post
put
delete
patch
等
过滤信息
https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=20&limit=20
类型 | 描述 |
---|---|
limit | 限制返回数据的数量 |
offset=10 | 返回数据的开始位置 |
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.5 接口测试流程(重点)
1.5.1 需求分析
需求文档
1.5.2 接口文档解析
一般是开发人员编写的接口文档(API文档)