Przykładowy raport testów flaky
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Możesz utworzyć raport, jak pokazano na poniższej ilustracji, zawierający listę niestabilnych testów występujących w przebiegach potoku, które obejmują zadania testowe. Niestabilny test to test, który zapewnia różne wyniki, takie jak powodzenie lub niepowodzenie, nawet jeśli nie ma żadnych zmian w kodzie źródłowym lub środowisku wykonywania. Aby uzyskać więcej informacji na temat włączania niestabilnych testów, zobacz Zarządzanie nietypowymi testami. Aby uzyskać informacje na temat dodawania testów do potoku, zobacz sekcję Testowanie zasobów zadań w dalszej części tego artykułu.
Użyj zapytań podanych w tym artykule, aby wygenerować następujące raporty:
- Flaky testy dla przepływu pracy kompilacji
- Flaky testów dla przepływu pracy wydania
- Flaky testy dla określonej gałęzi
- Flaky testy dla określonego pliku testowego
- Flaky testy dla określonego właściciela testu.
Ważne
Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne dla usług Azure DevOps Services i Azure DevOps Server 2020 i nowszych wersji. Przykładowe zapytania podane w tym artykule są prawidłowe tylko w przypadku usługi Azure DevOps Server 2020 i nowszych wersji oraz zależą od wersji 3.0 w wersji zapoznawczej lub nowszej. Zachęcamy do korzystania z tych zapytań i przekazywania opinii.
Wymagania wstępne
- Access:członek projektu z co najmniej dostępem Basic.
- Uprawnienia: domyślnie członkowie projektu mają uprawnienia do wykonywania zapytań w usłudze Analytics i tworzenia widoków.
- Aby uzyskać więcej informacji na temat innych wymagań wstępnych dotyczących włączania usługi i funkcji oraz ogólnych działań śledzenia danych, zobacz Uprawnienia i wymagania wstępne dotyczące dostępu do analizy.
Uwaga
W tym artykule założono, że zapoznasz się z omówieniem przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat usługi Power BI.
Przykładowe zapytania
Następujące zapytania TestResultsDaily
zestawu jednostek umożliwiają tworzenie różnych, ale podobnych raportów testowych potoku. Zestaw TestResultsDaily
jednostek udostępnia codzienną agregację TestResult
migawek wykonań pogrupowanych według testu.
Uwaga
Aby określić dostępne właściwości dla celów filtru lub raportu, zobacz Dokumentacja metadanych dla planów testów idokumentacja metadanych dla usługi Azure Pipelines. Możesz filtrować zapytania lub zwracać właściwości przy użyciu dowolnej z Property
wartości dostępnych EntityType
w elemecie NavigationPropertyBinding Path
lub EntitySet
. Każda z nich EntitySet
odpowiada elementowi EntityType
. Aby uzyskać więcej informacji na temat typu danych każdej wartości, zapoznaj się z metadanymi podanymi dla odpowiedniego EntityType
elementu .
Flaky testy dla przepływu pracy kompilacji
Użyj następujących zapytań, aby wyświetlić niestabilne testy dla potoku przepływu pracy kompilacji .
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań 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, "
&"ResultPassCount with sum as PassedCount, "
&"ResultFailCount with sum as FailedCount, "
&"ResultNotExecutedCount with sum as NotExecutedCount, "
&"ResultNotImpactedCount with sum as NotImpactedCount, "
&"ResultFlakyCount with sum as FlakyCount)) "
&"/filter(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlaykRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Niestabilne testy przepływu pracy wydania
Użyj następujących zapytań, aby wyświetlić niestabilne testy dla potoku przepływu pracy wydania .
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań 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, "
&"ResultPassCount with sum as PassedCount, "
&"ResultFailCount with sum as FailedCount, "
&"ResultNotExecutedCount with sum as NotExecutedCount, "
&"ResultNotImpactedCount with sum as NotImpactedCount, "
&"ResultFlakyCount with sum as FlakyCount)) "
&"/filter(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testów filtrowanych według gałęzi
Aby wyświetlić nieudane testy potoku dla określonej gałęzi, użyj następujących zapytań. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z elementami określonymi w dalszej części tego artykułu.
- Rozwiń
Branch
doBranch.BranchName
- Wybierz fragmentator wizualizacji usługi Power BI i dodaj pole do pola
Branch.BranchName
fragmentatora - Wybierz nazwę gałęzi z fragmentatora, dla którego chcesz wyświetlić podsumowanie wyników.
Aby uzyskać więcej informacji na temat używania fragmentatorów, zobacz Fragmentatory w usłudze Power BI.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań 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, "
&"ResultPassCount with sum as PassedCount, "
&"ResultFailCount with sum as FailedCount, "
&"ResultNotExecutedCount with sum as NotExecutedCount, "
&"ResultNotImpactedCount with sum as NotImpactedCount, "
&"ResultFlakyCount with sum as FlakyCount)) "
&"/filter(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testów filtrowanych według pliku testowego
Aby wyświetlić niestabilne testy dla potoku i określonego pliku testowego, użyj następujących zapytań. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z definicją w dalszej części tego artykułu.
- Rozwiń
Test
doTest.ContainerName
- Wybierz fragmentator wizualizacji usługi Power BI i dodaj pole do pola
Test.ContainerName
fragmentatora - Wybierz nazwę kontenera z fragmentatora, dla którego chcesz wyświetlić podsumowanie wyników.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań 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, Test/ContainerName), "
&"aggregate( "
&"ResultCount with sum as TotalCount, "
&"ResultPassCount with sum as PassedCount, "
&"ResultFailCount with sum as FailedCount, "
&"ResultNotExecutedCount with sum as NotExecutedCount, "
&"ResultNotImpactedCount with sum as NotImpactedCount, "
&"ResultFlakyCount with sum as FlakyCount)) "
&"/filter(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testów filtrowanych według właściciela testu
Aby wyświetlić testy flaky dla potoku i testów należących do określonego właściciela testu, użyj następujących zapytań. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z definicją w dalszej części tego artykułu.
- Rozwiń
Test
doTest.TestOwner
- Wybierz fragmentator wizualizacji usługi Power BI i dodaj pole do pola
Test.TestOwner
fragmentatora - Wybierz właściciela testu z fragmentatora, dla którego musisz wyświetlić podsumowanie wyników.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań 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, Test/TestOwner), "
&"aggregate( "
&"ResultCount with sum as TotalCount, "
&"ResultPassCount with sum as PassedCount, "
&"ResultFailCount with sum as FailedCount, "
&"ResultNotExecutedCount with sum as NotExecutedCount, "
&"ResultNotImpactedCount with sum as NotImpactedCount, "
&"ResultFlakyCount with sum as FlakyCount)) "
&"/filter(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Ciągi podstawienia i podział zapytań
Zastąp następujące ciągi wartościami. Nie dołączaj nawiasów {} do podstawienia. Na przykład jeśli nazwa organizacji to "Fabrikam", zastąp {organization}
ciąg Fabrikam
, a nie {Fabrikam}
.
-
{organization}
— Nazwa organizacji -
{project}
— Nazwa projektu zespołowego -
{pipelinename}
— Nazwa potoku. Przykład:Fabrikam hourly build pipeline
-
{startdate}
— Data rozpoczęcia raportu. Format: RRRR-MM-DDZ. Przykład:2021-09-01Z
reprezentuje 1 września 2021 r. Nie umieszczaj cudzysłowów ani nawiasów kwadratowych i używaj dwóch cyfr zarówno dla miesiąca, jak i daty.
Podział zapytań
W poniższej tabeli opisano każdą część zapytania.
Część kwerendy
Opis
$apply=filter(
Klauzula Start filter()
.
Pipeline/PipelineName eq '{pipelineName}'
Zwracanie przebiegów testów dla określonego potoku.
and CompletedOn/Date ge {startdate}
Zwracany test jest uruchamiany w określonym dniu lub po określonej dacie.
and Workflow eq 'Build'
Zwracanie przebiegów testu dla Build
przepływu pracy.
)
Zamknij filter()
klauzulę.
/groupby(
Klauzula Start groupby()
.
(TestSK, Test/TestName),
Grupuj według nazwy testu.
aggregate(
Klauzula Start aggregate
w celu obliczenia przebiegów testów spełniających kryteria filtrowania.
ResultCount with sum as TotalCount,
Zlicz łączną liczbę przebiegów testów jako TotalCount
.
ResultPassCount with sum as PassedCount,
Zlicz łączną liczbę przebiegów testów zakończonych powodzeniem jako PassedCount
.
ResultFailCount with sum as FailedCount,
Zlicz łączną liczbę przebiegów testu zakończonych niepowodzeniem jako FailedCount
.
ResultNotExecutedCount with sum as NotExecutedCount
Zlicz łączną liczbę nie wykonanych przebiegów testu jako NotExecutedCount
.
ResultNotImpactedCount with sum as NotImpactedCount,
Zlicz łączną liczbę przebiegów testów, których nie dotyczy problem, jako NotImpactedCount
.
ResultFlakyCount with sum as FlakyCount
Zlicz łączną liczbę przebiegów testu flaky jako FlakyCount
.
))
Zamknij aggregate()
i groupby()
klauzule.
/filter(FlakyCount gt 0)
Odfiltruj tylko te testy, które były łuszczący się co najmniej raz.
/compute(
Klauzula Start compute()
.
(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate
Dla wszystkich niestabilnych testów oblicz wartość FlakyRate
.
)
Zamknij compute()
klauzulę.
(Opcjonalnie) Zmienianie nazwy zapytania
Możesz zmienić nazwę domyślnej etykiety zapytania Query1 na bardziej zrozumiałą. Po prostu wprowadź nową nazwę w okienku Ustawienia zapytania.
Rozwiń kolumnę Test w usłudze Power BI
Rozwiń kolumnę, Test
aby wyświetlić rozwiniętą jednostkę Test.TestName
. Rozszerzanie kolumny spłaszcza rekord do określonych pól. Aby dowiedzieć się, jak to zrobić, zobacz Przekształcanie danych analizy w celu generowania raportów usługi Power BI, Rozwiń kolumny.
Zmienianie typu danych kolumny
W Edytor Power Query wybierz
TotalCount
kolumny , ,PassedCount
FailedCount
,NotExecutedCount
,NotImpactedCount
iFlakyCount
, wybierz pozycję Typ danych z menu Przekształć, a następnie wybierz pozycję Liczba całkowita.Wybierz kolumnę
FlakyRate
; wybierz pozycję Typ danych z menu Przekształć , a następnie wybierz pozycję Liczba dziesiętna.
Aby uzyskać więcej informacji na temat zmiany typu danych, zobacz Przekształcanie danych analizy w celu generowania raportów usługi Power BI, Przekształcanie typu danych kolumny.
Zamknij zapytanie i zastosuj zmiany
Po zakończeniu wszystkich przekształceń danych wybierz pozycję Zamknij i zastosuj z menu Narzędzia główne , aby zapisać zapytanie i wrócić do karty Raport w usłudze Power BI.
Tworzenie raportu tabeli
W usłudze Power BI w obszarze Wizualizacje wybierz pozycję Tabela i przeciągnij i upuść pola w obszarze Kolumny .
Dodaj następujące pola do sekcji Kolumny w podanej kolejności.
Test.TestName
TotalCount
PassedCount
FailedCount
FlakyCount
FlakyRate
Raport powinien wyglądać podobnie do poniższej ilustracji.
Testowanie zasobów zadań
- Równoległe uruchamianie testów przy użyciu zadania testowego programu Visual Studio
- Uruchamianie testów równolegle dla dowolnego modułu uruchamiającego testy
- Przyspieszanie testowania przy użyciu analizy wpływu testów (TIA)
- Zarządzanie niestabilnymi testami
- Zagadnienia dotyczące testowania interfejsu użytkownika
- Testowanie obciążenia platformy Azure
- Dokumentacja zadań usługi Azure Pipelines, Zadania testowe