测试理论
接口:系统或组件之间的交互点,通过交互点实现数据的交互。
接口类型:
- 系统间的接口:多个内部系统之间的交互,内部系统与外部系统之间的交互
- 程序内部的接口:方法与方法之间,模块与模块之间的交互
接口测试:对系统或组件之间的接口进行测试,只要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系
接口测试原理:模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符号预期
接口测试实现方式:
- 接口测试工具(JMeter,Postman)
- 编码实现(Python+Requests)
HTTP协议
URL格式:http://www.itcast.cn:8080/news/index.html?uid=123&page=1
- 协议部分:“http”,常见的协议有HTTP,HTTPS、FTP等
- 域名部分:“www.itcast.cn”,也可以使用IP地址作为域名使用
- 端口部分:“8080”,端口可以省略,默认端口(HTTP:80,HTTPS:443,FTP:21)
- 资源路径部分:“/news/index.html”
- 查询参数部分:“uid=123&page=1”,可以允许有多个参数,多个之间用“&”作为分隔符
HTTP请求
- 请求行:请求方法、要访问的资源(URL)、使用的版本
- 请求头:由键值对组成,每行一对。请求头部通知服务器有关客户端请求的信息
- 请求体
- 请求体不在GET方法中使用,经常在POST、PUT方法中使用
- 请求体的数据可以是:表单数据、文本、XML、JSON
- 与请求数据相关的最常用的请求头是Content-Type和Content-Lenght
HTTP响应
- 状态行:协议版本号、状态码、状态消息
- 响应头:描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理响应数据
- 响应体:响应的消息体,数据可以是普通文本、XML、JSON、HTML源码
接口测试流程
1. 需求分析
- 主要依据需求文档
2. 接口文档解析
- 一般是由开发人员编写接口文档(API文档)
3. 设计测试用例
4. 执行测试
- 使用接口测试工具实现
- 通过编写代码实现
5. 接口缺陷管理与跟踪
6. 生成测试报告
7. 接口自动化持续集成(可选)
API文档
接口文档内容
- 基本信息
- 接口名称、请求方法、请求路径、接口描述
- 请求参数
- 请求头
- 请求体(包含具体的请求参数名称、参数类型、是否必须、示例、备注)
- 返回数据
- 不同情况的响应状态码
- 响应数据(包含具体的响应数据名称、类型、是否必须、默认值、示例、备注)
接口测试测试点
- 功能测试:验证接口功能是否按照接口文档实现(输入+处理+输出)
- 单接口功能测试
- 正向功能(通过性测试),接口正确时的表现
- 反向测试(异常测试),接口错误时的表现
- 多接口功能测试(业务场景功能),站在用户角度考虑常用的使用场景
- 接口之间数据依赖
- 单接口功能测试
单接口测试:测试用例和接口文档类似
- 性能测试
- 安全测试
- 敏感数据是否加密