Поделиться через


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

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

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

На следующем рисунке показан пример тестового сводного отчета.

Снимок экрана: отчет о тесте типа «Donut».

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

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

Внимание

Интеграция 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, или значения NavigationPropertyBinding Path, доступные вместе с EntitySet. Каждое 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

Замените {pipelineName} и {startdate} фактическими значениями для вашего запроса.

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

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

Примечание.

Для определения доступных свойств для целей фильтрации или отчета см. справочник по метаданным для аналитики тестовых планов. Вы можете фильтровать запросы или возвращать свойства, используя любое из значений Property под EntityType или NavigationPropertyBinding Path значениями, доступными с EntitySet. Каждое 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 "Срез" и добавьте поле в секцию среза.
  • Выберите имя контейнера из среза, для которого необходимо просмотреть сводку результатов.

Скопируйте и вставьте следующий запрос Power BI непосредственно в Get Data>Blank Query окно. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов 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 и добавьте поле в поле среза
  • Выберите владельца теста из среза, для которого необходимо просмотреть сводку результатов.

Скопируйте и вставьте следующий запрос 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(

Начать filter() предложение.

Pipeline/PipelineName eq '{pipelineName}'

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

and CompletedOn/Date ge {startdate}

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

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

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

)

Закрыть 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

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

Снимок экрана отчета