在 Azure Devops 上获取详细的测试报告导出
Get a detailed Testreport export on Azure Devops
我正在寻找一种在 Azure Devops 上导出详细测试报告的方法。
我的目标是不仅要显示测试通过还是失败,还要显示详细的测试步骤和我在测试期间添加的评论。
恐怕没有现成的方法可以满足您的要求。
目前azure devops已有的特性只支持导出测试步骤的最新结果。但它不会包含每个测试步骤的测试评论和结果。
所以你可以尝试使用RestApi来获取数据和生成报告。
这是一个例子:Runs - List and Results - Get
$token = "PAT"
$url="https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/test/runs?api-version=6.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $testrunid in $response.value.id)
{
$url1 = "https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/test/Runs/$($testrunid)/results/100000?detailsToInclude=5&api-version=6.0"
$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $teststep in $response1.iterationDetails.actionResults)
{
$testcaseid = $response1.testcase.id
$testcasename = [String]$response1.testcase.name
$testplanid = $response1.testPlan.id
$testsuiteid = $response1.testSuite.id
$testsuitename = $response1.testSuite.name
$teststepid = $teststep.stepIdentifier
$teststepoutcome = $teststep.outcome
$teststepcomment = $teststep.errorMessage
$Output = New-Object -TypeName PSObject -Property @{
testcaseid = $testcaseid
testcasename = $testcasename
testplanid = $testplanid
testsuiteid = $testsuiteid
testsuitename = $testsuitename
teststepid = $teststepid
teststepoutcome = $teststepoutcome
teststepcomment = $teststepcomment
} | Select-Object testcaseid, testcasename,testplanid,testsuiteid,testsuitename,teststepid,teststepoutcome,teststepcomment
$Output | Export-Csv D:\TestReportsample.csv -Append
}
}
结果:
如果你想得到更详细的功能,你需要添加更多的API来实现这个功能。这样会大大增加代码量
所以我建议您可以在 Our UserVoice Site 中创建一个建议 tikcet 来报告此功能。
这里是已有的建议票,大家也可以参考一下:Detailed Test Summary Reports
我正在寻找一种在 Azure Devops 上导出详细测试报告的方法。 我的目标是不仅要显示测试通过还是失败,还要显示详细的测试步骤和我在测试期间添加的评论。
恐怕没有现成的方法可以满足您的要求。
目前azure devops已有的特性只支持导出测试步骤的最新结果。但它不会包含每个测试步骤的测试评论和结果。
所以你可以尝试使用RestApi来获取数据和生成报告。
这是一个例子:Runs - List and Results - Get
$token = "PAT"
$url="https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/test/runs?api-version=6.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $testrunid in $response.value.id)
{
$url1 = "https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/test/Runs/$($testrunid)/results/100000?detailsToInclude=5&api-version=6.0"
$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
ForEach( $teststep in $response1.iterationDetails.actionResults)
{
$testcaseid = $response1.testcase.id
$testcasename = [String]$response1.testcase.name
$testplanid = $response1.testPlan.id
$testsuiteid = $response1.testSuite.id
$testsuitename = $response1.testSuite.name
$teststepid = $teststep.stepIdentifier
$teststepoutcome = $teststep.outcome
$teststepcomment = $teststep.errorMessage
$Output = New-Object -TypeName PSObject -Property @{
testcaseid = $testcaseid
testcasename = $testcasename
testplanid = $testplanid
testsuiteid = $testsuiteid
testsuitename = $testsuitename
teststepid = $teststepid
teststepoutcome = $teststepoutcome
teststepcomment = $teststepcomment
} | Select-Object testcaseid, testcasename,testplanid,testsuiteid,testsuitename,teststepid,teststepoutcome,teststepcomment
$Output | Export-Csv D:\TestReportsample.csv -Append
}
}
结果:
如果你想得到更详细的功能,你需要添加更多的API来实现这个功能。这样会大大增加代码量
所以我建议您可以在 Our UserVoice Site 中创建一个建议 tikcet 来报告此功能。
这里是已有的建议票,大家也可以参考一下:Detailed Test Summary Reports