Partager via


Exemple de rapport de tests non fiables

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

Vous pouvez créer un rapport, comme illustré dans l’image suivante, qui répertorie les tests non fiables qui se produisent dans les exécutions de pipeline qui incluent des tâches de test. Un test non fiable est un test qui fournit des résultats différents, tels que réussite ou échec, même en l’absence de modifications dans le code source ou l’environnement d’exécution. Pour plus d’informations sur l’activation des tests non fiables, consultez Gérer les tests non fiables. 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 du tableau des tests non fiables.

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

  • Tests non fiables pour le flux de travail de génération
  • Tests non fiables pour le flux de travail de mise en production
  • Tests non fiables pour une branche particulière
  • Tests non fiables pour un fichier de test particulier
  • Tests non fiables pour un propriétaire de test particulier

Importante

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 préversion v3.0 ou version ultérieure. Nous vous encourageons à utiliser ces requêtes et à nous faire part de vos commentaires.

Catégorie Exigences
Niveaux d’accès - Membre du projet.
- Au moins un accès de base (Basic).
Permissions Par défaut, les membres du projet ont l’autorisation d’interroger Analytics et de créer des vues. Pour plus d’informations sur les autres conditions préalables nécessaires à l’activation du service et des fonctionnalités ainsi que sur les activités de suivi des données générales, consultez Autorisations et conditions préalables pour accéder à Analytics.

Remarque

Cet article part du principe que vous avez lu Aperçu d'exemples de rapports utilisant des requêtes OData, et que vous comprenez les principes de base de Power BI.

Exemples de requêtes

Vous pouvez utiliser les requêtes suivantes du jeu d'entités TestResultsDaily pour créer des rapports différents, mais similaires, sur les tests non fiables d'un pipeline. L’ensemble d’entités TestResultsDaily fournit un agrégat d’instantanés quotidiens d’exécutions TestResult , regroupés par test.

Remarque

Pour déterminer les propriétés disponibles à des fins de filtre ou de rapport, consultez Références des métadonnées pour l’analyse des plans de test et Références des métadonnées pour Azure Pipelines. Vous pouvez filtrer vos requêtes ou retourner les propriétés en utilisant n'importe quelle valeur Property sous un EntityType ou les valeurs NavigationPropertyBinding Path disponibles avec un EntitySet. Chaque EntitySet correspond à un EntityType. Pour plus d’informations sur le type de données de chaque valeur, consultez les métadonnées fournies pour le EntityType correspondant.

Tests non fiables pour un flux de travail de génération

Utilisez les requêtes suivantes pour afficher les tests non fiables pour un pipeline de flux de travail de génération.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d’informations, consultez Aperçu d'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(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

Tests non fiables pour un flux de travail de mise en production

Utilisez les requêtes suivantes pour afficher les tests non fiables pour un pipeline de flux de travail de mise en production.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d’informations, consultez Aperçu d'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(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

Tests non fiables 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éveloppez Branch en 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 plus d’informations sur l’utilisation de segments, consultez Segments dans Power BI.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d’informations, consultez Aperçu d'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(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

Tests non fiables filtrés par fichier de test

Pour afficher les tests non fiables 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 indiqué plus loin dans cet article.

  • Développez Test en 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.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d’informations, consultez Aperçu d'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(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

Tests non fiables filtrés par propriétaire de test

Pour afficher les tests non fiables pour un pipeline et des 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 indiqué plus loin dans cet article.

  • Développez Test en 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.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir des données>Requête vide. Pour plus d’informations, consultez Aperçu d'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(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

Chaînes de substitution et décomposition 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 {organization} par Fabrikam, mais pas par {Fabrikam}.

 

  • {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-JJZ. Exemple : 2021-09-01Z représente le 1er septembre 2021. Ne placez pas de guillemets ni de crochets et utilisez deux chiffres pour le mois et le jour.

Décomposition des requêtes

Le tableau ci-après décrit chaque partie de la requête.

Partie de la requête

Description

$apply=filter(

Démarre la clause filter().

Pipeline/PipelineName eq '{pipelineName}'

Retournez les exécutions de tests pour le pipeline spécifié.

and CompletedOn/Date ge {startdate}

Retournez les exécutions de tests à la date spécifiée ou après celle-ci.

and Workflow eq 'Build'

Retournez des exécutions de tests pour un flux de travail Build.

)

Ferme la clause filter().

/groupby(

Démarre la clause groupby().

(TestSK, Test/TestName),

Regroupez en fonction du nom du test.

aggregate(

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

ResultCount with sum as TotalCount,

Comptez le nombre total d’exécutions de tests en tant que TotalCount.

ResultPassCount with sum as PassedCount,

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

ResultFailCount with sum as FailedCount,

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

ResultNotExecutedCount with sum as NotExecutedCount

Comptez 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 impactées en tant que NotImpactedCount.

ResultFlakyCount with sum as FlakyCount

Comptez le nombre total d’exécutions de tests non fiables en tant que FlakyCount.

))

Fermez les clauses aggregate() et groupby().

/filter(FlakyCount gt 0)

Filtrez uniquement les tests qui étaient non fiables au moins une fois.

/compute(

Démarre la clause compute().

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

Pour tous les tests non fiables, calculez le FlakyRate.

)

Ferme la clause compute().

(Facultatif) Renommer la requête

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

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

Développer la colonne Test dans Power BI

Développez la colonne Test pour afficher l’entité Test.TestName développée. Le développement de la colonne aplatit l’enregistrement dans des champs spécifiques. Pour savoir comment procéder, consultez Transformer des données d'analyse pour générer des rapports Power BI, Développer des colonnes.

Changer le type de données des colonnes

  1. Dans l’éditeur Power Query, sélectionnez les colonnes TotalCount, PassedCount, FailedCount, NotExecutedCount, NotImpactedCount et FlakyCount ; sélectionnez Type de données dans le menu Transformer ; puis choisissez Nombre entier.

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

Pour plus d’informations sur la modification du type de données, consultez Transformer des données d'analyse pour générer des rapports Power BI, Transformer un type de données pour une colonne.

Fermez la requête et appliquez vos modifications

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

Capture d’écran de l'option Fermer et appliquer dans l'éditeur Power Query.

Générer 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 des tests non fiables.

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

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

Votre rapport doit ressembler à l’image suivante.

Capture d’écran de l'exemple de rapport de tableau des tests non fiables.

Ressources de la tâche de test