一、接口测试理论
- 接口
- 分类:
- 硬件接口
- 软件接口(软件测试讨论的主体)
- 概念:数据交互的通道
- 分类:
- 接口类型
- 系统之间的接口(如:tpshop系统与支付宝系统)
- 程序内部的接口(如:tpshop登陆系统与订单系统之间的交互)
- 注意:对测试而言,不需要区分系统之间的接口与系统内部的接口
- 接口测试
- 针对接口测试,主要是测试数据的传递、交互、控制管理过程以及接口之间的依赖
- 原理:
- 模拟客户端建立连接
- 发送请求
- 服务器处理请求并响应
- 校验响应数据
- 特点
- 测试可以提早介入,修改bug成本低,符合质量前移的理念
- 可以发现一些页面发现不了的问题
- 低成本、高收益
- 接口测试不同于单元测试,是站在用户的角度针对整体业务进行测试
- 实现方式:
- 通过工具来实现
- Postman(当前接口测试阶段学习)
- Jmeter(性能测试阶段学习)
- 通过代码来实现
- Python+Requests
- 通过工具来实现
- 接口自动化测试概念:
- 针对接口进行测试,用工具或代码替人来进行测试的一种活动
二、HTTP协议
-
介绍:超文本传输协议,一种互联网上广泛使用的方式
-
特点:
- 基于客户端与服务器模式
- 简单快速
- 灵活
- 无状态
- 无连接
-
URL格式解析【重点】
- 说明:统一资源定位法
- 格式:协议、域名、端口号、资源路径、参数
- 示例:
http://www.itcast.cn:8080/news/index.html?uid=123&page=1
- 协议:HTTP、HTTPS、FTP、SMTP/POP3/IMAP等
- 域名:可以是域名,也可以是ip地址
- 端口号:默认的端口号可以省略
- http默认是在80端口
- https默认是在443端口
- 资源路径:
- 图片、视频、音频、链接、接口等
- 参数部分:内容不会被系统解析
- ?:隔离URL主体与参数部分内容
- &:存在多个参数时,使用&进行拼接
- 示例:
-
HTTP请求
- 组成:
- 请求行:
- 位置:第一行信息
- 内容:
- 请求方式
- 资源路径
- 协议及版本
- 请求头:
- 位置:第一行之后。空行之前的内容
- 内容:
- 主要是以键值对的形式存在
- 重点掌握:Content-Type=application/json(form表单/json)
- 请求体
- 前提:get请求没有请求体,一般请求体在post和put请求方式中使用
- 位置:空行之后的内容
- 内容形式:json、html、test等
- 请求行:
- 组成:
-
请求方式说明
- get:查询数据
- post:新增数据
- put:修改数据
- delete:删除数据
-
HTTP响应
- 组成:状态行、响应头、响应体
-
状态行
- 位置:第一行信息
- 内容:
- 状态码:
- 2XX:请求成功
- 200(查询成功)
- 201(新增或修改成功)
- 204(删除成功)
- 5XX:服务端存在问题
- 500(服务器发生错误)
- 503
- 4XX:客户端存在问题
- 404(请求资源不存在)
- 401((用户没有权限)用户名或者密码不对)
- 403(用户未得到授权)
- 3XX(重定向)
- 1XX
- 2XX:请求成功
- 状态码:
-
响应头
- 位置:第一行之后,空行之前内容
- 内容:键值对形式存在,用于描述服务器相关信息
-
响应体
- 位置:空行之后的内容
- 响应数据:xml、json、html等
-
- 组成:状态行、响应头、响应体