我是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"
}
答案 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"