Пример отчета с сводкой теста

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 выполнения, сгруппированный по test.

Примечание.

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

Сводка теста для рабочего процесса сборки

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

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

let
   Source = OData.Feed ("https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?
       $apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And DateSK ge {startdate} "
                &"And Workflow eq 'Build' "
        &") "
            &"/aggregate( "
                &"ResultCount with sum as ResultCount, "
                &"ResultPassCount with sum as ResultPassCount, "
                &"ResultFailCount with sum as ResultFailCount, "
                &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
                &"ResultNotImpactedCount with sum as ResultNotImpactedCount "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Сводка теста для рабочего процесса выпуска

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

Примечание.

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

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

let
   Source = OData.Feed ("https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?
       $apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And DateSK ge {startdate} "
                &"And Workflow eq 'Release' "
        &") "
            &"/aggregate( "
                &"ResultCount with sum as ResultCount, "
                &"ResultPassCount with sum as ResultPassCount, "
                &"ResultFailCount with sum as ResultFailCount, "
                &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
                &"ResultNotImpactedCount with sum as ResultNotImpactedCount "
        &") "
    ,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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?
       $apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And DateSK ge {startdate} "
                &"And Workflow eq 'Build' "
        &") "
            &"/groupby( "
                &"(Branch/BranchName), "
            &"/aggregate( "
                &"ResultCount with sum as ResultCount, "
                &"ResultPassCount with sum as ResultPassCount, "
                &"ResultFailCount with sum as ResultFailCount, "
                &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
                &"ResultNotImpactedCount with sum as ResultNotImpactedCount "
        &") "
    ,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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?
       $apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And DateSK ge {startdate} "
                &"And Workflow eq 'Build' "
        &") "
        &"/groupby( "
            &"(Test/ContainerName), "
            &"/aggregate( "
                &"ResultCount with sum as ResultCount, "
                &"ResultPassCount with sum as ResultPassCount, "
                &"ResultFailCount with sum as ResultFailCount, "
                &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
                &"ResultNotImpactedCount with sum as ResultNotImpactedCount "
        &") "
    ,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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?
       $apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"And DateSK ge {startdate} "
                &"And Workflow eq 'Build' "
        &") "
        &"/groupby( "
            &"(Test/TestOwner), "
            &"/aggregate( "
                &"ResultCount with sum as ResultCount, "
                &"ResultPassCount with sum as ResultPassCount, "
                &"ResultFailCount with sum as ResultFailCount, "
                &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
                &"ResultNotImpactedCount with sum as ResultNotImpactedCount "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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

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

 

  • {organization} — Название организации
  • {project} — Имя проекта группы
  • {pipelinename} — Имя конвейера. Пример: Fabrikam hourly build pipeline
  • {startdate} — Дата начала отчета. Даты можно ввести в формате ГГГГММДД. Например, 20220815 15 августа 2022 года.

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

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

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

Description

$apply=filter(

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

Pipeline/PipelineName eq '{pipelineName}'

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

and CompletedOn/Date ge {startdate}

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

and Workflow eq 'Build' или and Workflow eq 'Release'

Возврат тестов выполняется только для конвейеров, назначенных рабочим процессом или Release рабочим процессомBuild.

)

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

aggregate(

aggregate Запустите предложение для всех тестов, соответствующих критериям фильтра.

ResultCount with sum as ResultCount,

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

ResultPassCount with sum as ResultPassCount,

Подсчитывать общее количество пройденных тестовых запусков в качестве ResultPassCount.

ResultFailCount with sum as ResultFailCount

Подсчитывать общее количество неудачных тестов.ResultFailCount

ResultNotExecutedCount with sum as ResultNotExecutedCount,

Подсчитывать общее число неисполнимых тестов, выполняемых как ResultNotExecutedCount.

ResultNotImpactedCount with sum as ResultNotImpactedCount

Подсчет общего числа не затронутых тестов выполняется как ResultNotImpactedCount.

)

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

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

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

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

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

Можно переименовать поля столбцов. Например, можно переименовать столбец Pipeline.PipelineName в Pipeline Name,или TotalCount в Total Count. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".

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

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

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

Создание отчета диаграммы Кольцевой диаграммы

  1. В Power BI в разделе "Визуализации" выберите отчет Donut .

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

  2. Добавьте следующие поля в значения в указанном порядке. Щелкните правой кнопкой мыши каждое поле и убедитесь, что выбрано значение Sum .

    • ResultPassCount
    • ResultFailCount
    • ResultNotExecutedCount
    • ResultNotImpactedCount

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

Снимок экрана: отчет сводной сводки теста.

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