变量

变量类型(按照作用域划分)

  • 全局变量(全局环境里面的变量)
  • 集合变量(请求集合里声明的变量)
  • 自定义环境变量
  • 数据变量(在runner时文件变量)
  • 本地变量

变量权重类型

全局变量 < 集合变量 < 自定义环境变量 < 数据变量 < 本地变量

变量范围

在请求构造器中使用变量

可以通过 {{variableName}} 的方式使用变量,如下图所示:

通过数据编辑器设置变量

postman在请求构造器的右上角提供了两处比较便捷的方式设置全局变量和自定义环境变量,分别是环境快速预览按钮和环境设置按钮。如下图所示:

环境快速预览页面

环境设置页面

------

全局变量 (globals variables)

全局变量保存在postman的全局环境中,全局变量可以通过UI或脚本进行设置。

在UI中设置全局变量

  • 打开方式1 : 环境快速预览按钮 》 Globals Tab页的Edit按钮
  • 打开方式2 : 环境设置按钮 》 Globals按钮

编辑UI如下

使用脚本操作全局变量

全局变量可以在 请求前脚本和测试脚本中进行设置和获取。

设置全局变量脚本如下:
pm.globals.set("variable_key", "variable_value");

语法 :pm.globals.set(“变量名”, “变量的值”);

获取全局变量脚本如下:
var globals_variable = pm.globals.get("variable_key");

语法 :pm.globals.get(“变量名”);


集合变量

集合指的多个请求的集合,集合中可以有多个文件夹(文件夹中有请求)或请求。

通过postman的UI设置集合变量

打开方式:集合 … 按钮 》 Edit 》 Variables

如下图所示:

通过脚本操作集合变量

集合变量可以在 请求前脚本和测试脚本中进行设置和获取。

设置集合变量脚本如下:
pm.collectionVariables.set("variable_key", "variable_value");

语法 :pm.collectionVariables.set(“变量名”, “变量的值”);

获取集合变量脚本如下:
var collectionVariable = pm.collectionVariables.get("variable_key");

语法 :pm.collectionVariables.get(“变量名”);


自定义环境变量(environment variables)

自定义环境变量(下面称之为 环境变量) 是postman中最常用的变量。首先,环境变量可以通过可视化UI进行编辑,导入,导出等操作,数据可视化效果好;然后,环境变量 可以设置多个环境,环境切换简单;最后,环境变量可以通过脚本进行修改。

通过UI设置环境变量

  • 打开方式1 :环境快速预览按钮 》 Edit
  • 打开方式2 :环境设置按钮 》 选择需要编辑的环境 》 点击

通过脚本操作环境变量

设置环境变量脚本
pm.environment.set("variable_key", "variable_value");

语法 :pm.environment.set(“变量名”, “变量的值”);

获取环境变量脚本
var environmentVariable = pm.environment.get("variable_key");

语法 :pm.environment.get(“变量名”);


数据变量(Data variables)

数据变量是指运行时指定的数据文件,postman 目前支持csv和json格式的数据文件。如果我们需要对一个或者多个请求进行多数据的批量测试,那么导入预设的数据文件绝对是一个好的选择。

导入数据文件

csv 和 json 数据格式如下:

打开方式 : 选择集合 》 runner(是个logo) 按钮 》 选择请求文件夹或请求 》 选择文件 (选择后可以预览数据)》 选择请求 》RUN

运行结果如下:

可以看出有三条测试数据,这里请求自动执行了三次。
在请求前置脚本中可以操作 数据变量 data ,但是在tests脚本中则无法操作 数据变量。

通过脚本在请求前置脚本中设置数据变量

设置数据变量脚本
pm.iterationData.set("variable_key", "variable_value");

语法 :pm.iterationData.set(“变量名”, “变量的值”);

获取数据变量脚本
var iterationData = pm.iterationData.get("variable_key");

语法 :pm.iterationData.get(“变量名”);


总结

postman 变量根据不同的测试需求应该灵活运用,一下是个人一些见解:

  1. 在集合中特有的变量,可以设置在集合变量中。首先,集合导出时回将集合变量一起导出(导入同理);其次可以减少环境变量的数量。
  2. 需要在集合间传递或共用的变量设置为环境变量。使用环境变量可以多个集合共用,并且导入导出简单,可以根据情况设置多个环境。
  3. 一些不变的变量设置为全局变量。例如:服务器地址等
  4. 批量测试,多组数据测试使用数据变量。可以预先设置测试数据,批量完成测试。

postman Variables变量的详解与应用的更多相关文章

  1. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

  2. PHP常量、变量作用域详解(一)

    PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域.对于初学者来说,变量的作用域是它们所驻留的页面.因此, 如果你定义了 $var,页面余下部分就可以访问 ...

  3. PHP变量作用域详解(二)

    学过C的人用PHP的时候一般会相当顺手,而且感到PHP太方便太轻松.但在变量作用域这方面却与C有不同的地方,搞不好会相当郁闷,就找不到错误所在.昨晚就与到这么一个问题,是全局变量在函数中的问题.今天搜 ...

  4. JAVA环境变量配置详解(Windows)

    JAVA环境变量配置详解(Windows)   JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解  Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLA ...

  5. JS变量对象详解

    JS变量对象详解 开年之后工作热情一直不是很高,这几天一直处于消极怠工状态.早上不想起床,起床了不想上班.明明放假之前工作热情还一直很高,一直心心念念的想把小程序项目怼出来,结果休假回来之后画风完全不 ...

  6. js变量类型详解

    <html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...

  7. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

  8. DOS批处理中%~dp0等扩充变量语法详解

    有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径%0代指批处理文件自身%1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推%~d0 是指批处理所在的盘 ...

  9. mysql的变量信息详解

    mysql的变量详解 执行show variables命令可以查看MySQL服务器的变量 变量名 默认值 说明 对应的配置文件参数 auto_increment_increment 1 自增长类型的初 ...

随机推荐

  1. NIO三大组件之Selector选择器

    什么是选择器 选择器的作用是完成IO的多路复用.一个通道代表一条连接通路,通过选择器可以同时监控多个通道的IO(输入输出)状况.选择器和通道的关系,是监控和被监控的关系. 使用 重要的成员 Selec ...

  2. springmvc 最权威的知识点

    1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,C ...

  3. 一个通用驱动Makefile-V2-支持编译多目录

    目录 前言 1. 特点 2. 分析 2.1 简要原理 2.2 具体分析 3. 源码 前言 该 Makefile 已经通过基于内核 Linux5.4 版本验证通过. 因为编写这通用驱动 Makefile ...

  4. socket 之send和recv原理剖析

    认识TCP socket的发送缓冲区和接收缓冲区 当创建一个TCP socket对象的时候会有一个发送缓冲区和一个接收缓冲区,相当与内存中的一片空间 send原理剖析 send是不是直接把数据发送给服 ...

  5. Dotnet洋葱架构实践

    一个很清晰的架构实践,同时刨刨MySQL的坑.   一.洋葱架构简介 洋葱架构出来的其实有一点年头了.大约在2017年下半年,就有相关的说法了.不过,大量的文章在于理论性的讨论,而我们今天会用一个项目 ...

  6. python编写自己的base64加解密工具

    0x00 Base64编码的用途 在网络传输中,不是所的的内容都是可打印字符,其中绝大多数数据是不可见字符,base64可以基于64个可打印字符来表示这些带有不可打印字符的传输数据. 0x01 Bas ...

  7. Excel模板导出之动态导出

    说明 目前Magicodes.IE已支持Excel模板导出时使用JObject.Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程. 本功能的想法.部分实现初步源于a ...

  8. Android Studio之显示本地时间

    •效果展示图 •代码 1 package com.example.table; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 ...

  9. 学习笔记-vue hash模式打包

    1.打包设置config->index.js 2.图片资源路径出现问题 设置下utils.js文件

  10. Python基础(十四):while循环与break、continue关键字

    前面我们已经学习了for循环,今天再带着大家讲述一下while循环.那么for循环和while循环,到底有什么区别呢? Python中for循环和while循环本质上是没有区别的,但是在实际应用上,针 ...