Variables
变量是一个符号,可以接受不同的值。你可能根据你的项目经验,对其他语言的变量比较熟悉。在postman 的工作原理也是一样的
为什么使用变量
变量允许你在不同的地方重复使用这个值,因此你可以保持你的代码DRY(Dont't Repeat Yourself). 如果你想改变这个值,那么你可以改变这个变量一次,其他地方引用这个变量就会自定改变
如果你有多个API使用相同的域名www.test.com。你可以保存这个域名作为一个变量,代理重复使用这个值:{{domian}}/api/
借助于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-request和test script中。因为这些部分是通过JavaScript来写的
你可以以不同的方式初始化和检索这些变量。可以在脚本中初始化变量,并将它们放在特定的范围内
- 定义一个变量在脚本中
在脚本中设置一个变量可以根据变量预定的范围通过pm.environment.set("variable_key", "variable_value");方法或者pm.globals.set("variable_key", "variable_value");方法,这方法要求提供变量的key和value去设置变量。当你发送请求的时候,这脚本将会执行,值将会保存在变量中 - 取一个预定义的变量
一旦一个变量被设置,你可以使用pm.environment.get("variable_key");或者pm.globals.get("variable_key"); 根据适合的范围去获取变量值。这方法要求提供一个变量名作为参数去检索储存的值 - 设置一个变量在作用域中
可以访问环境变量在相应的环境模板。全局变量可以广泛的访问,不管选择的作用域
打印变量 --- Logging variables
经常在脚本中使用变量时,你可能需要看到变量获取到的值,你可以使用Postman Console去实现的。应用菜单,选择View然后在选择Show Postman Console,去打印变量的值。你可以在脚本中使用console.log("domain)";`当你发送请求时,这脚本将会执行,参数对应的值也会打印在Postman Console
Data variables 数据 变量
Collection Runner让你导入一个CSV或者JSON文件,然后在HTTP请求和脚本中使用文件中的值。我们把这些值叫做Data variables。
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的随机数
-----------------------------------------------------------------------------------------------------------------
如何引用外部数据文件进行参数化?---详细步骤
Pre-request Script就是在请求开始前就已经执行了。
- 准备数据文件,user.xt
- 配置好请求后在Pre-request Script中写入如图代码后,在需要引用变量的地方引用即可。{{key}}
var name=data.数据文件中的参数名
pm.environment.set("variable_key",name)
- 点击文件夹右侧的三角图标后,再点击Run
- 设置完成后,点击R下面的Run 按钮得到结果
- 重新执行可点击Retry
设置环境变量和全局变量在这篇文章讲过:配置环境变量和全局变量