【问题标题】:Link test results into a release in Azure Devops through API通过 API 将测试结果链接到 Azure Devops 中的版本
【发布时间】:2021-04-20 20:04:42
【问题描述】:

我正在 Azure 的容器化环境中运行一些测试,我想在 Azure Devops 中发布与其发布相关的这些测试结果。

这个想法是测试用例在发布管道中运行,它自己的容器在完成后将发布测试并将它们显示在 Azure Devops 的测试部分。

我已经设法通过容器上的已安装卷和管道中的发布测试任务来做到这一点。但测试大约需要 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 将测试运行与发布相关联。然后将完成的测试结果添加到测试运行中。但是不会显示在发布测试中。

有人遇到过这个问题吗?

更新了 end rest 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 管道。

例如,我正在运行此任务,我可以单击发布环境的测试选项卡并从我的构建中识别所有测试。即使我创建了一个如下所述的 TestRun,我也看不到这种情况发生。

【问题讨论】:

  • 您能提供一个您的 REST API 请求正文的示例吗?特别是releaseReference怎么设置?
  • @JaneMa-MSFT 嗨,简,我用我使用过的 REST API 更新了这篇文章。获取发布 ID 的第一步将在发布管道内完成。
  • @JaneMa-MSFT 我今天正在检查这个问题,我正在检查管道和 AzureDevops 文档。我正在寻找的是通过 AzureDevops API 在发布管道内执行“发布测试结果任务”正在执行的操作,以便我可以将 1:1 测试运行链接到发布。
  • 您好,这个问题有更新吗?请检查我下面的回答是否可以帮助您并随时发表评论~如果您想知道您的测试运行是否正确连接到版本,请转到测试计划->运行并双击您的测试运行以获取其详细信息。
  • 嗨,简。感谢您的输入。我已经把这个放在一边了一个星期左右。我将在下周进行测试。非常感谢您的跟进。

标签: azure azure-devops azure-devops-rest-api


【解决方案1】:

这个问题的可能原因是您的测试运行没有正确链接到版本。

Runs - CreateRest API中,不仅需要指定Release id,还必须指定release uri、release environment id和release environment 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"
}

【讨论】:

  • 嗨,简,很抱歉回复晚了。只好暂时搁置这个任务。我已尝试按照您的要求更改身体。我删除了测试计划 ID,因为它是自动化的,并且与现有计划 ID 无关。我也找不到 environmentDefinitionName。我搜索了发布变量文档和 azure devops API。测试仍然没有显示在发布测试部分。
  • 嗨,简,我实际上对此进行了测试,它们似乎出现在管道中。非常感谢您的帮助,对于延迟测试您的解决方案感到抱歉。
猜你喜欢
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 2019-11-19
  • 2021-08-29
相关资源
最近更新 更多