跳转到内容

变量与环境

Restorm 的变量存放在 环境文件夹中, 一个文件夹可以包含多套变量:每个环境一套。

一个环境就是一份键 / 值对清单。它可以包含子环境, 子环境会继承父级,并覆盖它们重新定义的部分。

要建模 stagingstaging / customer Astaging / customer B 这样的结构, 它正是合适的工具:共同的基础只写一次,只有差异部分需要重复。

环境的层级结构:父环境 “Petstore” 及其两个子环境 “Staging” 和 “Production”

环境选择器位于每个请求标签页 smartbar 的左侧。 它会显示一个彩色圆点和环境名称。

弹出面板提供一个**“应用到所有请求”**复选框:勾选后, 它会一次性切换整个文件夹 —— 想把一整个项目从 local 切到 staging 时, 这正是您需要的。

变量并不只是字符串。Restorm 提供以下类型:

类型它是什么
字符串一个字面值,原样发送
表达式一个 Handlebars 模板 —— 这是唯一会对 {{ }} 求值的类型
数值一个数字,带显示格式
布尔值真 / 假
日期时间一个 ISO 日期,带格式
颜色一个十六进制颜色值
密钥指向某个密钥来源的引用 —— 该值绝不会经过项目文件
列表一组值的列表
枚举 / 多选枚举由导入的枚举所约束的值
自定义列表 / 多选自定义列表自定义值列表中按标签做的选择
变量指向另一个变量的引用
环境指向某个环境的引用
空值显式的 null 值

从最一般到最具体 —— 后者胜出:

  1. 根环境,然后是链条上的每一个子环境;
  2. 环境自身的变量,按它们的声明顺序:因此一个变量可以依赖在它上方定义的那些变量;
  3. 由场景写入的运行变量(设置变量动作),它们会在执行期间覆盖环境;
  4. 请求自身的值(请求头、查询参数、路径参数),每一组都在已累积的上下文之上求值;
  5. 最后是直接写在请求字段里的 {{ }} —— 参阅 内联变量

此外,Restorm 会进行多轮解析:因此父环境中的某个表达式也能取到被子环境重新定义的值。

每个变量都有一个启用复选框。已停用的变量不会进入上下文 —— 这是暂时中和某个覆盖值而又不删除它的干净做法。

导入时,凡是值解析为空的键 / 值对都会被自动停用: 这样您的第一次执行就不会发出一大堆空的请求头。

任何表达式都是一个 Handlebars 模板,可用的 辅助函数超过一百个: 字符串、数学、日期、列表、编码、哈希、随机数据。