Udostępnij za pośrednictwem


Przykładowy raport testów niestabilnych

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 zasoby zadania testowego w dalszej części tego artykułu.

Zrzut ekranu raportu tabeli testów niestabilnych.

Użyj zapytań podanych w tym artykule, aby wygenerować następujące raporty:

  • Testy niestabilne dla przepływu pracy kompilacji
  • Niestabilne testy w przepływie pracy wydania
  • Niestabilne testy dla określonej gałęzi
  • Niestabilne testy dla testów na określonym pliku testowym
  • Niestabilne 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.

Kategoria Wymagania
poziomy dostępu - Członek projektu.
— Co najmniej dostęp w warstwie podstawowej.
Uprawnienia użytkownika 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 przeczytałeś Przegląd przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat usługi Power BI.

Przykładowe zapytania

Możesz użyć następujących zapytań zestawu jednostek TestResultsDaily do tworzenia różnych, ale podobnych raportów o testach niestabilnych potoków. Zestaw TestResultsDaily encji udostępnia dzienne agregaty wykonań w formie migawkowej, pogrupowane według testów.

Uwaga

Aby określić dostępne właściwości dla celów filtru lub raportu, zobacz Dokumentacja odniesienia do metadanych dla analityki planów testów oraz dokumentacja odniesienia do metadanych dla usługi Azure Pipelines. Możesz filtrować zapytania lub zwracać właściwości, używając dowolnej z wartości Property dostępnych w EntityType lub wartości NavigationPropertyBinding Path dostępnych z 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 EntityTypeelementu .

Niestabilne testy dla procesu budowania

Użyj następujących zapytań, aby wyświetlić niestabilne testy dla potoku workflowu kompilacji.

Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie danychPuste zapytanie. 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 workflowu wydawniczego

Aby wyświetlić niestabilne testy dla potoku wydania, użyj następujących zapytań.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w oknie Pobierz Dane Puste Zapytanie>. 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

Testy niestabilne filtrowane według gałęzi

Aby wyświetlić nieudane testy pipeline 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 do Branch.BranchName
  • Wybierz wizualizacyjny fragmentator usługi Power BI i dodaj pole do pola 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 Power BI bezpośrednio do okna Pobierz dane>Puste zapytanie. 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

Testy niestabilne filtrowane według pliku testowego

Aby wyświetlić niestabilne testy dla ciągu 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 do Test.ContainerName
  • Wybierz fragmentator wizualizacji Power BI i dodaj pole Test.ContainerName do fragmentatora Pole
  • Wybierz nazwę kontenera z fragmentatora, dla którego chcesz wyświetlić podsumowanie wyników.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w okno Pobierania danych>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

Niestabilne testy filtrowane według właściciela testu

Aby wyświetlić niestabilne testy dla potoku oraz testy przypisane konkretnemu właścicielowi testów, 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 do Test.TestOwner
  • Wybierz fragmentator wizualizacji Power BI i dodaj pole Test.TestOwner do sekcji Field 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 danych>Puste zapytanie. 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

Łańcuchy zastępcze i analiza zapytań

Zastąp następujące ciągi wartościami. Nie dołączaj nawiasów {} do swojej zamiany. 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 danych. 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 w cudzysłowach ani nawiasach i używaj dwóch cyfr zarówno dla miesiąca, jak i dnia w miesiącu.

Podział zapytań

W poniższej tabeli opisano każdą część zapytania.

Część kwerendy

Opis

$apply=filter(

Rozpocznij filter() klauzulę.

Pipeline/PipelineName eq '{pipelineName}'

Zwracanie wyników testów dla określonego pipeline'u.

and CompletedOn/Date ge {startdate}

Zwracany test jest uruchamiany w określonym dniu lub po określonej dacie.

and Workflow eq 'Build'

Przywróć przebiegi testów dla Build przepływu pracy.

)

Zamknij filter() klauzulę.

/groupby(

Rozpocznij klauzulę 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ę niewykonanych testów 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ę niestabilnych przebiegów testów jako FlakyCount.

))

Zamknij aggregate() i groupby() klauzule.

/filter(FlakyCount gt 0)

Wybierz tylko te testy, które były niestabilne co najmniej raz.

/compute(

Rozpocznij klauzulę 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.

Zrzut ekranu przedstawiający opcje menu zapytania usługi Power BI, zmień nazwę zapytania.

Rozwiń kolumnę Test w usłudze Power BI

Rozwiń kolumnę, Test aby wyświetlić rozwiniętą jednostkę Test.TestName. Rozwijanie kolumny przekształca rekord w określone pola. 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

  1. W Edytorze Power Query wybierz kolumny TotalCount, PassedCount, FailedCount, NotExecutedCount, NotImpactedCount i FlakyCount; wybierz Typ danych z menu Przekształć; a następnie wybierz Liczba całkowita.

  2. 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 Analytics w celu generowania raportów 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.

Zrzut ekranu przedstawiający opcje Zamknij i Zastosuj w Edytorze Power Query.

Utwórz raport tabeli

  1. W usłudze Power BI w obszarze Wizualizacje wybierz pozycję Tabela i przeciągnij i upuść pola w obszarze Kolumny .

    Zrzut ekranu przedstawiający opcje wizualizacji pól dla raportu tabeli testów niestabilnych.

  2. 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.

Zrzut ekranu z przykładowego raportu tabeli testów niestabilnych.

Testowanie zasobów zadań