TFS数据仓库问题提取测试运行历史记录-FactTestResult表中的多余行PointID,ChangeNumber

问题描述

我正在构建Power BI报表以显示Azure DevOps的测试执行(本地)。该数据未通过OData公开,因此我必须使用与TFS Analysis实例的实时连接。由于Power BI中的实时连接,因此我无法根据需要添加到数据模型。我已经写了一些查询来从我需要的数据仓库中检索数据,但是我注意到FactTestResult表中有很多额外的行,其中包含 PointId和ChangeNumber的值-不能确定这些记录是什么因为我无法在用户界面中看到它们-Azure DevOps Server 2020 添加过滤器ResultCount = 1将删除这些其他行,从而得到单行。但是,仅剩下一行, AreaSK和IterationSK均为空-与我刚刚过滤掉的列不同。理想情况下,我可以加入Area和Iteration,并且可以解决此问题,我想了解这些额外行的目的是什么-PointID和ChangeNumber,并且有更好的方法编写Test执行历史记录在下面查询

SELECT *
  FROM [Tfs_Warehouse].[dbo].[vFactTestResultOverlay] FTRO
  join vDimTestRunOverlay DTRO on 
  DTRO.TestRunSK = FTRO.TestRunSK 
  where DTRO.TestRunId = "testRunID" and 
  TeamProjectCollectionSK = "projectCollectionID"

enter image description here

解决方法

TFS数据仓库在提取测试运行历史记录时遇到问题-FactTestResult表中的多余行(PointID,ChangeNumber)

对于PointID,我们可以知道它是测试点的ID。确实,我们无法在UI上直接看到它,但是可以通过REST API来获取它:

Points - List

GET https://dev.azure.com/{organization}/{project}/_apis/test/Plans/{planId}/Suites/{suiteId}/points?api-version=6.0

enter image description here

我们可以在UI上看到点:

enter image description here

对于ChangeNumber,我也没有得到太多的信息,只是有关它的文档:

Test Results and Test Runs

,

使用类似于以下的代码,我设法排序并找到了最近的记录,而没有迭代和区域的空条目。最后没有明确提到changeNumber。

select 
*,Row_Number() over (partition by FTR.TeamProjectSK,FTR.TestSuiteSK,FTR.TestCaseId,FTR.ConfigurationSK order by FTR.ResultDate desc) as TestResultsPerTestCaseOrderedDesc
from [Tfs_Warehouse].[dbo].[FactTestResult] FTR 
where PointrecordCount = 1