Пример отчета сводной тенденции теста
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
, доступных в разделе EntitySet
или NavigationPropertyBinding Path
значениях. Каждое 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
- Выберите срез визуализации 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
)
Предложение Close filter()
/groupby(
Предложение Start groupby()
.
(CompletedOn/Date),
Группируйте по дате завершения тестового запуска.
aggregate(
Предложение Start 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(
Предложение Start compute()
.
iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate
В течение всех дней вычислите PassRate
.
)
Закрыть compute()
предложение.
(Необязательно) Переименование запроса
Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя в области параметров запроса.
Разверните столбец CompletedOn в Power BI
CompletedOn
Разверните столбец. Расширение столбца сглаживает запись в определенные поля. Сведения о том, как можно узнать, как создавать отчеты Power BI, см. в статье "Преобразование аналитических данных" для создания отчетов Power BI, разверните столбцы.
Изменение типа данных столбца
В Редактор Power Query выберите столбец; в меню "Преобразование" выберите PassRate
тип данных, а затем — десятичное число.
Дополнительные сведения об изменении типа данных см. в разделе "Аналитика преобразования" для создания отчетов Power BI, преобразования типа данных столбца.
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создание отчета о графике и стеке диаграммы
В Power BI в разделе "Визуализации" выберите диаграмму линии и стека и перетащите поля на области диаграммы.
Добавьте
CompletedOn.Date
в ось X правой кнопкой мыши поле и выберите Date.Date, а не Иерархия дат.Добавьте
ResultFailCount
в ось y столбца.Добавьте
PassRate
в ось строки y.
Отчет должен выглядеть примерно так, как показано на следующем рисунке.
Тестирование ресурсов задачи
- Параллельное выполнение тестов с помощью задачи тестирования Visual Studio
- Параллельное выполнение тестов для любого тестового средства выполнения
- Ускорение тестирования с помощью анализа влияния тестов (TIA)
- Управление тестами flaky
- Рекомендации по тестированию пользовательского интерфейса
- Нагрузочное тестирование Azure
- Справочник по задачам Azure Pipelines, задачи тестирования