使用newman / postman设置输出变量已被切断

时间:2018-11-28 01:39:01

标签: azure-devops postman newman postman-collection-runner

我有一个输出变量siteToDeploysiteToStop。我正在使用邮递员针对II​​S管理API运行测试脚本。在其中一个请求的测试部分中,我尝试设置azure devops输出变量。它可以正常工作,但是由于某种原因,可变值被切断了。

这是邮递员中的测试脚本:     console.log(pm.globals.get(“ siteName”))

var response = pm.response.json();

var startedSite = _.find(response.websites, function(o) { return o.name.indexOf(pm.globals.get("siteName")) > -1 && pm.globals.get("siteName") &&  o.status == 'started'});
var stoppedSite = _.find(response.websites, function(o) { return o.name.indexOf(pm.globals.get("siteName"))  > -1 &&  o.status == 'stopped'});

if(stoppedSite && startedSite){

    console.log('sites found');

    console.log(stoppedSite.id)
    console.log('##vso[task.setvariable variable=siteToDeploy;]' + stoppedSite.id);
    console.log('##vso[task.setvariable variable=siteToStop;]' + startedSite.id);
}

这是纽曼的输出形式: Newman

这是命令行任务的输出,回显了$(siteToDeploy)变量。它正在设置,但不是整个值。 enter image description here

我尝试将其转义,但这没有任何效果。我还创建了一个静态命令行回显,其中设置了变量并且工作良好。因此,我不确定是纽曼问题还是Azure遇到问题。

1 个答案:

答案 0 :(得分:0)

问题使我们成为Azure试图解析Newman控制台日志输出的方式。我不得不添加一个额外的Powershell任务来替换从Newman输出返回的'

这是什么样子:

##This task is only here because of how Newman is writing out the console.log 
Param(
[string]$_siteToDeploy = (("$(siteToDeploy)") -replace "'",""),
[string]$_siteToStop = (("$(siteToStop)") -replace "'","")
)
Write-Host ("##vso[task.setvariable variable=siteToDeploy;]{0}" -f  ($_siteToDeploy))
Write-Host ("##vso[task.setvariable variable=siteToStop;]{0}" -f ($_siteToStop))