我看过有关环境的邮递员文档:
https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables
其中的图像表示环境是集合的本地环境,我没有在邮递员中看到这种情况。
我有很多项目,每个项目都有其集合,并且我想为每个项目设置不同的环境URL。但是,我看到所有集合都共享这些环境。如何使环境在集合本地?
谢谢!
答案 0 :(得分:2)
我在这里找到了同样的问题,并想出了一种方法来伪造它。我的目标是能够轻松导出集合,而无需导出我的整套环境变量(包括其他项目的环境变量)来支持它。
基本上,您要为集合中的每组特定于环境的值创建一个代理变量。
首先,编辑您的集合并使用预请求脚本将环境名称设置为环境变量。我认为可能有一个内置变量,但没有找到。
pm.environment.set("envName", pm.environment.name)
下一步,在新的集合变量中使用该变量,该变量充当具有环境特定值的匹配变量的代理。或者,您也可以在预请求脚本中创建代理变量。
{{url}} -> {{{{envName}}-url}} -> {{ee-url}} -> your url for ee environment
-> {{pr-url}} -> your url for pr environment
最后,您可以照常使用代理变量了。
{{url}}
答案 1 :(得分:0)
您发布的图片实际上定义了变量的解析方式。 您可以使用不同类型的变量。
其中:
假设您有一个变量“ a”,其值5定义为全局变量。 但是您还有一个 collection变量'a',其值为'7' 因此,在发送请求时,图片将告诉您解析变量的顺序。
全局>收集>环境>本地>数据 -这就是解决的顺序。
所以,将这样完成:
全局变量(a = 5)>集合(a = 7)>环境(a未定义)>本地(a未定义)>数据(a未定义)
因此,通过解决顺序后,最终的'a'值为 7
环境变量可用于工作区中的所有集合 每个环境都特定于工作空间。 全球人也是如此。
如果您只想使用特定于每个集合的变量,则需要使用集合变量
要添加集合变量,只需转到侧边栏,然后将鼠标悬停在要为其添加变量的集合上,然后单击“●●●”
然后单击“编辑”>“变量”>添加只希望特定于此集合的变量。
现在,在“请求”中,您可以像使用其他变量一样使用这些变量。 例如: https:// {{url}} / get?foo = bar
或在测试脚本中:
console.log(pm.variables.get('car')); // 'astonMartin'
邮递员将为您完成剩下的工作。
当您具有不同的环境(例如PROD,STAGING,BETA等)时,环境变量会派上用场。许多人都这样使用它们。 否则,它们只是变量,请根据需要使用它。
或者,如果您想将环境用于几个集合,将另一个环境用于另一个。 然后创建多个工作区,并使用相应的环境向其中添加集合。最后,根据需要在这些工作空间之间切换。
答案 2 :(得分:0)
或者干脆放弃 postman 的环境特性,简化只使用 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);