活用变量,让Postman的使用飞起来

在 Postman 中使用变量是一种非常强大的功能,它可以极大地增强 API 测试和开发的灵活性和效率。

Postman变量的类型

变量在 Postman 中可以在多个层次设置和使用,包括

  1. 全局变量
  2. 环境变量
  3. 集合变量
  4. 局部变量(如在脚本中暂时创建的变量)。

1. 全局变量(Global Variables)

全局变量在所有集合和环境中都是可用的。适合那些在所有测试中都通用的数据。

设置全局变量步骤:

  1. 选择 Postman 顶部导航栏中的“眼睛”图标。
    在这里插入图片描述

也可以点击左侧的“Environment ” 进行设置

在这里插入图片描述

  1. 打开“Globals”标签并添加变量。
变量名      | 初始值    | 当前值
exampleVar | example   | example

2. 环境变量(Environment Variables)

环境变量在特定环境下使用。每个环境都可以配置一组独立的变量,方便在不同的开发、测试和生产环境之间切换。

设置环境变量步骤:

  1. 在“环境”快速查找栏下拉选择环境或新建环境。

在这里插入图片描述

  1. 在打开的环境标签中添加变量。
变量名      | 初始值        | 当前值
baseUrl     | https://api.example.com | https://api.example.com

在这里插入图片描述

3. 集合变量(Collection Variables)

用于存储在特定集合范围内的变量。适合那些仅在当前集合下通用的数据。

设置集合变量步骤:

  1. 打开某个集合的设置。
  2. 进入“Variables”标签并添加变量。
变量名      | 初始值     | 当前值
apiVersion  | v1         | v1

在这里插入图片描述

4. 局部变量(Local Variables)

局部变量主要在脚本中设置并使用,如在Pre-request Script或Tests脚本中创建,并仅在脚本执行过程中有效。

设置局部变量步骤:

  1. 在“Pre-request Script”或“Tests”脚本中使用pm.variables.set()方法。
// 设置一个局部变量
pm.variables.set("sessionId", "123456");

变量的使用

在请求URL、请求头、请求体、测试脚本等地方,通过花括号{{variableName}}的方式引用变量。

示例:

GET {{baseUrl}}/{{apiVersion}}/data
Authorization: Bearer {{apiKey}}

这样配置可以确保,只需要更改环境或调整变量,就能对请求进行快速修改,极大地提高测试的灵活性和可维护性。

示例:在Test Script 设置局部变量

在 Postman 中获取一个 token 并以变量的形式在后续请求中使用,通常涉及到两步:

  1. 发送一个请求来获取 token。
  2. 使用 Postman 的测试脚本功能将 token 保存为一个环境或全局变量。

以下是整个过程的步骤:

步骤 1: 发送登录/身份验证请求以获取 Token

假设你有一个登录 API,它在成功身份验证后返回一个 token,你可以创建一个 POST 请求到登录接口:

  1. 创建一个新的请求。
  2. 在 “Method” 下拉菜单中选择 “POST”。
  3. 输入身份验证 API 的 URL。
  4. 如果 API 需要某些参数,比如用户名和密码,将它们添加到 “Body” 部分,并选择 “raw” 数据格式。

步骤 2: 编写测试脚本来提取和存储 Token

在你接收到身份验证 API 响应后,你需要提取 token 并将其作为变量存储。这可以在 Postman 请求的 “Tests” 标签中完成,使用 JavaScript 编写脚本。

  1. 在 Postman 中对于有 token 返回的请求,在 “Tests” 标签中编写 JavaScript 代码。
  2. 使用pm.response.json()来解析 JSON 响应,并提取 token。
  3. 使用pm.environment.setpm.globals.set来设置环境或全局变量。

比如你的身份验证响应返回如下结构的 JSON:

{
    "access_token": "your_access_token",
    "expires_in": 3600
}

那么可以这样写测试脚本:

var jsonData = pm.response.json();
pm.environment.set("token", jsonData.access_token);

这个脚本会将access_token字段中的 token 设置到名为 “token” 的环境变量中。

步骤 3: 在其他请求中使用 Token

之后,你可以在其他需要使用这个 token 的 API 请求中,如下所示引用该变量:

Authorization: Bearer {{token}}

在 “Authorization” 标签中你也可以选择 “Bearer Token” 类型,并在 Token 字段中填写{{token}}来自动添加它。

确保在发送包含 token 的请求之前,选择要使用变量的正确环境(如果使用了环境变量)。

注意

  • 第二步中,pm.environment.setpm.globals.set的差异在于,前者将变量保存在当前选定的环境中,后者保存在全局变量中。根据你的需要选择一种方式来设置你的 token。
  • 使用环境变量的一个最佳实践是创建不同的环境,例如开发、测试和生产环境,然后在相应环境中使用对应的变量值。
  • 需要确保环境已经被创建并且被选中,这样设置的变量才会被正确分配到该环境中

变量的嵌套

在Postman 中的变量定义可以嵌套吗? 答案是可以的,类似定义的变量如下:

{{variable_{{anotherVariable}}_suffix}}

举例来说:
在全局变量中定义了 MyApp 这个系统的登录用户的变量MyApp_LOGIN_USER。(在全局变量集中定义各系统的变量,便于集中管理和编辑)
在这里插入图片描述

在某个集合的变量中定义了一个 APP_NAME 的变量
在这里插入图片描述

接下来,在请求的参数中(这里使用Basic认证),就可以使用 {{{{APP_NAME}}_LOGIN_USER}},这个变量对应的就是在全局变量中定义的MyApp_LOGIN_USER。
在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/736594.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

表驱动法 -优化逻辑分支

表驱动法 -优化逻辑分支 定义 表驱动法(Table-Driven Approach)是一种编程模式,可以将输入变量作为直接或间接索引在表里查找所需的结果或处理函数,而不使用逻辑语句(if-else 和 switch-case)。索引表可以…

安卓中使用ttf字体文件

官方文档中提供的方法要设备能访问google? 官方方法 直接下载字体的fft文件 我要使用的是lexend 需要的格式可以在里面搜索 使用下载的ttf文件 解压出来 可以单独使用static里面的,里面是直接的lexend的各种格式 但是我这里直接使用Lexend-Vari…

连接Huggingface报requests.exceptions.SSLError错误

最近在学习使用 SHAP 算法解释 BERT 模型的输出结果,然而在从 Huggingface 上导入模型和数据集的过程中出现了网络连接相关的错误,本文用于记录错误类型和解决错误的方法。 1 代码示例 SHAP 官方展示的代码如下: import datasets import nu…

Linux应急响应——知攻善防应急靶场-Linux(1)

文章目录 查看history历史指令查看开机自启动项异常连接和端口异常进程定时任务异常服务日志分析账户排查总结 靶场出处是知攻善防 Linux应急响应靶机 1 前景需要: 小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我&…

视频格式怎么转换?9 个免费视频转换工具

前 9 款免费视频转换器有哪些?在此视频转换器评论中,我们收集了一些有用的提示并列出了顶级免费视频转换器软件,还找出了适合所有级别(从初学者到专家)的最佳免费视频转换器。 1. Geekersoft免费在线视频转换 最好的免…

【报错】JDBC SQL语句表名报错 解决办法

解决办法 修改检测等级 不是检测有问题吗,那就将idea的检测问题取消掉或者修改检测问题等级,根本问题上我们写的sql语句是一个字符串传过去,只要在mysql查询语句能够正确执行,不要这种检测也罢。

实际项目开发:Spring集成Redis,并实现短信登录功能

redis新手,学了几种基本数据类型,却不知道怎么使用? 总是一边学一边忘? 学会了Redis的大多数使用命令,却不知道如何在项目中使用? 本文将从实际出发,为大家解决这些问题。 我是蚊子码农&#xf…

TikTok账号运营:静态住宅IP为什么可以防封?

静态住宅IP代理服务是一种提供稳定、静态IP地址并可隐藏用户真实IP地址的网络代理服务。此类代理服务通常使用高速光纤网络来提供稳定、高速的互联网体验。与动态IP代理相比,静态住宅IP代理的IP地址更稳定,被封的可能性更小,因此更受用户欢迎…

JAVA学习过程中遇到的问题

前言 记录学习过程中遇见的各种问题。希望对你有帮助。 目录 前言 1、新建maven项目时,archetype项目骨架加载慢 2、maven的pop.xml添加依赖项无法检测到 3、java: 无效的目标发行版: 20 4、idea添加maven依赖太慢 5、CTRLCV复制粘贴太慢 6、Swagger写接口文…

20240621日志:大模型压缩-从闭源大模型蒸馏

目录 1. 核心内容2. 方法2.1 先验估计2.2 后验估计2.3 目标函数 3. 交叉熵损失函数与Kullback-Leibler(KL)损失函数 location:beijing 涉及知识:大模型压缩、知识蒸馏 Fig. 1 大模型压缩-知识蒸馏 1. 核心内容 本文提出在一个贝…

(Amazing!) 通过 vfox 在 Windows 上安装管理多个 Erlang/OTP 和 Elixir 的版本

大概一个多月前, 我写了篇关于如何使用跨平台版本管理工具 vfox 在 Linux 系统下安装管理多个 Erlang/OTP 版本的文章 -> 通过 vfox 安装管理多版本 Erlang 和 Elixir. 文章使用的示范操作系统是 Ubuntu 20.04 Linux 操作系统. 最近 vfox-erlang 和 vfox-elixir 插件的最新…

如何关闭软件开机自启,提升电脑开机速度?

如何关闭软件开机自启,提升电脑开机速度?大家知道,很多软件在安装时默认都会设置为开机自动启动。但是,有很多软件在我们开机之后并不是马上需要用到的,开机启动的软件过多会导致电脑开机变慢。那么,如何关…

xshell使用vi命令:bash:vim:command not found

你们好,我是金金金。 场景 此时我通过xshell客户端连接到了远程的虚拟机。想用vi命令编辑一个文件时,显示:bash: vim: command not found 排查 看报错提示就可以知道,没找到vim命令 解决 使用包管理器 apt 来安装 vim 更新你的软…

springboot+vue+mybatis旅游管理+PPT+论文+讲解+售后

随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.旅游管理系统将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本文以jsp…

ubuntu18.0.4安装gradio踩坑记

Collecting pandas (from gradio) Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/c3/e2/00cacecafbab071c787019f00ad84ca3185952f6bb9bca9550ed83870d4d/pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl (9.5MB) 100% |████████████████…

Python学习打卡:day14

day14 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day14102、封装三大特性对用户隐藏的属性和行为私有成员使用私有成员 103、封装的课后习题104、继承单继承多继承 105、复写父类成员和调用父类成…

神经网络学习3-卷积层

膨胀卷积,也被称为空洞卷积或扩张卷积,是一种特殊的卷积运算,它在标准卷积的基础上引入了一个额外的超参数,即膨胀率(dilation rate)。这个超参数决定了在卷积核的元素之间插入多少额外的空间。通过这种方式…

图解注意力

图解注意力 Part #2: The Illustrated Self-Attention 在文章前面的部分,我们展示了这张图片来展示自注意力被应用于正在处理单词"it"的一层中: 在本节中,我们将看看这是如何完成的。请注意,我们将以一种试图理解单…

Linux系统编程--软/硬连接

真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。 命令: 软连接:ln -s 原文件名 新文件名 硬链接:ln 原文件名 新文件名 删除链接文件:unlink 文件名执行上面两条命令…

linux 简单使用 sftp 和 lftp命令

目录 一. 环境准备二. sftp命令连接到SFTP服务器三. lftp命令3.1 连接FTP和SFTP服务器3.2 将文件从sftp服务器下载到本地指定目录 四. 通过WinSCP命令行从SFTP服务器获取文件到Windows 一. 环境准备 ⏹在安卓手机上下载个MiXplorer,用作SFTP和FTP服务器 官网: htt…