postman环境变量,参数关联

前言:在进行接口测试的时候,在不同的场景下或者不同的集合下面有一些变量是不同的。这时候我们可以通过设置postman的环境变量,来进行快速的切换。
Postman 允许定义自己的环境变量(Environment),最常见的是将测试 URL 进行定义成变量的形式,这样随着你的域名怎么变,URL 就不用变更,非常方便

一、postman 中的变量作用域
Global:全局变量,(可以将错误的提示信息设置成全局变量)
Environment:环境变量,比如可以将需要测试的 domain 设置成环境变量
Local:本地变量,一般可以在 sandbox 中进行定义
Data:从测试的数据中导入的变量,也就是我们常说的那种所谓的参数化

二、设置环境变量Environment:点击右上角设置icon,点击Add按钮,添加环境
在这里插入图片描述
在这里插入图片描述
三、设置环境变量Globals:点击Globals 可设置全局变量
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可切换环境,以及查看环境变量的值
在这里插入图片描述
四、使用变量:使用时,使用{{}}把变量名括起来就好了。如 url 为:{{host}}/api/cloud/virtualdatacenters/{{vdc}}/virtualappliances?startwith=0&limit=30
在这里插入图片描述
五:设置关联变量:编写Test,取出返回参数内容:
说明:在应用业务接口中,完成一个业务功能时,有时候一个接口可能不满足业务的整个流程逻辑,需要多个接口配合使用,并且在A接口调用后,我们需要在A接口的返回数据中拿到需要的字段,并且在调用B接口的时候,作为B接口请求参数传递给B接口,拿到后续响应的返回数据。
实战:编辑vapp时,需要用到创建vapp返回的id值
在创建vapp接口的Tests中,输入:

var Jsondata = JSON.parse(responseBody);
//设置环境变量 vapp返回信息
pm.environment.set("vapp",Jsondata.id);
//提取出id参数数据

在这里插入图片描述
创建另一个接口,完成参数关联
将vapp作为变量,该值会随着创建vapp接口返回的id值而同步更新
在这里插入图片描述
总结:
环境变量:是选择哪个环境就可以用的变量,一个变量只能属于某个环境,在某一个环境中变量不可重复定义;在环境与环境之间可以定义重复的变量;一个环境可以包含多个环境变量;常见环境分类:开发环境、测试环境、生产环境。

全局变量:是所有环境都有效的变量,全局变量是全局唯一的,不可重复定义的变量

环境变量优先级高于全局变量:比如环境变量有一个IP地址,全局变量也有一个IP地址,选择了某个环境后,界面会优先选择环境变量,如果需要使用全局变量则需要做更改

<think>好的,我需要回答用户关于如何在Postman中提取参数并引用变量的问题。首先,我要回顾用户提供的引用内容,确保涵盖所有相关信息。 用户提到三个引用,分别涉及全局变量、环境变量的设置,数据驱动测试,以及通过代码提取响应中的参数。我需要将这些内容整合成一个结构清晰的教程。 首先,分步骤说明参数提取的几种方式。根据引用[1],手动设置全局变量和环境变量的方法,可以在请求的不同位置使用双花括号引用。然后,引用[3]提到通过JavaScript代码提取响应数据并设置变量,这部分需要详细说明如何解析响应体和设置变量。 接下来是变量引用的场景,如查询参数、请求头和请求体,需要举例子说明,比如{{glb_age}}。同时,代码中获取变量的方法,如pm.globals.get(),也需要提到,可能来自引用[1]和[3]。 然后,数据驱动的部分,引用[2]提到使用newman运行带有数据文件的集合,这部分可以说明如何通过外部文件参数化变量,增强测试的灵活性。 最后,注意事项部分,要强调变量优先级、作用域和清理,避免用户在使用时出现混淆。例如,环境变量覆盖全局变量,局部变量优先级最高,这些来自引用[1]和[3]。 确保每个步骤都有示例代码或具体操作步骤,比如在Tests标签中编写JavaScript代码,设置变量。同时,检查是否需要更多细节,比如如何访问环境变量与全局变量,以及动态参数的应用场景。 可能还需要比较不同变量类型的作用域,帮助用户理解何时使用哪种变量。此外,数据驱动的例子需要明确如何关联外部文件,并生成报告,如引用[2]中的命令行示例。 最后,生成相关问题,确保符合用户可能的后续疑问,如动态参数关联接口、不同变量类型区别等。这样用户可以有进一步的学习路径。</think>### Postman参数提取与变量引用方法教程 在Postman中提取参数并引用变量主要通过以下三种方式实现: 一、**手动设置变量** 1. 全局变量设置 - 点击右侧「眼睛」图标 > Globals > Add - 示例:创建`glb_host`=api.example.com - 引用格式:`{{glb_host}}`(可用于URL、Header、Body) 2. 环境变量设置 - 右上角环境切换下拉框 > Manage Environments > Add - 示例:创建`env_token`=abc123 - 引用格式:`{{env_token}}`(优先级高于全局变量)[^1] 二、**代码提取响应参数** 1. 在Tests标签页编写JavaScript: ```javascript // 解析JSON响应 var res = pm.response.json(); // 设置环境变量 pm.environment.set("access_token", res.data.token); // 设置全局变量 pm.globals.set("user_id", res.user.id); ``` 2. 提取XML响应参数: ```javascript var xml = xml2Json(responseBody); pm.globals.set("order_no", xml.Response.OrderNumber); ``` *(需先安装Postman XML解析器)*[^3] 三、**数据驱动参数化** 1. 创建CSV数据文件: ``` username,password test1,123456 test2,654321 ``` 2. 在Collection运行器中: - 选择数据文件 - 通过`{{username}}`和`{{password}}`引用字段 3. 命令行执行: ```bash newman run collection.json -d data.csv -r html ``` *生成HTML格式测试报告*[^2] **变量引用场景示例**: 1. 动态URL: ``` {{glb_host}}/api/v1/{{endpoint}} ``` 2. 认证头: ```json { "Authorization": "Bearer {{access_token}}" } ``` 3. 请求体参数: ```json { "userId": {{user_id}}, "timestamp": {{$timestamp}} } ``` **注意事项**: 1. 变量优先级:局部变量 > 环境变量 > 全局变量 2. 临时变量可使用`pm.variables.set()`创建 3. 测试结束后建议执行清理: ```javascript pm.environment.unset("temp_var"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值