测试基础笔记第十九天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、接口的概念
- 二、接口的类型
- 三、接口测试
- 1.概念
- 2.原理:
- 3.特点:
- 4.实现方式:
- 5.什么是自动化接口测试?
- 二、HTTP协议
- 1.HTTP协议简介
- 2.URL格式
- 3.HTTP请求
- 4.fiddler 抓包验证
- 5.请求行
- 6.请求头
- 7.请求体
- 8.HTTP响应
- 1. 整体格式
- 2.状态行
- 3.响应头
- 4.响应体
- 9.传统风格接口
- 10.RESTful风格接口
- 三、接口测试流程
- 四、接口文档
- 1.什么是接口文档
- 2.作用
- 3.展现形式
- 4.结构
- 5.接口文档解析
一、接口的概念
- 接口就是:系统与系统之间,组件与组件之间,数据传递交互的通道。
二、接口的类型
-
按协议划分:http、tcp、IP
-
按语言划分:C++、java、php 。。。
-
按范围划分:
- 多个内部系统之间
- 内部系统与外部系统之间
-
程序之间:
- 方法与方法之间,函数与函数之间,模块与模块之间
#接口
def eat(something):
print(f’小鸟在吃{something}')
#使用接口,传递数据
def bird():
eat(‘苹果’)
bird()
三、接口测试
1.概念
- 接口测试就是,对系统或组件之间的接口进行测试。校验传递的数据正确性和逻辑依赖关系的正确性!
2.原理:
- 接口测试,主要针对的测试目标 —— 服务器
- 怎么测:
工具:fiddler、postman、jmter
代码:python + UnitTest框架 + Requests框架
- 测什么?
- 测试 服务器针对客户端请求,回发的响应数据是否与预期结果一致!
3.特点:
- 符合质量控制前移的理念
- 可以发现一些页面操作发现不了的问题
- 接口测试低成本高效益
- 接口测试是从用户的角度对系统进行检测
4.实现方式:
- 工具:JMeter、Postman、fiddler
- 代码:Python + Requests + UnitTest
5.什么是自动化接口测试?
- 借助工具、代码,模拟客户端发送请求给服务器,借助断言自动判断 预期结果和实际结果 是否一致!
二、HTTP协议
- 协议:就是规则。要求通信的双方必须严格遵守!
1.HTTP协议简介
- HTTP:(HyperText Transfer Protocol)超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议
- 特征:
支持客户端/服务器模式
简单快速
灵活
无连接
无状态
2.URL格式
- 概念:(Uniform Resource Locator)统一资源定位符。
- 作用:在网络环境中,唯一的定义一个数据资源。
- 协议:http。 规定数据传输的方式。
- 域名(IP):在网络环境中找到主机。—— 用 😕/ 与协议隔分
- 端口(port):(常省略)在网络主机上,标识一个进程(应用程序)—— 用: 与域名
- 资源路径:标识网络资源(文件、图片、音视频、变量…)—— 用: / 与端口格分
- 查询参数:传递给资源路径对应的数据。—— 用 ? 与资源路径隔分。 查询参数内部 用 & 隔分多个kv对
3.HTTP请求
- 作用:
客户端(app、浏览器),发送请求给服务器时,使用的协议 —— http请求协议。
规定 发送给服务器的数据传输的语法格式。 - 整体格式
**请求行:**http请求第一行。请求方法 (空格) URL (空格) 协议版本
**请求头:**语法格式:k :v
User-Agent:描述 请求发送端的 浏览器类型。
Content-Type:描述 请求体 的 数据类型!
**空行:**代表http请求头结束。
**请求体:**请求发送时携带的数据。数据类型 Content-Type 的值!
post 和 put 有请求体
get 和 delete 没有请求体
4.fiddler 抓包验证
5.请求行
- http 请求方法:大小写均可。
GET:查询。 —— 没有请求体
POST:添加。(登录时常用)
put: 修改。
delete: 删除。 —— 没有请求体
6.请求头
- 数据格式:k:v
- Content-Type:
application/json: JSON数据格式
application/x-www-form-urlencoded: form表单数据
7.请求体
- GET和DELETE 没有
- PUT 和POST有
- 数据类型受 Content-Type 值影响。
8.HTTP响应
- 作用:
服务器端,针对客户端发送的 http请求,回发响应数据。—— http应答!
规定 回发给客户端的数据组织格式。
1. 整体格式
响应行(状态行):协议版本 (空格) 状态码 (空格) 状态描述
响应头:语法格式:k:v
Content-Type: 描述 响应体中数据类型。
空行:代表响应头结束
响应体:绝大多数不为空。(请求成功:回发数据,失败:回发错误信息)
数据类型受 Content-Type值影响。
2.状态行
- 状态码:
1xx:代表指示信息。表请求已经被接收,等待继续处理。
2xx:代表请求成功被处理、接收。 常见:200、201
3xx:重定向,待访问的资源,需求重新指定路径访问。
4xx:代表客户端错误。常见:404、 403
5xx:访问器端错误。
- 状态码描述:一般与状态码 唯一对应。 200 —— ok; 404 —— file not found
3.响应头
- 语法格式:k:v
- Content-Type:值为 响应体 的数据类型。
- Content-Length: 响应体的大小。可以不写,浏览器会自动求取。一旦写,必须准确!
4.响应体
- 回发给客户端的 消息内容。常见的有 html网页、xml、json
9.传统风格接口
- 特点:
请求方法,只使用 get 和 post 即可。
URL 不唯一。同一个操作可以对应不同的 URL
状态码的使用较单一。200 最常见。
10.RESTful风格接口
- 特点:
1.每一个URL代表一种资源;
2.客户端和服务器之间,传递这种资源的某种表现层;
表现层:数据的不同表现形式(如:图片、文字表现同一个数据对象)
3.客户端通过四个HTTP动词(GET、post、delete、put),对服务器端资源进行操作,实现"表现层状态转化";
4.接口之间传递的数据最常用格式为JSON。
三、接口测试流程
- 分析需求,产生需求文档(产品)。
- (开发产生接口文档)解析接口文档。
- 产生 接口测试用例(送审)。
- 执行 测试用例
工具:postman、jmeter、fidller
代码:python + Requests +UnitTest - 提交、跟踪缺陷。
- 生成 测试报告。
- (可选)接口自动化持续集成!
四、接口文档
1.什么是接口文档
- **由开发人员编写,描述接口信息的文档。**开发团队按接口文档进行开发工作,并要一直维护遵守。
2.作用
- 能够让前端开发与后台开发人员更好的配合,提高工作效率。(有一个统一参考的文件)
- 项目迭代或者项目人员更迭时,方便后期人员查看和维护
- 方便测试人员进行接口测试
3.展现形式
- word 文档形式
- Excel 表格式形式
- pdf 文档形式
4.结构
- 基本信息:
资源路径 (协议和域名在 “系统信息”中)
请求方法
接口描述 - 请求参数:
请求头:
Content-Type。描述请求体的数据类型!
请求体:
实现该接口使用的 数据及对应类型。 - 返回数据:
状态码 200
错误码(自定义状态码)
码值
描述信息。
5.接口文档解析
- 接口文档的解析本质:从接口文档中,找出 http 请求所需要的 数据信息。
- 主要包含:请求方法、URL 、请求头、请求体、响应状态码、描述。
- 以 “登录” 为例:
请求方法:POST
URL:http://ihrm-test.itheima.net/api/sys/login
请求头:Content-Type :application/json
请求体:{“mobile”:”13800000002”, “password”:”123456”}
响应状态码:200
错误码:
10000:操作成功!
20001:用户名或密码错误
99999:抱歉,系统繁忙,请稍后重试!