Przykładowy raport czasu trwania testu

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

Raporty dotyczące czasu trwania testu, podobne do tego przedstawionego na poniższym obrazku, zapewniają wgląd w liczbę uruchomień testu i średni czas potrzebny na wykonanie określonego testu podczas procesu potokowego.

Zrzut ekranu przedstawiający raport tabeli czasu trwania testu.

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

  • Czas trwania testu dla przepływu kompilacji
  • Czas trwania testu dla przepływu pracy związanego z wydaniem
  • Czas trwania testu dla określonej gałęzi
  • Czas trwania testu dla określonego pliku testowego
  • Czas trwania testu dla określonego właściciela testu

Uwaga

Przykładowe zapytania w tym artykule wymagają wersji 3.0-preview lub nowszej źródła danych analizy OData. Podziel się swoją opinią.

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

Przykładowe zapytania

Użyj następujących zapytań TestResultsDaily zestawu jednostek, aby utworzyć różne, ale podobne raporty czasu trwania testu. Zestaw encji TestResultsDaily udostępnia dzienny zrzut zbiorczy wykonań TestResult, pogrupowanych według testu.

Uwaga

Aby znaleźć dostępne właściwości filtrowania lub raportowania, zobacz dokumentację Metadata dla analizy planów testów i Metadata dla Azure Pipelines. Zapytania lub właściwości zwracane można filtrować przy użyciu dowolnej Property wartości zdefiniowanej pod EntityType, lub dowolnej NavigationPropertyBinding Path wartości wymienionej dla EntitySet. Każda EntitySet mapuje na EntityType, który dokumentuje typ danych dla każdej właściwości.

Czas trwania testu dla przepływu pracy kompilacji

Użyj następujących zapytań, aby wyświetlić raport czasu trwania testu dla pipeline'u z przepływem kompilacji.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Czas trwania testu dla przepływu pracy release'u

Użyj następujących zapytań, aby wyświetlić raport czasu trwania testu dla potoku z przepływem Release.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Czas trwania testu filtrowany według gałęzi

Aby wyświetlić czas trwania testów pipeline'u 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 na Branch.BranchName.
  • Wybierz wizualizację fragmentatora Power BI i dodaj pole Branch.BranchName do 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 Slicers w Power BI.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Czas trwania testu filtrowany według pliku testowego

Aby wyświetlić czas trwania testu pipeline dla testów należących do konkretnego właściciela, używaj 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 na Test.ContainerName.
  • Wybierz wizualizację fragmentatora Power BI i dodaj pole Test.ContainerName do fragmentatora.
  • Wybierz plik testowy z fragmentatora, dla którego chcesz wyświetlić podsumowanie wyników.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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, Test/ContainerName),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Czas trwania testu filtrowany przez właściciela testu

Aby wyświetlić czas trwania testu pipeline dla testów należących do konkretnego właściciela, używaj 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 na Test.TestOwner.
  • Wybierz wizualizację fragmentatora Power BI i dodaj pole Test.TestOwner do fragmentatora.
  • Wybierz właściciela testu z fragmentatora, dla którego musisz wyświetlić podsumowanie wyników.

Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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, Test/TestOwner),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Ciągi podstawienia i podział zapytań

Zastąp następujące ciągi swoimi wartościami. Nie uwzględniaj nawiasów klamrowych {} w podstawieniu. Jeśli na przykład nazwa organizacji to "Fabrikam", zastąp ciąg {organization}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łowia ani nawiasów i używaj dwóch cyfr zarówno dla miesiąca, jak i dnia.

Podział zapytań

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

Część kwerendy

Opis


$apply=filter(

Rozpocznij klauzulę filter().

Pipeline/PipelineName eq '{pipelineName}'

Zwróć przebiegi testów dla nazwanego potoku.

And Date/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(

Rozpocznij klauzulę groupby().

(TestSK, Test/TestName),

Grupuj według nazwy testu.

aggregate(

Klauzula Start aggregate , aby zsumować różne wyniki przebiegu testu zgodne z kryteriami filtrowania.

ResultCount with sum as TotalCount,

Zlicz łączną liczbę przebiegów testów jako TotalCount.

ResultDurationSeconds with sum as TotalDuration

Sumuj łączny czas trwania wszystkich przebiegów jako TotalDuration.

))

Zamknij aggregate() i groupby() klauzule.

/compute(

Rozpocznij klauzulę compute().

TotalDuration div TotalCount as AvgDuration

Dla wszystkich testów oblicz średni czas trwania, dzieląc łączny czas trwania przez łączną liczbę przebiegów.

)

Zamknij compute() klauzulę.

(Opcjonalnie) Zmienianie nazwy zapytania

Możesz zmienić nazwę domyślnej etykiety zapytania Query1 na bardziej zrozumiałą. Wprowadź nową nazwę w okienku Ustawienia zapytania .

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

Rozwiń kolumnę Test w Power BI

Rozwiń kolumnę, Test aby wyświetlić rozwiniętą jednostkę Test.TestName. Kiedy rozwijasz kolumnę, spłaszczasz rekord do określonych pól. Aby uzyskać więcej informacji, zobacz Transformuj dane analityczne, aby generować raporty Power BI, Rozszerz kolumny.

Zmienianie typu danych kolumny

  1. W Edytor Power Query wybierz kolumnę TotalCount. Wybierz pozycję Typ danych z menu Przekształć , a następnie wybierz pozycję Liczba całkowita.

  2. Wybierz kolumny TotalDuration i AvgDuration . 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 Transform Analytics dane, aby generować raporty Power BI oraz Przekształć typ 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 . Ta akcja zapisuje zapytanie i zwraca cię do karty Report w Power BI.

Zrzut ekranu przedstawiający opcję Zamknij i Zastosuj w Edytor Power Query.

Utwórz raport tabeli

  1. W Power BI w obszarze Visualizations wybierz pozycję Table. Przeciągnij i upuść pola do obszaru Kolumny.

    Zrzut ekranu z wybranymi polami wizualizacji dla raportu tabeli dotyczącego czasu trwania testu.

  2. Dodaj następujące pola do sekcji Kolumny w podanej kolejności.

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. Kliknij prawym przyciskiem na pole AvgDuration i wybierz pozycję Średnia zamiast Suma.

Raport powinien wyglądać podobnie do poniższej ilustracji.

Zrzut ekranu przedstawiający przykładowy raport tabeli czasu trwania testu.