Exemple de rapport de tests ayant échoué

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

Vous pouvez créer un rapport qui répertorie les tests ayant échoué, comme l’image suivante, pour les exécutions de pipeline qui incluent des tâches de test. Pour plus d’informations sur l’ajout de tests à un pipeline, consultez la section Ressources des tâches de test plus loin dans cet article.

Capture d’écran du rapport de table de tests ayant échoué.

Utilisez les requêtes fournies dans cet article pour générer les rapports suivants :

  • Échec des tests pour le workflow de génération
  • Échec des tests pour le workflow de mise en production
  • Échec des tests pour une branche particulière
  • Échec des tests pour un fichier de test particulier
  • Échec des tests pour un propriétaire de test particulier

Important

L’intégration de Power BI et l’accès au flux OData du service Analytics sont généralement disponibles pour Azure DevOps Services et Azure DevOps Server 2020 et versions ultérieures. Les exemples de requêtes fournis dans cet article sont valides uniquement sur Azure DevOps Server 2020 et versions ultérieures, et dépendent de la version v3.0-preview ou ultérieure. Nous vous encourageons à utiliser ces requêtes et à nous fournir des commentaires.

Prérequis

  • Pour afficher les données Analytics et interroger le service, vous devez être membre d’un projet avec un accès de base ou supérieur. Par défaut, tous les membres du projet sont autorisés à interroger Analytics et à définir des vues Analytics.
  • Pour en savoir plus sur les autres prérequis concernant l’activation des services et des fonctionnalités et les activités générales de suivi des données, consultez Autorisations et prérequis pour accéder à Analytics.

Remarque

Cet article suppose que vous avez lu Vue d’ensemble des exemples de rapports à l’aide de requêtes OData et que vous avez une compréhension de base de Power BI.

Exemples de requêtes

Vous pouvez utiliser les requêtes suivantes de l’ensemble TestResultsDaily d’entités pour créer des rapports de test de pipeline différents, mais similaires. L’ensemble TestResultsDaily d’entités fournit un agrégat quotidien instantané d’exécutionsTestResult, regroupés par Test.

Remarque

Pour déterminer les propriétés disponibles à des fins de filtre ou de rapport, consultez la référence des métadonnées pour l’analyse des plans de test et les informations de référence sur les métadonnées pour Azure Pipelines. Vous pouvez filtrer vos requêtes ou renvoyer des propriétés à l’aide de l’une Property des valeurs sous ou EntityType des NavigationPropertyBinding Path valeurs disponibles avec un EntitySet. Chaque EntitySet correspond à un EntityType. Pour en savoir plus sur le type de données de chaque valeur, passez en revue les métadonnées fournies pour le .EntityType

Échec des tests pour un workflow de build

Utilisez les requêtes suivantes pour afficher les tests ayant échoué pour un pipeline de workflow de build .

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports utilisant des requêtes 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(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Échec des tests pour le flux de travail Release

Utilisez les requêtes suivantes pour afficher les tests ayant échoué pour un pipeline de flux de travail Release .

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports utilisant des requêtes 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(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Échec des tests filtrés par branche

Pour afficher les tests ayant échoué d’un pipeline pour une branche particulière, utilisez les requêtes suivantes. Pour créer le rapport, effectuez les étapes supplémentaires suivantes, ainsi que ce qui est spécifié plus loin dans cet article.

  • Développer Branch dans Branch.BranchName
  • Sélectionnez Segment de visualisation Power BI et ajoutez le champ Branch.BranchName au champ du segment.
  • Sélectionnez le nom de la branche dans le segment pour lequel vous devez afficher le résumé des résultats.

Pour en savoir plus sur l’utilisation de segments, consultez Segments dans Power BI.

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports utilisant des requêtes 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(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Échec des tests filtrés par fichier de test

Pour afficher les tests ayant échoué pour un pipeline et un fichier de test particulier, utilisez les requêtes suivantes. Pour créer le rapport, effectuez les étapes supplémentaires suivantes, ainsi que ce qui est défini plus loin dans cet article.

  • Développer Test dans Test.ContainerName
  • Sélectionnez Segment de visualisation Power BI et ajoutez le champ Test.ContainerName au champ du segment.
  • Sélectionnez le nom du conteneur dans le segment pour lequel vous devez afficher le résumé des résultats.

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports utilisant des requêtes 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(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Échec des tests filtrés par le propriétaire de test

Pour afficher le test Failed pour un pipeline pour les tests appartenant à un propriétaire de test particulier, utilisez les requêtes suivantes. Pour créer le rapport, effectuez les étapes supplémentaires suivantes, ainsi que ce qui est défini plus loin dans cet article.

  • Développer Test dans Test.TestOwner
  • Sélectionnez Segment de visualisation Power BI et ajoutez le champ Test.TestOwner au champ du segment.
  • Sélectionnez le propriétaire de test dans le segment pour lequel vous devez afficher le résumé des résultats.

Vous pouvez coller la requête Power BI répertoriée ci-dessous> directement dans la fenêtre Obtenir une requête vide. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports utilisant des requêtes 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(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Chaînes de substitution et répartition des requêtes

Remplacez les chaînes suivantes par vos valeurs. N’incluez pas de crochets {} avec votre substitution. Par exemple, si le nom de votre organisation est « Fabrikam », remplacez par {organization}Fabrikam, et non {Fabrikam}par .

  • {organization} - Nom de votre organisation
  • {project} - Nom de votre projet d’équipe
  • {pipelinename} - Nom de votre pipeline. Exemple : Fabrikam hourly build pipeline
  • {startdate} - Date de démarrage de votre rapport. Format : AAAA-MM-DDZ. Exemple : 2021-09-01Z représente le 1er septembre 2021. Ne placez pas entre guillemets ou crochets et utilisez deux chiffres pour les deux, mois et date.

Répartition des requêtes

Le tableau suivant décrit chaque partie de la requête.

Composant de requête

Description


$apply=filter(

Clause Start filter() .

Pipeline/PipelineName eq '{pipelineName}'

Retourne des exécutions de test pour le pipeline spécifié.

and CompletedOn/Date ge {startdate}

Retourne des exécutions de test à la date spécifiée ou après la date spécifiée.

and Workflow eq 'Build'

Retourne des exécutions de test pour Build le pipeline de flux de travail.

)

Clause Close filter() .

/groupby(

Clause Start groupby() .

(TestSK, Test/TestName),

Regrouper par nom de test

aggregate(

Clause start aggregate pour additionner les exécutions de test correspondant aux critères de filtre.

ResultCount with sum as TotalCount,

Comptez le nombre total d’exécutions de test sous la forme TotalCount.

ResultPassCount with sum as PassedCount,

Comptez le nombre total d’exécutions de test réussies en tant que PassedCount.

ResultFailCount with sum as FailedCount,

Comptez le nombre total d’exécutions de tests ayant échoué en tant que FailedCount.

ResultNotExecutedCount with sum as NotExecutedCount

Compter le nombre total d’exécutions de tests non exécutées en tant que NotExecutedCount.

ResultNotImpactedCount with sum as NotImpactedCount,

Comptez le nombre total d’exécutions de tests non affectées en tant que NotImpactedCount.

ResultFlakyCount with sum as FlakyCount

Comptez le nombre total d’exécutions de test flaky sous la forme FlakyCount.

))

Close aggregate() et groupby() clauses.

/compute(

Clause Start compute() .

iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate

Pour tous les tests, calculez PassRate.

)

Clause Close compute() .

(Facultatif) Renommer la requête

Vous pouvez renommer l’étiquette de requête par défaut , Query1, en quelque chose de plus significatif. Entrez simplement un nouveau nom dans le volet Paramètres de requête .

Capture d’écran des options de menu de requête Power BI, renommer la requête.

Développer la colonne Test dans Power BI

Développez la Test colonne pour afficher l’entité Test.TestNamedéveloppée. Le développement de la colonne aplatit l’enregistrement dans des champs spécifiques. Pour savoir comment afficher les données Transform Analytics pour générer des rapports Power BI, développez des colonnes.

Modifier le type de données de colonne

  1. Dans l’Éditeur Power Query, sélectionnez le TotalCounttype de données, FailedCountFlakyCountNotImpactedCountPassedCountNotExecutedCountpuis sélectionnez Type de données dans le menu Transformer, puis choisissez Qui le Nombre.

  2. Sélectionnez la PassRate colonne ; sélectionnez Type de données dans le menu Transformer , puis choisissez Nombre décimal.

Pour en savoir plus sur la modification du type de données, consultez Transform Analytics pour générer des rapports Power BI, Transformer un type de données de colonne.

Fermez la requête et appliquez vos modifications

Une fois que vous avez terminé toutes vos transformations de données, choisissez Fermer & Appliquer dans le menu Accueil pour enregistrer la requête et revenir à l’onglet Rapport dans Power BI.

Capture d’écran de Éditeur Power Query’option Fermer et appliquer.

Créer le rapport de table

  1. Dans Power BI, sous Visualisations, choisissez Table et faites glisser et déposez les champs dans la zone Colonnes .

    Capture d’écran des sélections de champs de visualisation pour le rapport de table de tests ayant échoué.

  2. Ajoutez les champs suivants à la section Colonnes dans l’ordre indiqué.

    • Test.TestName
    • TotalCount
    • PassedCount
    • FailedCount
    • NotImpactedCount
    • NotExecutedCount
    • FlakyCount
    • PassRate

Votre rapport doit ressembler à l’image suivante.

Capture d’écran de l’exemple de rapport de table de tests ayant échoué.

Ressources de tâche de test