1.接口
接口是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互(数据交互的通道)
1.1接口的类型
1.按协议分:HTTP/FTP/TCP/IP/USB/UDP
2.按语言划分:java/python/php/c++…
3.按范围划分:系统之间的接口/程序内部的接口
系统之间的接口:多个内部系统之间的交互,内部系统与外部系统之间的交互
程序内部的接口:方法与方法之间,模块与模块之间的交互
1.2接口测试
对系统或组件之间的接口进行测试,主要是校验数据的交换、传递、控制管理过程,以及相互逻辑依赖关系
1.2.1接口测试原理
根据客户端向服务器发送请求,服务器接受请求后进行相应的业务处理,并向客户端返回相应数据,检查响应数据是否符合预期
Q:数据(预期结果)从哪里来?
A:用户需求
Q:怎么校验?
A:借助工具、代码模拟客户端。组织数据
1.2.2 接口测试特点
- 测试可以提前进入,提早发现bug,符合质量控制前移的理念
- 可以发现一些页面操作发现不了的问
- 接口测试低成本高效益(底层的一个BUG 能够引发上层8个左右的bug,接口测试可以实现自动化)
- 不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测
1.2.3 接口测试的实现方式
- 使用接口测试工具(Jmeter,postman,fiddler)
- 通过编写代码来实现(Python+Requests+UnitTest)
1.3自动化接口测试
利用工具/代码代替人工自动判断相应结果和预期结果是否一致 断言
2.http请求
2.1请求行
http请求方法:
GET 查询
POST 添加(常用在登陆)
PUT 修改
DELETE 删除
2.2 请求头
语法格式:键值对
user-agent:产生请求的浏览器类型
accept:客户端可识别的内容类型列表
2.3请求体
get和delete是没有请求体的
put和post是有请求体的
数据值的组织形式 受content-type的值影响
2.4fiddle抓包HTTP响应
响应行
协议版本+状态码+状态码描述
状态码
1XX:提示信息 表示请求已接受,继续处理
2XX:成功 表示请求已被成功接收,理解,接受 200,201
3XX:重定向 表示完成请求必须进行更进一步的操作
4XX:服务器错误 请求有语法错误或请求无法实现 404,403
5XX:服务器端错误 服务器未实现合法的请求
响应头
语法格式:键值对
content-type:描述响应体中的数据类型
响应体**
绝大多数不为空:请求成功:会发数据;请求失败:会发错误信息
数据类型受content-type影响