Newman / Postman-无法从命令行替换环境JSON中的键的值

时间:2019-04-03 21:06:19

标签: postman newman postman-collection-runner

我是Postman和Newman的新手。 我创建了一个简单的测试,该测试将环境变量JSON用于某些属性值。

当此键的值在environment.json中进行硬编码时,它运行良好,但是如果我尝试从命令行传递/替换键的值,则会失败。 我没有全局变量json,并且如果可能的话,最好不要使用它。

这是我的命令行: newman run "C:\Users\Automation\Postman\postman_autotest.json" --folder "AUTO" --global-var "client_secret=XXXX" --environment "C:\Users\Automation\Postman\postman_environment.json"

此值对于API的工作/连接至关重要,因此我收到了400条错误。

这是环境中的密钥。json

{
  "id": "673a4256-f5a1-7497-75aa-9e47b1dbad4a",
  "name": "Postman Env Vars",
  "values": [
        {
            "key": "client_secret",
            "value": "",
            "description": {
                "content": "",
                "type": "text/plain"
            },
            "enabled": true
        }
    ],
    "_postman_variable_scope": "environment",
    "_postman_exported_at": "2019-04-03T20:31:04.829Z",
    "_postman_exported_using": "Postman/6.7.4"
}

1 个答案:

答案 0 :(得分:0)

只是一个想法...您可以在运行时使用包装器Powershell脚本替换密钥,然后删除文件。

[CmdletBinding()]
Param (
    [Parameter(Mandatory)]
    [string]$Secret
)

$envFile = "C:\Users\Automation\Postman\postman_environment.json"
$envFileWithKey = "C:\Users\Automation\Postman\postman_environment_w_key.json"
$json = Get-Content $envFile -Raw | ConvertFrom-Json

$json.values[0].key = $Secret

ConvertTo-Json $json -Depth 10 | Out-File $envFileWithKey -Force

newman run "C:\Users\Automation\Postman\postman_autotest.json" --folder "AUTO" --environment $envFileWithKey

Remove-Item -Path $envFileWithKey

然后:

.\RunAutomation.ps1 -Secret "this_is_a_secret_sshhhhhh"