Пример отчета о продолжительности теста

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Отчеты о продолжительности теста, аналогичные приведенному на следующем рисунке, предоставляют представление о количестве запусков теста и среднем времени выполнения определенного теста во время выполнения конвейера. Сведения о добавлении тестов в конвейер см . в разделе "Ресурсы задач тестирования" далее в этой статье.

Снимок экрана: отчет о таблице длительности теста.

Используйте запросы, указанные в этой статье, для создания следующих отчетов:

  • Длительность тестирования для рабочего процесса сборки
  • Длительность тестирования рабочего процесса выпуска
  • Длительность тестирования для конкретной ветви
  • Длительность теста для определенного тестового файла
  • Длительность теста для конкретного владельца теста

Внимание

Интеграция Power BI и доступ к веб-каналуOData службы Аналитики общедоступны для Azure DevOps Services и Azure DevOps Server 2020 и более поздних версий. Примеры запросов, указанные в этой статье, допустимы только для Azure DevOps Server 2020 и более поздних версий, и зависят от версии 3.0-preview или более поздней версии. Мы рекомендуем вам использовать эти запросы и предоставлять нам отзывы.

Необходимые компоненты

  • Чтобы просмотреть данные аналитики и запросить службу, необходимо быть членом проекта с базовым доступом или большим доступом. По умолчанию все члены проекта предоставляют разрешения для запроса аналитики и определения представлений Аналитики.
  • Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий по отслеживанию данных см. в статье "Разрешения и предварительные требования для доступа к аналитике".

Примечание.

В этой статье предполагается, что вы прочитали обзор примеров отчетов с помощью запросов OData и имеют базовое представление о Power BI.

Примеры запросов

Вы можете использовать следующие запросы набора сущностей TestResultsDaily для создания различных, но аналогичных отчетов о длительности теста. Набор TestResultsDaily сущностей предоставляет ежедневный статистический снимок TestResult выполнения, сгруппированный по тесту.

Примечание.

Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для аналитики планов тестирования и метаданных для Azure Pipelines. Вы можете отфильтровать запросы или возвращать свойства с помощью любого из Property значенийEntityType, доступных в разделе EntitySetили NavigationPropertyBinding Path значениях. Каждое EntitySet соответствует .EntityType Чтобы узнать больше о типе данных каждого значения, просмотрите метаданные, предоставленные для соответствующего EntityTypeзначения.

Длительность теста для рабочего процесса сборки

Используйте следующие запросы, чтобы просмотреть отчет о продолжительности теста для конвейера с рабочим процессом сборки.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And Date/Date ge {startdate} "
                &"And Workflow eq 'Build' "
           &") "
            &"/groupby( "
                &"(TestSK, Test/TestName), "
                &"aggregate( "
                  &"ResultCount with sum as TotalCount, "
                  &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
        &"/compute( "
    &"TotalDuration div TotalCount as AvgDuration) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Длительность теста для рабочего процесса выпуска

Используйте следующие запросы, чтобы просмотреть отчет о продолжительности теста для конвейера с рабочим процессом выпуска .

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And Date/Date ge {startdate}) "
        &"/groupby((TestSK, Test/TestName, Workflow), "
        &"aggregate( "
            &"ResultCount with sum as TotalCount, "
                &"ResultDurationSeconds with sum as TotalDuration "
                &")) "
            &"/compute( "
                &"TotalDuration div TotalCount as AvgDuration) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Длительность тестирования, отфильтрованной по ветви

Чтобы просмотреть длительность тестирования тестов конвейера для определенной ветви, используйте следующие запросы. Чтобы создать отчет, выполните следующие дополнительные действия, а также указанные далее в этой статье.

  • Развернитесь Branch в Branch.BranchName
  • Выберите срез визуализации Power BI и добавьте поле в поле Branch.BranchName среза
  • Выберите имя ветви из среза, для которого необходимо просмотреть сводку результатов.

Дополнительные сведения об использовании срезов см. в разделе "Срезы" в Power BI.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And Date/Date ge {startdate} "
        &"And Workflow eq 'Build') "
        &"/groupby((TestSK, Test/TestName, Branch/BranchName), "
            &"aggregate( "
                &"ResultCount with sum as TotalCount, "
                &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
                &"/compute( "
            &"TotalDuration div TotalCount as AvgDuration) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Длительность теста, фильтруемая по тестовой папке

Чтобы просмотреть длительность тестирования конвейера для тестов, принадлежащих конкретному владельцу теста, используйте следующие запросы. Чтобы создать отчет, выполните следующие дополнительные действия вместе с тем, что определено далее в этой статье.

  • Развернитесь Test в Test.ContainerName
  • Выберите срез визуализации Power BI и добавьте поле в поле Test.ContainerName среза
  • Выберите тестовый файл из среза, для которого необходимо просмотреть сводку результатов.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And Date/Date ge {startdate} "
        &"And Workflow eq 'Build') "
        &"/groupby((TestSK, Test/TestName, Test/ContainerName), "
            &"aggregate( "
                &"ResultCount with sum as TotalCount, "
                &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
                &"/compute( "
            &"TotalDuration div TotalCount as AvgDuration) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Длительность теста, отфильтрованная владельцем теста

Чтобы просмотреть длительность тестирования конвейера для тестов, принадлежащих конкретному владельцу теста, используйте следующие запросы. Чтобы создать отчет, выполните следующие дополнительные действия вместе с тем, что определено далее в этой статье.

  • Развернитесь Test в Test.TestOwner
  • Выберите срез визуализации Power BI и добавьте поле в поле Test.TestOwner среза
  • Выберите владельца теста из среза, для которого необходимо просмотреть сводку результатов.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And Date/Date ge {startdate} "
        &"And Workflow eq 'Build') "
        &"/groupby((TestSK, Test/TestName, Test/TestOwner), "
            &"aggregate( "
                &"ResultCount with sum as TotalCount, "
                &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
                &"/compute( "
            &"TotalDuration div TotalCount as AvgDuration) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Строки подстановки и разбивка запросов

Замените следующие строки значениями. Не включайте скобки в подстановку {} . Например, если вашей организации присвоено имя Fabrikam, замените {organization} на Fabrikam, а не {Fabrikam}.

  • {organization} — Название организации
  • {project} — Имя проекта группы
  • {pipelinename} — Имя конвейера. Пример: Fabrikam hourly build pipeline
  • {startdate} — Дата начала отчета. Формат: ГГГГ-ММ-ДДЗ. Пример: 2021-09-01Z представляет 1 сентября 2021 г. Не заключайте в кавычки или скобки и используйте две цифры как для месяца, так и для даты.

Разбивка запросов

В следующей таблице описана каждая часть запроса.

Часть запроса

Description


$apply=filter(

Предложение Start filter() .

Pipeline/PipelineName eq '{pipelineName}'

Возврат тестов для именованного конвейера.

And Date/Date ge {startdate}

Возврат тестов выполняется в указанной дате или после нее.

and Workflow eq 'Build'

Возврат тестов для Build рабочего процесса.

)

Закрыть filter() предложение.

/groupby(

Предложение Start groupby() .

(TestSK, Test/TestName),

Группируйте по имени теста.

aggregate(

Предложение start aggregate , чтобы суммировать различные результаты тестового выполнения, соответствующие критериям фильтра.

ResultCount with sum as TotalCount,

Подсчитывает общее число тестовых запусков в качестве TotalCount.

ResultDurationSeconds with sum as TotalDuration

Суммирует общую длительность всех запусков как TotalDuration.

))

Закройте aggregate() и groupby() предложения.

/compute(

Предложение Start compute() .

TotalDuration div TotalCount as AvgDuration

Для всех тестов вычислите среднюю длительность, разделив общую длительность на общее количество запусков.

)

Закрыть compute() предложение.

(Необязательно) Переименование запроса

Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя из области Параметры запроса.

Снимок экрана: параметры меню запроса Power BI, переименование запроса.

Разверните столбец test в Power BI

Test Разверните столбец, чтобы отобразить развернутую сущностьTest.TestName. Расширение столбца сглаживает запись в определенные поля. Сведения о том, как можно узнать, как создавать отчеты Power BI, см. в статье "Преобразование аналитических данных" для создания отчетов Power BI, разверните столбцы.

Изменение типа данных столбца

  1. В Редактор Power Query выберите TotalCount столбец; выберите тип данных в меню "Преобразование", а затем выберите Кто le Number.

  2. TotalDuration Выберите столбцы и AvgDuration выберите тип данных в меню "Преобразование", а затем выберите десятичный номер.

Дополнительные сведения об изменении типа данных см. в статье "Преобразование аналитических данных" для создания отчетов Power BI, преобразования типа данных столбца.

Закройте запрос и примените изменения

Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.

Снимок экрана: параметр Редактор Power Query Закрыть и применить.

Создание отчета таблицы

  1. В Power BI в разделе "Визуализации" выберите таблицу и перетащите поля в область "Столбцы ".

    Снимок экрана: выбор полей визуализации для отчета о продолжительности теста.

  2. Добавьте следующие поля в раздел "Столбцы" в указанном порядке.

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. Щелкните правой AvgDuration кнопкой мыши и выберите "Среднее " вместо суммы.

Отчет должен выглядеть примерно так, как показано на следующем рисунке.

Снимок экрана: пример отчета о таблице длительности теста.

Тестирование ресурсов задачи