我看过关于环境的邮递员文档:
https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables
图像表示环境是集合的本地环境,我在邮递员中没有看到这种情况。
我有很多项目,每个项目都有自己的集合,我想为每个项目设置不同的环境 url。但是,我看到环境是通过所有集合共享的。如何使环境成为集合的本地环境?
谢谢!
Siv*_*ngh 15
您发布的图片实际上定义了如何解析变量。\n您可以有不同类型的变量。
\n\n哪个是:
\n\n假设您有一个值为 5 的变量“a”,定义为全局变量。\n但是您还有一个值为“7”的集合变量“a”\n因此,当您发送请求,变量的解析顺序就是图片告诉您的。
\n\n全局 > 集合 > 环境 > 本地 > 数据\n - 这是解析的顺序。
\n\n因此,将像这样完成:
\n\n全局 (a = 5) > 集合 (a = 7) > 环境 (a 未定义) > 本地 (a 未定义) > 数据 (a 未定义)
\n\n因此,经过解析顺序后“a”的最终值为7
\n\n环境变量可用于工作区中的所有集合\n每个环境特定于工作区。\n全局变量也是如此。
\n\n如果您想使用仅特定于每个集合的变量,那么您需要使用集合变量
\n\n要添加集合变量,只需转到侧边栏并将鼠标悬停在要为其添加变量的集合上,然后单击 \'\xe2\x97\x8f\xe2\x97\x8f\xe2\x97\x8f\'
\n\n然后单击“编辑”>“变量”> 添加您希望仅特定于此集合的变量。
\n\n\n\n现在,在请求中,您可以以与使用其他变量类似的方式使用这些变量。\n例如:https:// {{url}} /get?foo=bar
\n\n或者在测试脚本中:
\n\nconsole.log(pm.variables.get(\'car\')); // \'astonMartin\'\nRun Code Online (Sandbox Code Playgroud)\n\n邮递员将为您完成剩下的工作。
\n\n当您有不同的环境(例如 PROD、STAGING、BETA 等)时,环境变量会派上用场。很多人都这样使用它们。\n否则,它们只是变量,因此可以随意使用。
\n\n或者,如果您想对几个集合使用一个环境,对另一个集合使用另一个环境。\n然后创建多个工作区,并向其中添加具有相应环境的集合。最后,根据需要在这些工作区之间切换。
\nbig*_*oni 12
或者也许只是放弃邮递员的环境功能,并简化并仅使用 Pre-req 脚本和{{URL}}方法,只需对每个集合重复:
const ENVIRONMENTS = {
DEV: {
name: "development",
url: "http://localhost:3000"
},
STAGE : {
name: "staging",
url: "..."
},
PROD : {
name: "production",
url: "..."
}
};
pm.collectionVariables.set("URL", (ENVIRONMENTS.DEV).url);
Run Code Online (Sandbox Code Playgroud)
或者也许...使用 Postman 的环境功能只是为了设置环境变量。然后在每个集合预请求脚本中读取该变量,只需选择环境:
...
envName = pm.environment.get('Environment')
const selected = ENVIRONMENTS[envName]
pm.collectionVariables.set("URL", selected.url);
pm.collectionVariables.set("Token", selected.token);
Run Code Online (Sandbox Code Playgroud)
我带着同样的问题找到了这里,并想出了一种方法来伪造它。我的目标是能够轻松导出集合,而无需导出整套环境变量(包括其他项目的环境变量)来支持它。
基本上,您可以为集合中想要的每组环境特定值创建一个代理变量。
首先,编辑您的集合并使用预请求脚本将环境名称设置为环境变量。我认为可能有一个内置变量可以实现这一点,但没有找到。
pm.environment.set("envName", pm.environment.name)
Run Code Online (Sandbox Code Playgroud)
接下来,在新的集合变量中使用该变量,该变量充当具有环境特定值的匹配变量的代理。或者,您也可以在预请求脚本中创建代理变量。
{{url}} -> {{{{envName}}-url}} -> {{ee-url}} -> your url for ee environment
-> {{pr-url}} -> your url for pr environment
Run Code Online (Sandbox Code Playgroud)
最后,您可以正常使用代理变量。
{{url}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |