Postman 局部机器环境变量

Postman 局部机器环境变量,postman,Postman,我还有一个问题:我在工作和家用电脑上都有相同的网站环境,但里面有不同的数据库记录。 因此,在这种情况下,对于本地环境上的测试请求,我需要不断更改测试值 Postman对变量有不同的作用域(请参阅) 在我的例子中,集合范围中保存的是生产变量。在环境作用域上,我通过本地配置重写此值 集合变量 站点\u域- 用户ID-1234567890 环境变量 站点\u域- 用户ID-123 在家里,我有相同的域,但另一个用户id,每次我想在家里运行请求时,我都需要在环境变量中更改它 我想将用户\u ID设置为仅

我还有一个问题:我在工作和家用电脑上都有相同的网站环境,但里面有不同的数据库记录。
因此,在这种情况下,对于本地环境上的测试请求,我需要不断更改测试值

Postman对变量有不同的作用域(请参阅)

在我的例子中,集合范围中保存的是生产变量。在环境作用域上,我通过本地配置重写此值

集合变量 站点\u域-
用户ID-1234567890

环境变量 站点\u域-
用户ID-123

在家里,我有相同的域,但另一个用户id,每次我想在家里运行请求时,我都需要在环境变量中更改它

我想将用户\u ID设置为仅在本地计算机上的另一个值


是否可以用本地机器范围重写变量?有本地层,但文档中没有对其进行描述。

如果我正确理解了这个问题:

您可以在本地环境文件
local\u dev
或其他文件中添加一个值,以运行检查以查看它是否存在,然后在
pre-request script
中使用一些逻辑来查找该值(如果存在),然后在发出请求之前将USER\u ID变量更改为您想要的变量,如果不存在,则不执行任何操作

大致上,类似这样但更优雅的东西:

if(pm.environment.get('local_dev') === 'some_value') {
    pm.environment.set('USER_ID', 1234)
}

不过我可能完全误解了这个问题。

正如我看到的,局部变量就是我们在
pm.variables
范围的请求前脚本部分设置的变量

因此,我们可以覆盖环境值,而无需通过

pm.variables.set("VAR_NAME", "VAR_VALUE");
不幸的是,每次发送请求时,它都会在所有PC上运行。所以我们需要添加一些逻辑

正如@Danny Dainton所设想的,我们可以为dev-PC位置添加一些环境变量

因此,作为一种解决方法,我将变量
PC_ENV
添加到Local环境中,并在请求前脚本部分中为此添加一些逻辑

if (pm.environment.get('PC_ENV') === 'home') {
    pm.variables.set("USER_ID", "35");
}
我们怎么用这个?当我们开始与邮递员合作时,我们会进入我们的环境,设置PC_ENV家中或办公室的价值取决于我们现在的位置

如果我们不想每次都运行Pre-script部分,我们可以为每台电脑添加所有局部变量值,并根据设置要求的条件在工作开始时只运行一次

const needSetupEnvironment = true;//change to false when setup is finished
if (needSetupEnvironment) {
    const currentEnvironment = 'home';//setup environment before start work

    let userId;

    switch (currentEnvironment) {
        case 'home':
            userId = 35;
            break;
        default:
            userId = 123;
            break;
    }

    pm.environment.set('USER_ID', userId);
}
我们可以在需要更改环境变量时启用脚本,然后在安装程序使用正确的环境运行一次后禁用脚本。

除了每次更改同一个文件外,您是否可以拥有更多具有要使用本地配置值的环境文件?问题是变量
local\u dev
在所有PC的cause Postman sync环境中都是相同的,因此它无法将此值作为常量进行检查。我找到了解决此问题的另一个解决方案。我也不使用环境文件,因为这只可能在collection runner中实现,但我只需要发送请求。您在视频示例中使用了环境文件,我不确定是否理解。;/向
预请求中添加一些内容
应该会在发送请求之前更改变量值,因此同步不重要。您实际上不需要检查文件中的值,只需通过本地使用的
pm.environment.set('USER_ID',1234)
更改值即可。不幸的是
pm.environment
对于所有PC来说都很常见。它在邮递员云中变化。我在回答中提供了一种设置本地价值的方法,正如我所说,我不完全理解您的背景,我只会在is在您的团队中时这样做。一件让人困惑的事情是,家庭/办公室的命名是你现有的流程,当你基本上是指本地和产品(从OP中的URL判断)时,需要分开,在问题中写出问题不同于在解决方案上配对,我敢肯定,如果我们都在同一个地方,这将是一件很容易解决的事情,但你现在有了解决办法,所以一切都很好:)