Udostępnij za pośrednictwem


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 dowiedzieć się więcej 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.

Zrzut ekranu przedstawiający raport tabela testów flaky.

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

  • Aby wyświetlić dane analizy i wykonać zapytanie dotyczące usługi, musisz być członkiem projektu z dostępem podstawowym lub większym. Domyślnie wszyscy członkowie projektu otrzymują uprawnienia do wykonywania zapytań w usłudze Analytics i definiowania widoków analizy.
  • Aby dowiedzieć się więcej o innych wymaganiach 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 znasz artykuł Omówienie 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 EntitySetlub NavigationPropertyBinding Path . Każda z nich EntitySet odpowiada elementowi EntityType. Aby dowiedzieć się więcej o typie danych każdej wartości, przejrzyj metadane podane dla odpowiedniego EntityTypeelementu .

Flaky testy dla przepływu pracy kompilacji

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

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 .

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 do Branch.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 dowiedzieć się więcej na temat używania fragmentatorów, zobacz Fragmentatory w usłudze Power BI.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 do Test.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.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 do Test.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.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 Fabrikamciąg {organization} , 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 Zapytanie Ustawienia.

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

  1. W Edytor Power Query wybierz TotalCountkolumny , , PassedCountFailedCount, NotExecutedCount, NotImpactedCounti FlakyCount , wybierz pozycję Typ danych z menu Przekształć, a następnie wybierz pozycję KtoTo le Liczba.

  2. Wybierz kolumnę FlakyRate ; wybierz pozycję Typ danych z menu Przekształć , a następnie wybierz pozycję Liczba dziesiętna.

Aby dowiedzieć się więcej 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.

Zrzut ekranu przedstawiający opcję zamknij i zastosuj Edytor Power Query.

Tworzenie raportu 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 wyboru pól wizualizacji dla raportu tabeli Testów flaky.

  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 przedstawiający przykładowy raport tabeli testów flaky.

Testowanie zasobów zadań