postman中的变量与使用。
一、变量的区别:环境、全局、动态、数据。
环境变量
postman可以设置多套环境,每套环境里可以有多个环境变量。环境变量是特定的环境下引用的变量,必须要制定对应的环境才能引用到其中的变量,切换环境,就可进行引用。
注:多环境切换,这个操作也是非常实用的一个东东,在实际的开发中会大大的减少测试的操作环节,Postman的环境个数不限,可以根据实际需求,定义多个项目环境,并任意的轻松的在环境之间进行切换。一个环境可以包含多个变量,一个变量只能属于某个环境,在一个环境中变量不可重复定义,在环境与环境之间可以定义重复的变量,例如:项目A中可以定义一个base_uri,在项目B中也可以定义一个base_uri,但是在项目A中不能同时出现两个base_uri。
全局变量
postman只可以设置一组全局变量,作用于整个postman。
全局变量是在postman中所有的api都使用的变量,可以直接引用全局变量中的变量,而不用指定环境;
动态变量
Postman也有一些动态变量,可以用在你的request中。在request header中包含时间戳或者在URL参数中发送一个随机字符串,时间戳和随机字符都属于动态变量。
注意:动态变量在pre-request script中设置,但不可以用于SandBox中,你只能在request的URL、headers、body中以放在双花括号中间的形式使用。
通过js脚本Math.round(new Date().getTime()/1000) 获取linux时间戳,zai将获取的timestamp设为环境变量;
var timestamp = Math.round(new Date().getTime()/1000)
通过{{timestamp}}获取上一步设置的环境变量值,设为请求header
pm.environment.set("timestamp", "timestamp");
在header 里对应的变量值里引用{{}}
数据变量
集合运行器让我们导入CSV或JSON文件,然后在HTTP请求和脚本中使用来自数据文件的值。这些变量称为数据变量。
数据变量使用之前要在pre-request script中定义过。eg:var name=data.name
变量优先级
数据变量(在collection中使用数据驱动前提下)>环境变量>全局变量
二、变量的配置
1. 右上角配置。
进入 Postman 工具,点击右上角设置按钮 -> Globals/Environment -> 设置变量名和变量值
- 在test选项模块配置。
- 可以从response里拿到变量的值,用JSON.parse或pm.response方法,然后把变量设置为环境或全局变量。
var jsonData=JSON.parse(responseBody)
var jsonData=pm.response.json()
pm.globals.set("variable_key", "variable_value");
pm.environment.set("variable_key", "variable_value");
三、使用变量
在使用时,需要使用双大括号将被使用的参数阔起来,例如:
单个参数的情况:{{variable}}
多个参数的情况:{{variable01}}{{variable02}}
注:使用Postman自动补全功能,当键入一个大括号时,会显示全部的变量,选择某个变量后,敲回车键,即可快速插入变量
Postman三大内值变量
变量 | 描述 |
---|---|
{{$guid}} | v4风格的guid |
{{$timestamp}} | 当前的时间戳 |
{{$randomInt}} | 0–1000的随机数 |