Variables

什么是变量

变量是一个符号,可以接受不同的值。你可能根据你的项目经验,对其他语言的变量比较熟悉。在postman 的工作原理也是一样的

为什么使用变量

变量允许你在不同的地方重复使用这个值,因此你可以保持你的代码DRY(Dont't Repeat Yourself). 如果你想改变这个值,那么你可以改变这个变量一次,其他地方引用这个变量就会自定改变

如果你有多个API使用相同的域名 your-domain.com 。你可以保存这个域名作为一个变量,代理重复使用这个值:{{domian}}/uri

借助于postman Script脚本作用,你可以设置一个变量的值,复制一个请求的数据在其他的请求的中使用

变量的作用域

有以下的变量作用域:

1. Global---全局
2. Enviroment --- 环境变量
3. Local --- 局部
4. Data ---- 数据

如果一个变量在两个不同的作用域。那么拥有较高级别作用域优先,postma 解析变量是由大范围都小范围解析的

优先级从高到底
Data ---- > Local ---- > Enviroment ---- > Global

在请求的构建器中访问变量

变量在postman 中使用是用下面方式:{{variableName}},当 postman 解析变量事,这个字符串{{variableName}} 会被替换为响应的值。

比如一个环境变量 enviroment variable url 的值被定义为http://localhost,你可以使用{{url}}在请求的输入框中将被替换为http://localhost,当请求被发送的时候

由于变量在请求builder中被访问是使用字符串代替的,因此,你可以在请求builder的任何地方添加文本,这包括URL,URL parameters,headers,authorization, request body ,header presets
postman 解析这些变量是通过作用域规则

访问变量通过脚本(scripts)

变量可以被使用在pre-requesttest script中。因为这些部分是通过JavaScript来写的

你可以以不同的方式初始化和检索这些变量。可以在脚本中初始化变量,并将它们放在特定的范围内

  1. 定义一个变量在脚本中
    在脚本中设置一个变量可以根据变量预定的范围通过pm.environment.set("variable_key", "variable_value");方法或者pm.globals.set("variable_key", "variable_value");方法,这方法要求提供变量的keyvalue去设置变量。当你发送请求的时候,这脚本将会执行,值将会保存在变量中

  2. 取一个预定义的变量
    一旦一个变量被设置,你可以使用pm.environment.get("variable_key");或者pm.globals.get("variable_key"); 根据适合的范围去获取变量值。这方法要求提供一个变量名作为参数去检索储存的值

  3. 设置一个变量在作用域中
    可以访问环境变量在相应的环境模板。全局变量可以广泛的访问,不管选择的作用域

打印变量 --- Logging variables

经常在脚本中使用变量时,你可能需要看到变量获取到的值,你可以使用Postman Console去实现的。应用菜单,选择View然后在选择Show Postman Console,去打印变量的值。你可以在脚本中使用console.log("domain)";`当你发送请求时,这脚本将会执行,参数对应的值也会打印在Postman Console

Data variables 数据 变量

Collection Runner让你导入一个CSV或者JSON文件,然后在HTTP请求和脚本中使用文件中的值。我们把这些值叫做Data variables。使用它们在postman中,相同的语法和环境,全局变量

Data variables in requests

变量在postman中使用在{{}}中,比如在 URL 参数 {{username}} 和 {{password}} 将被替换对应文件中变量的值

Data variables in pre-request and test scripts

pre-request test scripts使用,用的是指定的data对象去加载来着文件的值。比如:data.username 或者 data["username"] 去访问文件中对应的username变量

更多的文件数据,参考working with data files

Dynamic variables 内置的动态变量

postman有一些动态变量,你可以在请求中使用。动态变量不能再沙盒中使用,仅仅可以在请求的URL/headers/body中使用

  • {{$guid}} 添加一个v4风格的guid

  • {{$timestamp}} 添加一个当前的时间戳

  • ${{$randomInt}} 添加一个 0--10的随机数

Quick Look for variables 快速查看变量

快速查查是一个快速预览功能展示所有你的环境和全局变量咋一个地方。
点击右上角眼睛的图表展示

Autocomplete and tooltips for variables 提示 ,自动补全变量

postman变量有两个非常有用的特征 autocomplete 和 tooltips,让变量更加好用

Manage environments

每一个环境变量都是一个键-值对,key可以看做变量名称。他们可以被编辑使用

环境和全局变量都会保存为字符串,如果你想要保存一个对象或者数组,首先确定使用JSON.stringify(),再去保存。在使用之前使用JSON.parse()

What are environments?

在使用API工作时,你经常需要有设置不同,比如:你的本地机器,开发服务器,生产服务器。
Environments对能使你使用变量来定制请求,你可以很方便的切换不同的设置而不需要改变你的请求。

Environments 是一组变量键-值对

Environments 是能够下载保存为JSON 文件,并在之后上传使用的

Create a new environment

点击右上角齿轮的图表,选择Manage Environments,在点击Add按钮去创建一个新的环境

Manage environment

Select an active environment

选择一个环境,一旦你选择了一个环境,你就可以还有在这个环境的变量和对应的变量值了

Edit an active environment

点击那个眼睛图标,展示环境和全局变量,点击环境变量的Edit将打开一个模态框编辑键-值对

Share an environment

这是 Postman Pro feature 的功能

分享之前最好复制一份,把复制的一份分享出去

Manage globals

全局变量提供了一组变量,这些变量总是在所有范围内供您使用,你可以有很多environments,,但是只有一个是活动的在某一个时间,但是你只有一组全局变量,它们总是可用的。

Manage global variables

点击右上角齿轮的图表,选择Manage Environments,在点击Globals 按钮境打开全局变量的管理界面

View global variables

点击那个眼睛图标,展示环境和全局变量,点击全局变量的Edit将打开一个模态框编辑键-值对

原文地址:https://segmentfault.com/a/1190000012077563

postman-变量的更多相关文章

  1. postman变量的使用和设置

    之前只是使用postman做接口管理——将各个项目使用到的接口分类管理起来,用的时候手动改参数调用.这次项目连着跑三个接口,需要用到前一个接口的参数,还来回切平台,真的很麻烦,所以就搜了一下有什么便利 ...

  2. WebAPI之postman变量和session/token

    postman使用变量: 之前我们请求里面的主机地址都是localhost,表示本机.而在实际测试过程中,服务器地址往往并非是在本机上的,这时候就需要用到变量. postman支持多个测试环境,一个环 ...

  3. PostMan变量与断言应用(对标Jmeter)

    常见的接口测试工具有PostMan/Jmeter/SoapUI,当然,也有一些公司为了更贴近自身的应用开发了一些小工具. 从功能上对比,Jmeter更为强大,既能做压测还能测接口,扩展性也比较好. B ...

  4. postman Variables变量的详解与应用

    变量 变量类型(按照作用域划分) 全局变量(全局环境里面的变量) 集合变量(请求集合里声明的变量) 自定义环境变量 数据变量(在runner时文件变量) 本地变量 变量权重类型 全局变量 < 集 ...

  5. postman headers 请求参数和MD5加密签名

    postman 变量可以这样写:{{timestamp}} ,也可以用系统的,{{$timestamp}},这样就不用给自己赋值了,但在 pre-requestScript中是获取不到这个值的 所以我 ...

  6. 接口测试与Postman

    阅读目录 1.接口测试简介 1.1 什么是接口测试  1.2 接口测试的必要性 1.3 接口测试流程 1.4 接口文档 1.5 接口测试用例设计 1.6 接口测试用例模板 2.Postman 2.1 ...

  7. 十、collection的作用+变量

    一.collection作用?容器 组织业务逻辑 导入导出 其他功能,比如监控和mock server 二.为什么要使用变量 假设我们需要测试n个api,这些api的domain都是相同的,比如 ap ...

  8. 【Postman】使用Postman实现接口数据关联

    首先下载安装Postman直接打开官网,点击下载按钮即可完成下载https://www.getpostman.com/downloads/ 栗子业务场景:用户登录医生账户,查询自己的处方列表数据:用户 ...

  9. 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)

    目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...

  10. 关于Postman你必须学会的技能

    关于Postman 工欲善其事,必先利其器,在了解了接口测试之后,就要选择一款适用的工具.之所以选择postman是因为它简单.容易上手.能覆盖大多数HTTP接口测试场景,性价比极高. Postman ...

随机推荐

  1. LeetCode.1002-寻找共有字符(Find Common Characters)

    这是悦乐书的第375次更新,第402篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第236题(顺位题号是1002).给定仅由小写字母组成的字符串A,返回列表中所有字符串都 ...

  2. Centos6.5修改mysql登陆用户密码

    1.修改mysql的登陆设置: vim /etc/my.cnf 并在[mysqld] 下面添加一句:skip-grant-tables=1 添加成功后保存退出. 2.重启mysql并修改密码 重启my ...

  3. python基础--面向对象之封装

    # 在python中用双下划线,开头的方式将属性隐藏起来(设置成私有的) # 但其实这只是一种变形操作,而且仅仅在类定义阶段会发生变形 # 类中所有双下划线开头的如__x都会在类定义的时候自动形成:_ ...

  4. USACO4.1 Beef McNuggets【数学/结论】

    吐槽/心路历程 打开这道题的时候:*&@#%*#?!这不是小凯的疑惑吗?好像还是个加强版的?我疑惑了.原来$USACO$才是真的强,不知道什么时候随随便便就押中了题目. 对于我这种蒟蒻来说,这 ...

  5. USACO1.5 Mother's Milk【搜索】

    题目传送门 这道题还记得是我当年学广搜的时候做过. 如今再做,做了一个$dfs$版本的,比较简单,直接搞就可以了. 广搜的话,用结构体保存,然后塞到$queue$里面就可以了. /* ID: Star ...

  6. 【VS开发】【图像处理】 bayer, yuv, RGB转换方法

    因为我的STVxxx USB camera输出格式是bayer格式,手头上只有YUVTOOLS这个查看工具,没法验证STVxxx在开发板上是否正常工作. 网上找了很久也没找到格式转换工具,最后放弃了, ...

  7. 深入理解java:2.4. 线程本地变量 java.lang.ThreadLocal类

    ThreadLocal,很多人都叫它做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多. 可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那样每个线程可以访问自己内 ...

  8. Linux文件目录的权限

    权限对文件的重要性:(主要是针对文件的内容而言,与文件名没有关系) r: 可读取此文件的实际内容. w: 可以编辑.新增或者修改该文件的内容(但不能删除该文件) x: 该文件具有可以被系统执行的权限. ...

  9. python 并发编程 多线程 互斥锁

    互斥锁 并行变成串行,牺牲效率 保证数据安全,实现局部串行 保护不同的数据,应该加不同的锁 现在一个进程 可以有多个线程 所有线程都共享进程的地址空间 实现数据共享 共享带来问题就会出现竞争 竞争就会 ...

  10. sql回显注入-笔记

     拼接sql命令查询数据   注释 常用于sql注入            # 井号 单行注释 注意:URL编码 %23          -- 两个减号加空格 单行注释           /*   ...