纽曼与AzureDevOps + Powershell

时间:2019-11-22 15:23:14

标签: powershell azure-devops postman newman

大家早上好

我正在尝试将邮递员测试与AzureDevops发布管道集成在一起。 我有两个步骤:

  • 第一步是安装newman
  • 第二步是使用 newman run comand
  • 运行收集脚本

第二步如下:

try
{
    $testFiles = Get-ChildItem *.postman_collection.json -Recurse
$environmentFile = Get-ChildItem *staging.postman_environment.json -Recurse

Write-Host $testFiles.Count files to test

foreach ($f in $testFiles)
{
   $environment  = $environmentFile[0].FullName

   Write-Host running file $f.FullName
   Write-Host usting environment $environment  


   $collection = $f.FullName
   $resultFile = "Results\" + $f.BaseName + ".xml"

   Write-Host running $collection
   Write-Host will create $resultFile


   $(newman run $collection -e $environment -r junit --reporter-junit-export $resultFile)  
}   

}
catch
{
    Write-Host "Exception occured"
    Write-Host $_
}

以上步骤未按预期工作。在发布日志中,我可以看到两条消息,例如:

   Write-Host running $collection
   Write-Host will create $resultFile

但是行

$(newman run $collection -e $environment -r junit --reporter-junit-export $resultFile) 

没有被执行。

我在本地计算机上执行了相同的操作,命令正在运行。但是,坏的事情是try catch块不起作用,只有我可以看到,结果是:

2019-11-22T15:11:23.8332717Z ##[error]PowerShell exited with code '1'.
2019-11-22T15:11:23.8341270Z ##[debug]Processed: ##vso[task.logissue type=error]PowerShell exited with code '1'.
2019-11-22T15:11:23.8390876Z ##[debug]Processed: ##vso[task.complete result=Failed]Error detected
2019-11-22T15:11:23.8414283Z ##[debug]Leaving D:\a\_tasks\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1\2.151.2\powershell.ps1.

有人知道如何获得真正的错误或有过在AzureDevOps中进行纽曼测试的经验吗?

1 个答案:

答案 0 :(得分:0)

在VSTS中运行上述脚本时,请在public class Item<A extends Comparable<? super A>> { protected A[] items; public Item { //Code to construct array of size 10. } public int index(A value) { for (int i=0; i < items.length; i++) { //Method to iterate through array element by element. Time complexity of O(n). } } } 行中删除gcloud composer environments run instance-id --location us-central clear -- -s 2018-05-13 -e 2018-05-14 -dx DagID

$()

然后该脚本可以非常成功地运行。

我想您已经知道,对于powershell命令行,即使newman run命令已成功运行,在powershell命令行界面中也不会显示任何结果。因此,日志中将不会直接显示任何消息来通知您是否成功。要在VSTS中对此进行确认,如果您正在使用私有代理,则可以检查代理缓存:

enter image description here