Link 测试结果通过 API 在 Azure Devops 中发布
Link test results into a release in Azure Devops through API
我正在 运行在 Azure 的容器化环境中进行一些测试,我想在与其发布相关的 Azure Devops 中发布这些测试结果。
想法是测试用例 运行 正在发布管道中,容器在完成后会发布测试并将它们显示在 Azure Devops 的测试部分。
我已经成功地通过容器上的挂载卷和管道中的 Publish 测试任务做到了这一点。但是测试大约需要 1 小时,在此期间它会在 Azure 中使用一个管道代理。
我一直在研究 Azure Devops API 并设法创建了一个新测试运行 并通过 API 添加了测试。我已通过 ID https://docs.microsoft.com/en-us/rest/api/azure/devops/test/runs/create?view=azure-devops-rest-5.0 将测试 运行 与发布相关联。然后将完成的测试结果添加到测试中运行。但是在发布测试中没有显示。
有人遇到过这个问题吗?
更新结束休息 API。
在这里我获取了发布ID(我希望我能够在发布管道中获得这个发布ID)
curl --location --request GET 'https://vsrm.dev.azure.com/{organization}/NF Development/_apis/release/releases?api-version=6.0'
我创建了一个与此版本相关的测试运行
curl --location --request POST 'https://dev.azure.com/{organizationname}/NF Development/_apis/test/runs?api-version=5.0' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Testcafe new",
"ReleaseReference": { "id": "1276" },
"isAutomated": true,
"state": "Waiting"
}'
我在测试中添加测试运行我在容器中获取
curl --location --request POST 'https://dev.azure.com/{organizationname}/NF Development/_apis/test/Runs/1004040/results?api-version=6.0' \
--header 'Content-Type: application/json' \
--data-raw '[{
"testCaseTitle": "Testing Tescafe through Azure API",
"automatedTestName": "Patrick Test",
"priority": 1,
"outcome": "Passed"
}
]'
此时我可以在测试工厂中看到测试 运行,但是释放里面的测试部分是空的。
------------------------编辑-------------------- -
可能是我的要求不够明确。我想要实现的是发布结果通过发布管道执行的操作,但使用的是 AzureDevops 管道。
例如,我有这个任务 运行ning,我可以单击发布环境的测试选项卡,并从我的构建中识别所有测试。即使我创建了一个如下所述的 TestRun,我也看不到这种情况发生。
出现此问题的可能原因是您的测试 运行 未正确链接到版本。
在Runs - CreateRestAPI中,不仅需要指定Release id,还必须指定release uri、release environment id和release enviornment uri
这是一个关于创建链接到发布的测试 运行 的示例:
{
"name": "A",
"plan": {
"id": {Test Plan id}
},
"releaseReference":{
"id": {release id},
"name": "{Release name}",
"definitionId": {Release definition ID},
"environmentDefinitionId": {Release environment definition ID},
"environmentName": "{Release environment name}",
"environmentDefinitionName": "{Release environment definition name}",
"environmentId": {Release environment ID}
},
"releaseUri": "{URI of release associated with the run}",
"releaseEnvironmentUri": "{URI of release environment associated with the run}"
"state": "Waiting"
}
我正在 运行在 Azure 的容器化环境中进行一些测试,我想在与其发布相关的 Azure Devops 中发布这些测试结果。
想法是测试用例 运行 正在发布管道中,容器在完成后会发布测试并将它们显示在 Azure Devops 的测试部分。
我已经成功地通过容器上的挂载卷和管道中的 Publish 测试任务做到了这一点。但是测试大约需要 1 小时,在此期间它会在 Azure 中使用一个管道代理。
我一直在研究 Azure Devops API 并设法创建了一个新测试运行 并通过 API 添加了测试。我已通过 ID https://docs.microsoft.com/en-us/rest/api/azure/devops/test/runs/create?view=azure-devops-rest-5.0 将测试 运行 与发布相关联。然后将完成的测试结果添加到测试中运行。但是在发布测试中没有显示。
有人遇到过这个问题吗?
更新结束休息 API。
在这里我获取了发布ID(我希望我能够在发布管道中获得这个发布ID)
curl --location --request GET 'https://vsrm.dev.azure.com/{organization}/NF Development/_apis/release/releases?api-version=6.0'
我创建了一个与此版本相关的测试运行
curl --location --request POST 'https://dev.azure.com/{organizationname}/NF Development/_apis/test/runs?api-version=5.0' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Testcafe new",
"ReleaseReference": { "id": "1276" },
"isAutomated": true,
"state": "Waiting"
}'
我在测试中添加测试运行我在容器中获取
curl --location --request POST 'https://dev.azure.com/{organizationname}/NF Development/_apis/test/Runs/1004040/results?api-version=6.0' \
--header 'Content-Type: application/json' \
--data-raw '[{
"testCaseTitle": "Testing Tescafe through Azure API",
"automatedTestName": "Patrick Test",
"priority": 1,
"outcome": "Passed"
}
]'
此时我可以在测试工厂中看到测试 运行,但是释放里面的测试部分是空的。
------------------------编辑-------------------- -
可能是我的要求不够明确。我想要实现的是发布结果通过发布管道执行的操作,但使用的是 AzureDevops 管道。
例如,我有这个任务 运行ning,我可以单击发布环境的测试选项卡,并从我的构建中识别所有测试。即使我创建了一个如下所述的 TestRun,我也看不到这种情况发生。
出现此问题的可能原因是您的测试 运行 未正确链接到版本。
在Runs - CreateRestAPI中,不仅需要指定Release id,还必须指定release uri、release environment id和release enviornment uri
这是一个关于创建链接到发布的测试 运行 的示例:
{
"name": "A",
"plan": {
"id": {Test Plan id}
},
"releaseReference":{
"id": {release id},
"name": "{Release name}",
"definitionId": {Release definition ID},
"environmentDefinitionId": {Release environment definition ID},
"environmentName": "{Release environment name}",
"environmentDefinitionName": "{Release environment definition name}",
"environmentId": {Release environment ID}
},
"releaseUri": "{URI of release associated with the run}",
"releaseEnvironmentUri": "{URI of release environment associated with the run}"
"state": "Waiting"
}