Проблема хранилища данных TFS, извлекающая историю выполнения тестов — дополнительные строки в таблице фактических результатов (PointID, ChangeNumber)

#sql #tfs #azure-devops #warehouse

#sql #tfs #azure-devops #хранилище

Вопрос:

Я создаю отчет Power BI для отображения выполнения тестов для Azure DevOps (предварительно). Эти данные не отображаются через OData, поэтому я должен использовать оперативное подключение к экземпляру анализа TFS. Из-за текущего подключения в Power BI я не могу добавить в модель данных, как хотелось бы. Я написал несколько запросов для извлечения данных из нужного мне хранилища данных, но я заметил, что в таблице FactTestResult есть несколько дополнительных строк, которые содержат значения для PointId и ChangeNumber — не совсем уверен, для чего используются эти записи, поскольку я не вижу их в пользовательском интерфейсе Azure DevOps Server 2020. Добавление фильтра resultCount = 1 приведет к удалению этих других строк, в результате чего получится одна строка. Однако осталась только одна строка, в которой AreaSK и IterationSK оба равны нулю — в отличие от столбцов, которые я только что отфильтровал. В идеале я мог бы присоединиться к области и итерации, и я могу обойти эту проблему, я просто хотел бы понять, какова цель этих дополнительных строк — PointID и ChangeNumber и есть ли лучший способ написать запрос истории выполнения теста ниже.

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

введите описание изображения здесь

Комментарии:

1. Есть какие-либо обновления для этой проблемы? Вы решили эту проблему? Если нет, не могли бы вы сообщить мне последнюю информацию об этой проблеме?

Ответ №1:

Проблема хранилища данных TFS, извлекающая историю выполнения тестов — дополнительные строки в таблице фактических результатов (PointID, ChangeNumber)

Для PointID мы могли бы знать, что это идентификатор тестовой точки. Действительно, мы не можем видеть это непосредственно в пользовательском интерфейсе, но мы могли бы получить это с помощью REST API:

Список точек

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

введите описание изображения здесь

И мы могли видеть точки в пользовательском интерфейсе:

введите описание изображения здесь

Для ChangeNumber я также не смог получить много информации об этом, только документ об этом:

Результаты тестирования и тестовые прогоны

Комментарии:

1. Запросы REST api или OData хороши для использования с Power BI. Однако моим предпочтительным методом было использование SSR для отчетов с разбивкой на страницы, что означало, что Tfs_Warehouse был немного лучшим вариантом в моем случае. Также я хотел получить сводку по всем проектам и планам тестирования в одном запросе. Очень признателен за ваш вклад.

Ответ №2:

используя код, аналогичный следующему, мне удалось упорядочить и найти самую последнюю запись без нулевых записей для итерации и области. В конце явно не ссылались на 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