接口测试 | Postman的高级用法的测试使用
Postman的高级用法
- Postman用例间变量的传递
- 全局变量和环境变量
- 1. 设置变量
- 2. 获取变量值
- 3. Postman请求前置脚本
- 案例1: 调用百度首页接口 传时间戳给服务器
- 4. Postman关联
- 实现步骤
- 案例2: 请求获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用
- 5. 批量执行测试用例
- 6. 生成测试报告
- 1. 确保环境安装完成
- 2. 导出用例测试级
- 3. cmd使用命令执行测试生成报告
- Postman读取外部数据文件(参数化)
- 1. 外部数据文件类型
- 2. 导入外部数据文件
- csv文件
- json文件
- 3. 读取文件数据
- 案例3: 批量查询手机号归属地、所属运营商,校验运膏商数据正确性
- 带有外部数据文件的测试报告生成
部分测试网址已经失效,文章中已经标注,掌握原理使用!!!</font >
Postman用例间变量的传递
全局变量和环境变量
- 全局变量:全局变量是全局唯一的,不可重复定义的变量
- 环境变量:
- 一个变量只能属于某个环境,在某
一个环境中变量不可重复定义
- 在环境与环境之间可以定义重复的变量
- 一个环境可以包含多个环境变量
- 常见环境分类:开发环境、测试环境、生产环境
- 一个变量只能属于某个环境,在某
1. 设置变量
-
全局变量
- 手动设置 【UI操作】
- 代码设置
pm.globals.set("var_name",value)
-
环境变量
-
手动设置
-
代码设置:
pm.environment.set("var_name",value);
-
2. 获取变量值
-
全局变量
1. 请求参数中获取【UI界面】:{{ var_name }} 【两个大括号】
2. 代码中获取:var value = pm.globals.get("var name");
-
环境变量
- 请求参数中获取【UI界面】:{{ var_name }}
- 代码中获取:
var value=pm.environment.get("var_name");
3. Postman请求前置脚本
- 什么是请求前置脚本?
在 Postman 中,请求前置脚本(Pre-request Script)是指在发送 API 请求之前自动执行的一段 JavaScript 代码,用于在请求发送前完成一些预处理操作
,确保请求能按预期执行(比如动态生成参数、设置环境变量、处理依赖数据等)。
简单说,它是请求的 “前置准备工具”——在请求真正发出前,帮你完成那些 “必须先做” 的事,避免手动操作的繁琐或错误
。
第一时间被执行 在Postman内部实际http请求之前
- 时间戳
Pre-request Script【前置脚本】工作原理
案例1: 调用百度首页接口 传时间戳给服务器
- 代码写到哪里?
写入到Tests中是没有效果的,从断言那里了解到 Tests中的代码时服务器反馈到Postman中才会执行的代码 - Pre-request Script【前置脚本】
- 如何验证全局变量是否设置成功?
在第二部Pre-request Script 中编写代码后,点击Send
发送 并点击眼睛 查看变量
4. 设置成功后,如何发送给服务器呢?
5. 如何验证时间戳真正的发送到服务器了呢?
4. Postman关联
介绍:应用于多个http请求之间,有数据关联、或依赖关系时
。
实现步骤
A接口依赖B接口的数据:
- 向B接口发送http请求,获取数据
- 将数据设置至全局变量(环境变量)中
- A接口获取全局变量(环境变量)中数据值,进行使用。
登录接口 --> 其他功能【添加员工、添加商品】
案例2: 请求获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用
-
创建用例集 Collections
-
请求获取天气的接口,http:Iwww.weather…com.cn/data/sk101010100.htm 【网址已经失效】
在Tests中获取响应结果中的城市信息数据
var jsonData= pm.response.json() // 获取响应结果
var city = jsonData.weatherinfo.city //获取字典中的城市pm.globals.set("glb_city",city) //设置全局变量
如何写入全局变量呢? ---- > 点击 send
按钮 ,点击眼睛查看设置结果
- 百度接口的使用
- 为什么只能使用wd?
- 修改wd为全局变量
5. 批量执行测试用例
6. 生成测试报告
1. 确保环境安装完成
2. 导出用例测试级
3. cmd使用命令执行测试生成报告
步骤:
- 批量执行测试用例集。(确认无误)
- 导出Export用例集。(得到xxxx.json文件)
- 在终端中执行命令,生成测试报告
- 使用全局变量
如果添加-r html就报错!说明newman-reporter.-html安装失败!
- 完整命令
newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html --reporter-html-export 测试报告名.html
Postman读取外部数据文件(参数化)
当http请求,使用的数据有较高相似度时,相同的请求时,考虑使用参数化(将数据组织到数据文件中)
1. 外部数据文件类型
- csv
- json
- 两种数据文件格式
CSV文件对于非数字类型会加入 “ ” (引号) 变成字符串格式类型
2. 导入外部数据文件
csv文件
- 创建xx.csv文件。
- 将数据写入到csv文件中。【
注意文件类型:UTF-8
显示中文】- 第一行写入的是数据对应的“字段名”。
- 从第二行向后依次是对应的数值,数据间用英文逗号隔分。
- 在Postman中,选中使用数据文件的用例集,导入数据文件。
- Postman操作
·1. 点击用例集名称,使用Run按钮
,进入“Runner’"页面。
·2. 使用"Select File"按钮选择Xxx.csv文件。
·3. 点击预览按钮
,校验数据文件是否正确。
json文件
- 创建xx.json数据文件
- 在数据文件中,按json语法写入json数据。
postman要求,json格式的数据文件,数据内容的最外层,必须是 [ ]。内部所有的数据用 { }存储
。
3.在Postman中,选中使用数据文件的用例集,导入数据文件。- 点击用例集名称,使用Run按钮,进入“Runner’"页面。
- 使用“Select File"按钮选择xxx.json文件。
- 点击预览按钮,校验数据文件是否正确。
3. 读取文件数据
-
理论
·第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据- 使用{0}包裹csv文件字段名或json文件中的key如:{ { fusername } } { { password } }
·第二种:代码(断言、请求前置脚本)中,使用数据文件中的数据
- 需要借助postman提供的关键字data点csv文件的字段名或json文件的key"如:data.username或data.password
案例3: 批量查询手机号归属地、所属运营商,校验运膏商数据正确性
- 接口可用
CSV版本
-
测试单个接口,工作中参数和响应体数据对应关系。
-
替换上述用例中的两处:
- 归属地:在代码中。用data.字段名替换
- 手机号:在查询参数中。用
{ { 字段名 } }
替换。
-
强调:一旦替换完成,Send就不再能正常获取响应数据。(数据必须从数据文件中读取,才能正常发送请求,Send不具备读取数据文件的功能)
json 文件版本 就是选择json文件
-
选择使用数据文件的用例集,进入Runner页面。导入数据文件。运行。
-
如果有异常,借助
postman的控制台
,查看。
小结:借助数据文件,实现`数据驱动"。一一有多少条数据,对应就有多少个http请求。
带有外部数据文件的测试报告生成
步骤:
- 批量执行测试用例(借助数据文件)
- 导出测试用例集(建议与数据文件放在一起)
- 执行生成测试报告的命令
newman run 用例集名称.json -d 数据文件名.csv/.json -r html-reporter-html-export 报告名称.html