Condividi tramite


Rapporto di esempio su test instabili

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

È possibile creare un report, come illustrato nell'immagine seguente, che elenca i test instabili che si verificano nelle esecuzioni della pipeline che includono attività di test. Un test instabile è un test che fornisce risultati diversi, ad esempio superato o fallito, anche quando non ci sono modifiche nel codice sorgente o nell'ambiente di esecuzione. Per altre informazioni sull'abilitazione di test instabili, vedere Gestire i test instabili. Per informazioni sull'aggiunta di test a una pipeline, vedere la sezione Risorse delle attività di test più avanti in questo articolo.

Screenshot del report Tabella dei test inconsistenti.

Usare le query fornite in questo articolo per generare i report seguenti:

  • Test instabili per il flusso di lavoro di compilazione
  • Test instabili per il flusso di lavoro di rilascio
  • Test instabili per un certo branch
  • Test instabili per un file di test specifico
  • Test flaky per un proprietario di test specifico.

Nota

Le query di esempio in questo articolo richiedono la versione 3.0-preview o successiva del feed OData di Analytics. Condividi il tuo feedback.

Categoria Requisiti
Livelli di accesso Membro del - progetto.
- Accesso almeno di livello di base.
Autorizzazioni Per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste. Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics.

Nota

Questo articolo presuppone che abbiate letto Panoramica dei report di esempio usando query OData e abbiate una conoscenza di base di Power BI.

Query di esempio

È possibile usare le query seguenti del TestResultsDaily set di entità per creare report di test diversi ma simili. L'insieme di entità TestResultsDaily fornisce un'istantanea giornaliera aggregata delle esecuzioni di TestResult, raggruppate per test.

Nota

Per trovare le proprietà disponibili per il filtro o la creazione di report, vedere le informazioni di riferimento Metadata per Analisi dei piani di test e Metadata per Azure Pipelines. È possibile filtrare le query o restituire proprietà usando qualsiasi Property valore definito in un EntityTypeoggetto o qualsiasi NavigationPropertyBinding Path valore elencato per un oggetto EntitySet. Ogni EntitySet esegue il mapping a un EntityType, che documenta il tipo di dati per ogni proprietà.

Test instabili per un workflow di Build

Usare le query seguenti per visualizzare i test instabili per una pipeline di flusso di lavoro di compilazione.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Get Data>Blank Query. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Test instabili per il flusso di lavoro di rilascio

Usare le query seguenti per visualizzare i test instabili per una pipeline di rilascio del flusso di lavoro.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Get Data>Blank Query. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Test instabili filtrati per branch

Per visualizzare i test non riusciti di una pipeline per un ramo specifico, usare le query seguenti. Per creare il report, eseguire i passaggi aggiuntivi seguenti insieme a quanto specificato più avanti in questo articolo.

  • Espandere Branch in Branch.BranchName.
  • Selezionare il filtro Slicer di Power BI e aggiungere il campo Branch.BranchName al campo Campo.
  • Selezionare il nome del ramo dal filtro dei dati per il quale è necessario visualizzare il riepilogo dei risultati.

Per altre informazioni sull'uso dei filtri dei dati, vedere Slicers in Power BI.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Get Data>Blank Query. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Test flaky filtrati in base al file di test

Per visualizzare i test instabili per una pipeline e un file di test specifico, utilizzare le query seguenti. Per creare il report, eseguire i passaggi aggiuntivi seguenti insieme a quanto definito più avanti in questo articolo.

  • Espandere Test in Test.ContainerName.
  • Selezionare il filtro Slicer di Power BI e aggiungere il campo Test.ContainerName al campo Campo.
  • Selezionare il nome del contenitore dal slicer per cui si desidera visualizzare il riepilogo dei risultati.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Get Data>Blank Query. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Test flaky filtrati dal proprietario del test

Per visualizzare i test instabili per una pipeline e i test di un proprietario di test specifico, usare le query seguenti. Per creare il report, eseguire i passaggi aggiuntivi seguenti insieme a quanto definito più avanti in questo articolo.

  • Espandere Test in Test.TestOwner.
  • Selezionare il filtro Slicer di Power BI e aggiungere il campo Test.TestOwner al campo Campo.
  • Selezionare il proprietario del test dal slicer per il quale è necessario visualizzare il riepilogo dei risultati.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Get Data>Blank Query. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Stringhe di sostituzione e scomposizione delle query

Sostituire le stringhe seguenti con i valori. Non includere le parentesi graffe {} durante la sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization} con Fabrikam, non {Fabrikam}.

 

  • {organization} - Nome dell'organizzazione.
  • {project} - Nome del progetto del team.
  • {pipelinename} - Nome della pipeline. Esempio: Fabrikam hourly build pipeline
  • {startdate} - Data di inizio del report. Formato: AAAA-MM-GG. Esempio: 2021-09-01Z rappresenta il 1° settembre 2021. Non racchiudere tra virgolette o parentesi quadre ed utilizzare due cifre per entrambi, mese e data.

Suddivisione delle query

La tabella seguente descrive ogni parte della query.

Parte della query

Descrizione

$apply=filter(

Inizio filter() clausola.

Pipeline/PipelineName eq '{pipelineName}'

Restituire le esecuzioni di test per la pipeline specificata.

and CompletedOn/Date ge {startdate}

Restituisce le esecuzioni dei test in o dopo la data specificata.

and Workflow eq 'Build'

Restituire le esecuzioni dei test per un flusso di lavoro Build.

)

Chiudi clausola filter().

/groupby(

Inizio groupby() clausola.

(TestSK, Test/TestName),

Raggruppare in base al nome del test.

aggregate(

Clausola Start aggregate per calcolare le esecuzioni dei test corrispondenti ai criteri di filtro.

ResultCount with sum as TotalCount,

Contare il numero totale di esecuzioni di test come TotalCount.

ResultPassCount with sum as PassedCount,

Contate il numero totale delle esecuzioni di test superate come PassedCount.

ResultFailCount with sum as FailedCount,

Contare il numero totale di esecuzioni di test non riuscite come FailedCount.

ResultNotExecutedCount with sum as NotExecutedCount

Contare il numero totale di esecuzioni di test non eseguite come NotExecutedCount.

ResultNotImpactedCount with sum as NotImpactedCount,

Contare il numero totale di esecuzioni di test non interessate come NotImpactedCount.

ResultFlakyCount with sum as FlakyCount

Contare il numero totale di esecuzioni di test flaky come FlakyCount.

))

Chiudere aggregate() e groupby() clausole.

/filter(FlakyCount gt 0)

Filtra soltanto i test che sono stati instabili almeno una volta.

/compute(

Inizio compute() clausola.

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

Per tutti i test instabili, calcolare il FlakyRate.

)

Chiudi clausola compute().

(Facoltativo) Rinominare la query

È possibile rinominare l'etichetta di query predefinita Query1 in qualcosa di più significativo. Immettere un nuovo nome nel pannello Impostazioni query.

Screenshot di Power BI opzioni di menu query, rinominare la query.

Espandere la colonna Test in Power BI

Espandere la Test colonna per visualizzare l'entità Test.TestNameespansa . Espandendo la colonna, il record viene trasformato in campi specifici. Per informazioni su come, vedere Trasformare i dati analitici per generare report Power BI, Espandere le colonne.

Modificare il tipo di dati della colonna

  1. In editor di Power Query selezionare le colonne TotalCount, PassedCount, FailedCount, NotExecutedCount, NotImpactedCount e FlakyCount. Selezionare Tipo di dati dal menu Trasforma e quindi scegliere Numero intero.

  2. Selezionare la FlakyRate colonna . Selezionare Tipo di dati dal menu Trasforma e quindi scegliere Numero decimale.

Per altre informazioni sulla modifica del tipo di dati, vedere Transform Analytics per generare report Power BI, Trasformare un tipo di dati di colonna.

Chiudere la query e applicare le modifiche

Al termine di tutte le trasformazioni dei dati, selezionare Chiudi e applica dal menu Home . Questa azione salva la query e restituisce la scheda Report in Power BI.

Screenshot dell'opzione Chiudi e applica in editor di Power Query.

Creare il report Tabella

  1. In Power BI, sotto Visualizzazioni, selezionare Tabella. Trascinare e rilasciare i campi nell'area Colonne .

    Screenshot delle selezioni dei campi di visualizzazione per il report tabella dei test Flaky.

  2. Aggiungere i campi seguenti alla sezione Colonne nell'ordine elencato.

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

Il tuo report dovrebbe essere simile alla seguente immagine.

Screenshot del report della tabella di esempio dei test instabili.

Risorse per le attività di test