目录
- 接口测试理论
- 概念
- 价值
- 实现方式
- HTTP协议
- HTTP协议简介
- URL格式
- HTTP请求
- HTTP响应
- ihrm项目介绍
- 接口规范
- 传统风格接口
- RESTful风格接口
- 小结
- 接口测试流程
- 接口文档解析
- 什么是接口文档
- 接口文档的作用
- 解析接口文档
- 练习
1.接口测试理论
概念
- 接口∶系统之间(外部系统与内部系统,内部系统与内部系统)数据交通的通道。
- 接口测试︰校验接口回发的响应数据与预期结果是否一致。
- 接口测试,可以绕过前端界面。直接对服务器进行测试! ! !
价值
- 可以发现页面测试发现不了的问题
- 符合质量控制前移理念
- 低成本,高收益!
实现方式
工具∶
- postman:使用简单,上手难度低。功能较少。
- jmeter:使用难度较大。上手难度大。功能齐全。
代码:
- Python + requests + Unittest
- java + HttpClient
2.HTTP协议
- 协议︰就是规则!要求使用协议的双方必须严格遵守
HTTP协议简介
- 简介:超文本传输协议,基于请求与响应的应用层协议。
- 特点︰
- 客户端、服务器模式
- 简单快速
- 灵活
- 无连接
- 无状态
URL格式
完整语法格式:协议:/IP地址:端口号/资源路径?查询参数
- 协议:
- http、https。作用:指定数据传输规则.
- IP地址:
- 也就是域名。作用:在网络环境中,唯一定位一台主机
- 端口号:
- 作用:在主机上,唯一定义个应用程序。
- 可以省略。如果省略,跟随协议。http-80。Https-443.
- 资源路径:
- 作用:应用对应的数据资源。
- 可以省略。如果省略,资源路径为“/"
- 查询参数:
- 作用:给资源传递参数
- 可以省略。如果省略,没有?分割符。
- 可以有多组。每组k=v格式。各组之间用“&”隔分。
练习
请写出以下URL的各个组成部分。这个URL没有写出端口号,它的端口是什么?
HTTP请求
产生端:
- 一定产生于客户端。当客户端给服务器发送请求时,使用该协议。(请求报文、请求包)
整体格式
- 请求行:请求方法、URL、协议版本
- 请求头:k: v
- 空行:代表请求头结束。
- 请求体:发送给服务器请求时,携带的数据。
【示例】:
请求行
- 一定位于http请求协议的,第一行。格式:请求方法(空格)URL(空格)协议版本
- 请求方法:
- GET:查询——没有请求体
- POST:添加(注册、登录)
- DELETE:删除——没有请求体
- PUT:修改
- URL:见上
- 协议版本:常见HTTP/1.1
请求头
- 位于请求行之下,空行之上的部分。数据组织格式一定是k:v对。
- Content-Type :作用,指定请求体的数据类型。
- applicationljson:请求体数据类型为json
- application/x-www-form-urlencoded:请求体的数据类型为表单类型。请求体
请求体
- 位于空行之下。
- 有的请求协议是没有请求体。如:get、delete
- 请求体的数据类型,受请求头中Content-Type的值影响。
练习1
- 以下是抓取的某个HTTP协议数据包的请求报文,请问其中,请求行,请求头,请求体分别是什么?
练习2
抓包获取ihrm系统的登录接口和tpshop登录接口,解析请求数据
HTTP响应
产生端:
- 一定产生与服务端。当服务器接收到 http请求协议之后,才会产生 http响应协议〈响应报文.响应包。
整体格式
- 响应行:协议版本、状态码、状态码描述
- 响应头:K:V格式数据。
- 空行:代表响应头结束。
- 响应体:服务回发给客户端的数据。几乎所有的响应包,都有响应体。
【示例】︰
状态行
- 一定位于http响应协议的,第一行。格式:协议版本(空格)状态码(空格)状态码描述
- 状态码︰5类:
- 1xx:指示信息
- 2xx:成功
- 3xx:重定向
- 4xx:客户端错误
- 5xx:服务端错误
响应头
- 位于响应行之下,空行之上的部分。数据组织格式一定是k:v对。
响应体
- 位于空行之下。
- 几乎所有响应协议都有响应体。
- 响应体中包含的数据,是接口测试过程中,所要使用的实际结果!!
练习1
- 以下是HTTP协议的响应报文内容,请问,状态行、响应头、响应体分别是哪几个部分?
练习2
- 抓包获取ihrm系统的登录接口和tpshop登录接口,解析响应数据
3.ihrm项目介绍
- 人力资源管理系统
- URL: http://ihrm-test.itheima.net/
- 模块:
- 员工管理
- 组织架构(部门管理)
- 招聘管理
- 考勤管理
- 绩效管理
4.接口规范
传统风格接口
- 接口统一采用get/post 实现所有操作。
- URL与资源不是——对应的。在URL中查看出,是何种操作
- 状态码统一返回200
RESTful风格接口
- 接口使用的方法,与http协议的请求方法,一 一对应。
- get -查、post -增、put -改、delete -删
- URL与资源――对应!不能从URL中,看出是何种操作。需要通过结合请求方法来识别何种操作。响应状态码使用较为全面。
小结
- 传统风格接口:只用get、post方法。URL不唯一。统一返回200
- RESTful风格接口∶URL唯一,定位资源。结合请求方法对应不同操作。返回状态码较灵活。
5.接口测试流程
- 需求分析(产品经理的需求文档)
- 接口文档解析(开发编写的接口API文档)
- 设计接口测试用例(编写Excel表格形式的用例)
- 准备接口测试脚本
- postman工具生成脚本
- python 代码编写脚本
- 执行测试用例,跟踪缺陷
- 生成接口测试报告
- 接口自动化持续集成(可选)
6.接口文档解析
什么是接口文档
- 也叫API文档,一般由后端开发工程师编写。用来描述接口信息的文档。
接口文档的作用
- 协同:团队人员工作协同配合
- 约束:项目更新修改同步维护
解析接口文档
- 为什么要解析
- 通过分析接口文档,熟悉接口信息。
- 通过接口文档获取,接口测试所使用的请求数据、预期结果。
- 解析的核心目标
- 请求报文关键数据
- 请求方法、URL、请求数据(请求头、请求体)
- 响应报文关键数据
- 响应状态码、响应数据(响应体)
- 请求报文关键数据
练习
- 解析人力资源管理系统接口文档,将解析结果,写入《接口文档解析模版.xlsx》