Udostępnij za pośrednictwem


Przykładowy raport czasu trwania testu

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

Raporty czasu trwania testu, podobne do przedstawionego na poniższej ilustracji, zapewniają wgląd w liczbę przebiegów testu i średni czas potrzebny na wykonanie określonego testu podczas uruchamiania potoku.

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 pracy kompilacji
  • Czas trwania testu dla przepływu pracy wydania
  • 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

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

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

W celu utworzenia TestResultsDaily różnych, ale podobnych raportów czasu trwania testu można użyć następujących zapytań zestawu jednostek. 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 i dokumentacja 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 uzyskać więcej informacji na temat typu danych każdej wartości, zapoznaj się z metadanymi podanymi dla odpowiedniego EntityTypeelementu .

Czas trwania testu dla przepływu pracy kompilacji

Użyj następujących zapytań, aby wyświetlić raport czasu trwania testu dla potoku z przepływem 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, "
      &"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 wydania

Użyj następujących zapytań, aby wyświetlić raport czasu trwania testu dla potoku z przepływem 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, "
      &"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 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 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, "
      &"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 potoku dla 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.ContainerName
  • Wybierz fragmentator wizualizacji usługi Power BI i dodaj pole do pola Test.ContainerName fragmentatora
  • Wybierz plik testowy 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} "
      &"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 potoku dla 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.

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, 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 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 testu 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(

Klauzula Start 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(

Klauzula Start 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łą. 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. 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 kolumnęTotalCount; wybierz pozycję Typ danych z menu Przekształć, a następnie wybierz pozycję Liczba całkowita.

  2. Wybierz kolumny TotalDuration i, wybierz pozycję Typ danych z menu Przekształć, a następnie wybierz pozycję Liczba dziesiętnaAvgDuration.

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.

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 wybrane pola wizualizacji dla raportu tabeli Czas trwania testu.

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

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. Wybierz prawym przyciskiem AvgDuration pozycję i wybierz pozycję Średnia zamiast Sumy.

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

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