Beispielbericht über instabile Tests

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

Sie können einen Bericht erstellen, wie in der folgenden Abbildung gezeigt, der die fehlerhaften Tests auflistet, die in Pipeline-Läufen auftreten, die Testaufgaben enthalten. Ein unzuverlässiger Test ist ein Test, der unterschiedliche Ergebnisse liefert, z. B. bestanden oder nicht bestanden, auch wenn keine Änderungen am Quellcode oder an der Ausführungsumgebung vorgenommen wurden. Weitere Informationen zum Aktivieren flackeriger Tests finden Sie unter Verwalten von flackerigen Tests. Informationen zum Hinzufügen von Tests zu einer Pipeline finden Sie im Abschnitt "Ressourcen für Testaufgaben" weiter unten in diesem Artikel.

Screenshot des Berichts Flaky Tests Table.

Verwenden Sie die in diesem Artikel bereitgestellten Abfragen, um die folgenden Berichte zu generieren:

  • Flaky-Tests für den Build-Workflow
  • Unzuverlässige Tests für den Release-Ablauf
  • Flaky-Tests für einen bestimmten Zweig
  • Instabile Tests für eine bestimmte Testdatei
  • Instabile Tests für einen bestimmten Testverantwortlichen.

Hinweis

Für die Beispielabfragen in diesem Artikel ist v3.0-Preview oder höher des Analytics OData-Feeds erforderlich. Teilen Sie Ihr Feedback.

Kategorie Anforderungen
Zugriffsebenen - Projektmitglied.
– Mindestens einfacher Zugriff.
Erlaubnisse Standardmäßig verfügen Projektmitglieder über die Berechtigung zum Abfragen von Analysen und Erstellen von Ansichten. Weitere Informationen zu anderen Voraussetzungen für die Dienst- und Featureaktivierung sowie allgemeine Datenverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.

Hinweis

In diesem Artikel wird davon ausgegangen, dass Sie Overview von Beispielberichten mithilfe von OData-Abfragen lesen und ein grundlegendes Verständnis von Power BI haben.

Beispielabfragen

Sie können die folgenden Abfragen des TestResultsDaily Entitätssatzes verwenden, um unterschiedliche, aber ähnliche Pipeline-Flaky-Testberichte zu erstellen. Der TestResultsDaily Entitätssatz stellt ein tägliches Snapshot-Aggregat von TestResult Ausführungen bereit, gruppiert nach Test.

Hinweis

Informationen zum Suchen verfügbarer Eigenschaften zum Filtern oder Berichten finden Sie in der Referenz Metadata für Testpläne Analytics und Metadatenreferenz für Azure-Pipelines. Sie können Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen beliebigen Property Wert verwenden, der unter einem EntityTypeoder einem beliebigen NavigationPropertyBinding Path für ein EntitySetObjekt aufgeführten Wert definiert ist. Jede EntitySet entspricht einem EntityType, der den Datentyp für jede Eigenschaft dokumentiert.

Flaky-Tests für einen Build-Prozess

Verwenden Sie die folgenden Abfragen, um die instabilen Tests für eine Build-Workflow-Pipeline anzuzeigen.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

Instabile Tests für den Freigabe-Workflow

Verwenden Sie die folgenden Abfragen, um die instabilen Tests für eine Release-Workflow-Pipeline anzuzeigen.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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-Tests gefiltert nach Verzweigung

Verwenden Sie die folgenden Abfragen, um die fehlgeschlagenen Tests einer Pipeline für eine bestimmte Verzweigung anzuzeigen. Führen Sie zum Erstellen des Berichts die folgenden zusätzlichen Schritte zusammen mit den weiter unten in diesem Artikel angegebenen Schritten aus.

  • Erweitern Branch in Branch.BranchName.
  • Wählen Sie den Power BI Visualisierungsfilter aus, und fügen Sie das Feld Branch.BranchName zum Feld des Filters hinzu.
  • Wählen Sie den Branchnamen, für den Sie die Ergebniszusammenfassung anzeigen lassen möchten, aus dem Datenschnitt aus.

Weitere Informationen zur Verwendung von Datenschnitten finden Sie unter Slicers in Power BI.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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-Tests gefiltert nach Testdatei

Verwenden Sie die folgenden Abfragen, um die instabilen Tests für eine Pipeline und eine bestimmte Testdatei anzuzeigen. Führen Sie zum Erstellen des Berichts die folgenden zusätzlichen Schritte zusammen mit den weiter unten in diesem Artikel definierten Schritten aus.

  • Erweitern Test in Test.ContainerName.
  • Wählen Sie den Power BI Visualisierungsfilter aus, und fügen Sie das Feld Test.ContainerName zum Feld des Filters hinzu.
  • Wählen Sie den Containernamen aus dem Datenschnitt aus, für den Sie die Ergebniszusammenfassung anzeigen müssen.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

Fehlerhafte Tests gefiltert nach Testeigentümer

Um die fehlerhaften Tests für eine Pipeline und die Tests eines bestimmten Besitzers anzuzeigen, verwenden Sie die folgenden Abfragen. Führen Sie zum Erstellen des Berichts die folgenden zusätzlichen Schritte zusammen mit den weiter unten in diesem Artikel definierten Schritten aus.

  • Erweitern Test in Test.TestOwner.
  • Wählen Sie den Power BI Visualisierungsfilter aus, und fügen Sie das Feld Test.TestOwner zum Feld des Filters hinzu.
  • Wählen Sie den Testbesitzer, für den Sie die Ergebniszusammenfassung anzeigen lassen möchten, aus dem Datenschnitt aus.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

Ersetzungszeichenfolgen und Abfrageaufschlüsselung

Ersetzen Sie die folgenden Zeichenfolgen durch Ihre Werte. Klammern nicht einschließen {} in Ihrer Ersetzung Wenn Ihr Organisationsname z. B. "Fabrikam" lautet, ersetzen Sie {organization} durch Fabrikam, nicht durch {Fabrikam}.

 

  • {organization} - Name Ihrer Organisation.
  • {project} - Ihr Teamprojektname.
  • {pipelinename} - Der Name Ihrer Pipeline. Beispiel: Fabrikam hourly build pipeline
  • {startdate} - Das Datum, um den Bericht zu beginnen. Format: JJJJ-MM-DDZ. Beispiel: 2021-09-01Z steht für den 1. September 2021. Schließen Sie keine Anführungszeichen oder eckigen Klammern ein, und verwenden Sie zwei Ziffern sowohl für Monat als auch für Datum.

Abfrageaufschlüsselung

In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.

Abfrageteil

Beschreibung

$apply=filter(

Startklausel filter() .

Pipeline/PipelineName eq '{pipelineName}'

Gibt die Testläufe für die angegebene Pipeline an.

and CompletedOn/Date ge {startdate}

Rückgabetest wird am oder nach dem angegebenen Datum ausgeführt.

and Workflow eq 'Build'

Rückgabe von Testläufen für einen Build-Workflow.

)

Die filter()-Klausel schließen.

/groupby(

Startklausel groupby() .

(TestSK, Test/TestName),

Gruppierung nach Testnamen.

aggregate(

Startklausel aggregate zum Berechnen der Testläufe, die den Filterkriterien entsprechen.

ResultCount with sum as TotalCount,

Zählen Sie die Gesamtanzahl der Testläufe als TotalCount.

ResultPassCount with sum as PassedCount,

Zählen Sie die Gesamtzahl der bestandenen Testläufe als PassedCount.

ResultFailCount with sum as FailedCount,

Zählen Sie die Gesamtzahl der fehlgeschlagenen Testausführungen als FailedCount.

ResultNotExecutedCount with sum as NotExecutedCount

Zählen Sie die Gesamtzahl der nicht ausgeführten Testläufe als NotExecutedCount.

ResultNotImpactedCount with sum as NotImpactedCount,

Zählen Sie die Gesamtzahl der nicht betroffenen Testläufe als NotImpactedCount.

ResultFlakyCount with sum as FlakyCount

Zählen Sie die Gesamtzahl der fehlerhaften Testläufe als FlakyCount.

))

Schließen aggregate() und groupby() Klauseln.

/filter(FlakyCount gt 0)

Filtern Sie nur die Tests heraus, die mindestens einmal fehlerhaft waren.

/compute(

Startklausel compute() .

(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate

Berechnen Sie für alle flockigen Tests das FlakyRate.

)

Die compute()-Klausel schließen.

(Optional) Abfrage umbenennen

Sie können das Standardabfrage-Label Query1 in einen aussagekräftigeren Namen umbenennen. Geben Sie im Bereich "Abfrageeinstellungen " einen neuen Namen ein.

Screenshot der Optionen des Power BI-Abfragemenüs; Abfrage umbenennen.

Erweitern der Spalte "Test" in Power BI

Erweitern Sie die Test Spalte, um die erweiterte Entität Test.TestNameanzuzeigen. Durch das Erweitern der Spalte wird der Datensatz in spezifische Felder aufgeteilt. Informationen dazu finden Sie unter Transform Analytics-Daten, um Power BI Berichte zu generieren, Spalten erweitern.

Ändern des Spaltendatentyps

  1. Wählen Sie in Power Query-Editor die Spalten TotalCount, PassedCount, FailedCount, NotExecutedCount, NotImpactedCount und FlakyCount aus. Wählen Sie im Menü "Transformieren" den Datentyp und dann "Ganze Zahl" aus.

  2. Wählen Sie die Spalte FlakyRate aus. Wählen Sie im Menü "Transformieren" den Datentyp und dann "Dezimalzahl" aus.

Weitere Informationen zum Ändern des Datentyps finden Sie unter Transform Analytics-Daten zum Generieren von Power BI Berichten, Transformieren eines Spaltendatentyps.

Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.

Wenn Sie alle Datentransformationen abgeschlossen haben, wählen Sie Schließen & Anwenden aus dem Menü Start. Diese Aktion speichert die Abfrage und gibt Sie in Power BI zur Registerkarte Report zurück.

Screenshot der Option

Tabellenbericht erstellen

  1. Wählen Sie in Power BI unter VisualizationsTable aus. Ziehen Sie die Felder per Drag & Drop in den Bereich Spalten.

    Screenshot der Auswahl der Visualisierungsfelder für den Tabellenbericht Flaky-Tests.

  2. Fügen Sie die folgenden Felder in der aufgeführten Reihenfolge dem Abschnitt Spalten hinzu.

    • Test.TestName
    • TotalCount
    • PassedCount
    • FailedCount
    • FlakyCount
    • FlakyRate

Ihr Bericht sollte ähnlich wie in der folgenden Abbildung aussehen.

Screenshot des Musterberichts Flaky Tests Table.

Testen von Vorgangsressourcen