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


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

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

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

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

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

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

Внимание

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

Категория Требования
Уровни доступа - член проекта.
— По крайней мере базовый доступ .
Права доступа По умолчанию члены проекта имеют разрешение делать запросы к аналитике и создавать представления. Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий отслеживания данных см. в разделе "Разрешения и предварительные требования для доступа к аналитике".

Примечание.

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

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

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

Примечание.

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

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

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

Скопируйте и вставьте следующий запрос Power BI непосредственно в окно Получение данных>Пустой запрос. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestRuns?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedOn/Date ge {startdate} "
                &"and Workflow eq 'Build' "
            &") "
        &"/groupby( "
          &"(CompletedOn/Date), "
          &"aggregate( "
            &"ResultCount with sum as ResultCount, "
            &"ResultPassCount with sum as ResultPassCount, "
            &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
            &"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
            &"ResultFailCount with sum as ResultFailCount "
         &")) "
       &"/compute( "
       &"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,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/TestRuns?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedOn/Date ge {startdate} "
                &"and Workflow eq 'Release' "
            &") "
        &"/groupby( "
          &"(CompletedOn/Date), "
          &"aggregate( "
            &"ResultCount with sum as ResultCount, "
            &"ResultPassCount with sum as ResultPassCount, "
            &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
            &"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
            &"ResultFailCount with sum as ResultFailCount "
         &")) "
       &"/compute( "
       &"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,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/TestRuns?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedOn/Date ge {startdate} "
                &"and Workflow eq 'Build' "
            &") "
        &"/groupby((Branch/BranchName, CompletedOn/Date), "
          &"aggregate( "
            &"ResultCount with sum as ResultCount, "
            &"ResultPassCount with sum as ResultPassCount, "
            &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
            &"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
            &"ResultFailCount with sum as ResultFailCount "
         &")) "
       &"/compute( "
       &"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Сводная тенденция тестов, отфильтрованная по тестовому файлу

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

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

Скопируйте и вставьте следующий запрос Power BI непосредственно в . Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestRuns?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedOn/Date ge {startdate} "
                &"and Workflow eq 'Build' "
            &") "
        &"/groupby((Test/ContainerName, Date/Date), "
          &"aggregate( "
            &"ResultCount with sum as ResultCount, "
            &"ResultPassCount with sum as ResultPassCount, "
            &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
            &"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
            &"ResultFailCount with sum as ResultFailCount "
         &")) "
       &"/compute( "
       &"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,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/TestRuns?
$apply=filter("
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedOn/Date ge {startdate} "
                &"and Workflow eq 'Build' "
            &") "
        &"/groupby((Test/TestOwner, Date/Date), "
          &"aggregate( "
            &"ResultCount with sum as ResultCount, "
            &"ResultPassCount with sum as ResultPassCount, "
            &"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
            &"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
            &"ResultFailCount with sum as ResultFailCount "
         &")) "
       &"/compute( "
       &"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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

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

  • {organization} — Название организации
  • {project} — Имя проекта группы
  • {pipelinename} — Имя конвейера. Пример: конвейер почасовой сборки Fabrikam
  • {startdate} Дата начала отчета. Формат: ГГГГ-ММ-ДДЗ. Пример: 2023-01-01Z представляет 1 января 2023 г. в 12:50:54. Не заключайте в кавычки или скобки.

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

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

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

Description

$apply=filter(

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

Pipeline/PipelineName eq '{pipelineName}'

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

and CompletedOn/Date ge {startdate}

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

and Workflow eq 'Build'

Возвращение запусков тестов для конвейера с рабочим процессом Build

)

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

/groupby(

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

(CompletedOn/Date),

Группируйте по дате завершения тестового запуска.

aggregate(

Начать aggregate клаузулу. Для всех прогонов тестов, соответствующих критериям фильтра, суммируйте количество.

ResultCount with sum as ResultCount,

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

ResultPassCount with sum as ResultPassCount,

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

ResultNotExecutedCount with sum as ResultNotExecutedCount,

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

ResultNotImpactedCount with sum as ResultNotImpactedCount

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

ResultFailCount with sum as ResultFailCount

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

))

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

/compute(

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

iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate

Для всех дней рассчитайте PassRate.

)

Закрыть compute() пункт.

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

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

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

Раскройте столбец CompletedOn в Power BI

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

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

В редакторе Power Query выберите столбец PassRate; в меню Преобразование выберите Тип данных; и затем выберите Десятичное число.

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

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

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

Снимок экрана опции

Создание отчета с линейной и столбчатой диаграммами с накоплением

  1. В Power BI в разделе "Визуализации" выберите линейную и стопочную столбчатую диаграмму и перетащите поля в области диаграммы.

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

  2. Добавьте CompletedOn.Date на ось X, щелкните правой кнопкой мыши по полю и выберите Date.Date, а не Иерархия дат.

  3. Добавьте ResultFailCount в ось y столбца.

  4. Добавьте PassRate в ось строки y.

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

Снимок экрана: отчет о трендах сводного тестирования с линейной диаграммой и столбчатой диаграммой с накоплением.

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