前后端
前端:是肉眼所能见到的界面
后端:处理数据,数据逻辑
接口:提供前后端交互的通道
接口测试:校验接口返回的响应数据是否与预期的一致
接口测试可以绕过前端,直接对服务器进行测试
请求方式 post get
响应回来结果 登录成功,登录失败 数据
实现方式:
postman/jmeter
python+request+unittest
java+httpClient
HTTP协议
超文本传输协议,基于请求与响应的应用层
特点:b/s模式,简单快速,灵活,无连接,无状态
完整语法格式:协议 :// IP地址:端口号/资源路径?查询参数
39.167.90.145 /www.baidu.com 一个ip地址可以对应多个域名
HTTP请求
产生于客户端
请求行
位于请求的第一行,包括请求方法,url,协议版本
请求方法:
GET:查询 —— 没有请求体
POST:添加 (注册、登录)
DELETE:删除 —— 没有请求体
PUT:修改
请求头
位于 请求行之下,空行之上的部分。 数据组织格式 一定是 k:v 对。
Content-Type : 作用,指定 请求体的数据类型。
application/json:请求体数据类型为json
application/x-www-form-urlencoded:请求体的数据类型 为 表单类型。
请求体
位于 空行 之下。
有的 请求协议 是没有请求体。如:get、delete
请求体的数据类型, 受 请求头中 Content-Type 的值影响。
携带的数据,以&为间隔
抓一个接口?需要关注
接口地址、接口参数、请求方式、响应内容
HTTP响应
产生于服务端,服务器收到客户端的请求协议之后才产生响应
响应行
/状态行:版本协议,状态码,状态码描述
状态码分为5类:
1xx 提示信息
2XX 成功
3XX 重定向
4XX 客户端错误
5XX 服务器错误
响应头
位于 响应行之下,空行之上的部分。 数据组织格式 一定是 k:v 对
响应体
位于 响应头之下 ,几乎所有 响应协议 都有响应体。
响应体中 包含的数据,是接口测试过程中,所要使用的 实际结果!!
接口规范
传统风格接口:采用get/post实现所有操作,状态码统一返回200, URL 与 资源不是 一一对应的。在 URL 中查看出,是何种操作
RESTful风格接口
接口使用的方法,与 http协议的 请求方法,一一对应。
get - 查、post - 增、put - 改、delete - 删
URL 与 资源 一一对应!不能从 URL 中,看出 是 何种操作。 需要通过 结合 请求方法 来识别何种操作。
响应状态码 使用较为全面。
接口测试流程
- 需求分析(产品经理的需求文档)
- 接口文档解析(开发编写的 接口API文档)
- 设计 接口测试用例(编写 Excel 表格形式的用例)
- 准备接口测试脚本
postman 工具 生成脚本
python 代码 编写脚本 - 执行测试用例,跟踪缺陷
- 生成 接口测试报告
- 接口自动化持续集成(可选)
接口文档:API文档 一般由后端开发人员编写,用来描述接口信息的文档。
接口文档的作用
协同:团队人员工作协同配合
约束:项目更新修改同步维护
解析接口文档
为什么要解析
通过分析接口文档,熟悉接口信息。
通过接口文档获取,接口测试所使用的 请求数据、预期结果。
解析的核心目标
- 请求报文关键数据
请求方法、URL、请求数据(请求头、请求体) - 响应报文关键数据
响应状态码、响应数据(响应体)
postman基本使用
get请求
post请求
接口用例设计
大致分为功能测试,性能测试,安全测试
功能测试
单接口:单独的业务,如登录业务,对应的登录接口
正向测试
必填参数组合 p0
必填+非必填组合 p2/p3
全部参数组合 p1
反向测试
1.功能异常 p1
2.数据异常 p2 (空,类型不符合,长度不符合)
3.参数异常(多参,少参,无参,错误参数)
业务场景功能测试:多个接口被连续调用(模拟用户实际使用场景)
尽量模拟用户实际使用场景,
尽量用最少的用例覆盖最多的接口请求
一般覆盖正向测试即可
性能测试
响应时长:从发送请求到接收到服务器回发响应包所经历的时间
错误率:服务器运行出错的概率
吞吐量:服务器单位时间内处理请求的数量
服务器资源利用率:cpu,内存,网络,磁盘等硬件资源的占用率
安全测试
攻击安全:木马,病毒
业务安全:必须登录才能访问用户数据,敏感数据加密存储
postman断言
1. 断言响应状态码
2.断言包含某字符串
3. 断言JSON数据
postman断言原理
Postman 关联
简介
当接口和接口之间,有依赖关系时,需要借助 postman 关联技术,来实现。
如: 登录接口 返回的 令牌数据,被 添加员工接口依赖。
添加员工接口 返回 员工id,被 查询员工接口依赖。
实现步骤
核心代码
用返回数据做变量作为数据来查百度
登录令牌来添加员工
postman参数化
简介
什么是参数化:
将 测试数据,组织到 数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
应用场景:
一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用 参数化。
数据文件简介
CSV:
优点:数据组织格式简单
缺点:
- 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串
- 不能存储复杂数据类型(元组、列表、字典)。
- 不能实现 参数测试。
应用场景:数据量较大,数据组织格式简单。
JSON:
优点:
- 可以测试 bool类型
- 能使用 复杂数据类型
- 可以实现 参数测试。
缺点:相同数据量,json文件要远大于 csv 文件。
应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!
导入数据文件到postman
csv文件预览,正确无乱码
json数据预览,正确无乱码
读取数据文件数据
理论
根据使用位置不同,有两种方法
1.在请求参数(行头体中)使用数据文件中的数据
csv文件/json文件:{{keyName/键名}}
2.代码中获取
postman内置data对象引用key
csv文件:data.字段名
json文件:data.键名
- JSON文件:最外层必须为 [] ,然后使用 {} 存放多组数据。
使用参数化查询不可以用send
Postman 控制台调试
有异常或出现失败的时候,可借助控制台进行查看分析。
4.1 配置好 生成测试报告环境中
安装node.js
#安装 双击.msi文件,一路下一步安装即可。无需特殊设定。 #测试安装成功 npm -V
安装newman
#安装newman
npm install -g newman
#测试安装成功
newman -V
#安装newman插件 -标准版
npm install -g newman-reporter-html
#安装newman插件 -扩展版 (最好使用这个)
npm install -g newman-reporter-htmlextra
4.2 导入和导出 测试用例集
导出用例集
导入用例集
导出环境(有环境约束,需要连同环境一同导出)
生成测试报告文件
测试统计分析 + 测试结果确认 Newman生成测试报告
newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporter-htmlextra-export 测试报告名.html
newman run <测试脚本文件路径> -e <环境变量文件路径> -d 数据文件.json/.csv -r html --reporter-html-export <测试报告输出路径>
newman run "D:\Desktop\test1\login.postman_collection.json" -e "D:\Desktop\test1\testenv.postman_environment.json" -d "D:\Desktop\test1\login.json" -r html --reporter-html-export "D:\Desktop\test1"
# 完整命令
newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporter-htmlextra-export 测试报告名.html
-e 和 -d 是非必须的。
如果没有使用 环境,不需要指定 -e
如果没有使用数据文件(做参数化), 不需要指定-d
命令说明:
● run xx.json:执行测试集文件
● -e source:环境变量文件
● -d source:测试数据文件
● -r html:生成测试报告类型
● --reporter-html- export source:存放报告的路径
版权归原作者 m0_59485836 所有, 如有侵权,请联系我们删除。