Intégration de l'outil de test DevOps

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 6 minutes de lecture
  • L'intégration de l'outil de test vous permet d'afficher les résultats des tests dans DevOps pour Jenkins, Azure DevOps, GitHub, GitHub Enterprise, et les tests unitaires, fonctionnels et de performances GitLab.

    Pour GitLab et Jenkins, seule l'intégration du type de test JUnit est prise en charge.

    Remarque :
    Pour les autres types de tests, utilisez le point de terminaison DevOps - POST /devops/tool/{capability} de l'API DevOps.
    • Les tests Selenium exécutés et publiés à l'aide de TestNG sont signalés par le module d'extension Jenkins pour ServiceNow DevOps.
    • La catégorisation du type de test est prise en charge.
    • Les résultats des tests supplémentaires signalés par des outils tels qu'Apache JMeter peuvent être traités dans DevOps à l'aide de flux secondaires Studio de workflow personnalisés (aucune modification du pipeline n'est requise).
    Catégorie Type de test
    Unité

    JUnit (par défaut)

    NUnit

    XUnit

    Test unitaire

    Remarque :
    • Pour GitLab et Jenkins, seule l'intégration du type de test JUnit est prise en charge.
    • Pour ADO, GitHub et GitHub Enterprise, les intégrations des types de tests JUnit, NUnit, XUnit et unitaires sont prises en charge.

    Vous pouvez modifier le type de test par défaut en modifiant le [sn_devops.default_test_type] DevOps property.

    Fonctionnel
    • Intégration
    • Régression
    • Fumée
    • Système
    • Acceptation de l'utilisateur
    Performances Charge

    Mappage de type de test

    Le mappage de type de test connecte le type de test et l’entité testés avec l’outil DevOps (DevOps > Intégrations > Mappages de type de test module.)

    Mappages de type de test

    Un mappage précis du type de test garantit que le type de test s'affiche toujours comme prévu dans les résultats des résumés des tests.

    Champ Description
    Type de test
    • JUnit
    • Nunit
    • Xunit
    • Test unitaire
      Remarque :
      • Pour GitLab et Jenkins, seule l'intégration du type de test JUnit est prise en charge.
      • Pour ADO, GitHub et GitHub Enterprise, les intégrations des types de tests JUnit, NUnit, XUnit et unitaires sont prises en charge.
    • Intégration
    • Régression
    • Fumée
    • Système
    • Acceptation de l'utilisateur
    • Charge
    ID de l'entité DevOps Nom de la table

    Nom de table DevOps qui contient l'entité liée aux résultats des tests (dans la charge utile du rapport de test).

    • Étape [sn_devops_step]
    • Pipeline [sn_devops_pipeline]
    Remarque :
    Seules les tables Étape et Pipeline DevOps sont prises en charge.
    Document

    Nom de l'entité spécifiée dans la table sélectionnée.

    Par exemple, le nom de l'étape, du pipeline, de l'artefact ou du package.

    Chemins d'accès aux fichiers de test

    (tests Jenkins uniquement)

    Chemin d'accès au fichier des résultats des tests généré sur le serveur Jenkins.

    Ces informations sont utiles pour que les rapports de test comportant des attributs non conformes à l'implémentation JUnit ou TestNG, tels que JMeter, puissent toujours être exploités par DevOps.

    Séparez plusieurs fichiers par une virgule.

    Remarque :
    Vous devez utiliser un flux secondaire Studio de workflow pour transformer une charge utile de test brute.
    Intégration d'outils

    Outil qui exécute le test.

    Table DevOps

    Table DevOps qui correspond au nom de la table dans le paramètre ID d'entité DevOps.

    Figure 1. Mappage de type de test DevOps
    Mappage de type de test DevOps
    Figure 2. Exemple de fichier yaml de test unitaire ADO
    Exemple de fichier yaml de test unitaire ADO
    Figure 3. Exemple de fichier yaml de test unitaire GitHub
    Exemple de fichier yaml de test unitaire GitHub

    Transformation d'une charge utile de test brute

    Vous pouvez transformer un rapport de test brut (un rapport contenant des attributs qui ne sont pas conformes à l’implémentation JUnit ou TestNG), tel que JMeter par exemple, en configurant la table de décision de politique de flux secondaire de test DevOps pour appeler un flux secondaire personnalisé (Tables de décision > Tables de décision module).
    Remarque :
    Vous devez créer le flux secondaire Studio de workflow personnalisé qui transforme la charge utile de test brute.

    S'il existe plusieurs types de tests dans une étape de performances, vous pouvez utiliser la table de décision Politique de type de test DevOps pour configurer le type de test de chaque test afin que les charges utiles des résultats des tests soient transformées correctement.

    Figure 4. Tables de décision DevOps
    Tables de décision DevOps
    Tableau 1. Tables de décision DevOps
    Table de décision Objectif Configuration
    Politique de flux secondaire de test DevOps

    Pour appeler automatiquement un flux secondaire personnalisé qui transforme la charge utile brute reçue par l'outil.

    Entrées de décision :

    • Charge utile du résultat du test
    • Type de test

    Créez une décision qui spécifie le flux secondaire personnalisé à appeler lors de la réception de la charge utile brute.

    Définissez les conditions de sorte qu'elles contiennent des champs qui seront inclus dans la charge utile brute.

    Par exemple, pour appeler le flux secondaire personnalisé Test de performances Jenkins BZ :

    Conditions :
    • Le type de test est Charge

      (Charge est le type de test configuré pour les tests de performances)

    • La charge utile du résultat du test contient le débit
    • La charge utile du résultat du test contient la concurrence

    Réponse : Flux : Test de performances Jenkins BZ

    Politique du type de test DevOps

    Pour définir automatiquement les types de tests lorsque plusieurs types de tests sont configurés dans une étape de test de performances.

    Ceci est nécessaire pour que les résultats du deuxième type de test soient transformés correctement.

    Par exemple, lorsqu'un test de performances Charge et un test de performances JUnit sont mappés dans la même étape DevOps, les résultats des tests JUnit ne sont pas formatés correctement, à moins qu'une décision ne soit créée.

    Entrées de décision :
    • Étape
    • Charge utile du résultat du test
    • Intégration d'outils
    • Pipeline

    Créez une décision pour chaque type de test à l'étape de test de performances afin de définir le type de test.

    Test de charge :
    • Conditions :
      • L'étape correspond à des tests de performance
      • La charge utile du résultat du test contient le débit
      • La charge utile du résultat du test contient la concurrence
    • Réponse : Type de test : Charge

    Test JUnit :

    • Conditions :
      • L'étape correspond à des tests de performance
      • La charge utile du résultat du test ne contient pas le débit
      • La charge utile du résultat du test ne contient pas la concurrence
    • Réponse : Type de test : JUnit

    Figure 5. Types de tests de performances multiples DevOps
    Types de tests de performances multiples DevOps
    Figure 6. Mappages de type de test multiples DevOps
    Mappages de type de test multiples DevOps
    Figure 7. Décision de la table de décision DevOps
    Décision de la table de décision DevOps

    Résultats du résumé du test

    Vous pouvez afficher les résultats du résumé du test des façons suivantes.
    Figure 8. Exemple de résumé du test de performances DevOps
    Résumé des tests de performances DevOps

    Charge utile attendue de la fonctionnalité de notification JSON standard - Outil de test

    Fonctionnel :
    { 
    "name": "CorpSite-selenium#55", 
    "duration": 78.802, 
    "passedTests": 4, 
    "failedTests": 0, 
    "skippedTests": 0, 
    "blockedTests": 0, 
    "totalTests": 4, 
    "startTime": "2020-06-30T18:12:31Z", 
    "finishTime": "2020-06-30T18:12:31Z", 
    "passingPercent": 100, 
     
     
    // Use Artifact OR Package OR Build + Stage + PipelineName Attributes 
    
    Send only one Attribute combination. For example, send Attributes of either  Artifact or Package, or the combination of Build + Stage + PipelineName.
    
    If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
    
    1.packages
    2.artifcats
    3.buildNumber + stageName + pipelineName
    
    "packages": [{"name": "CorpSite-pkg1"}], 
    "artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}], 
    "buildNumber": "55", 
    "stageName": "test", 
    "pipelineName": "CorpSite-selenium", 
    } 
    
    Notes:
    - The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
    - The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.
    Performances :
    { 
    "name": "Performance Tests", 
    "url": "http://abc.com", 
    "startTime": "2020-06-30T18:12:31Z", 
    "finishTime": "2020-06-30T18:12:31Z", 
    "duration": 78.802, 
    "maximumVirtualUsers": "", 
    "throughput": "", 
    "maximumTime": "", 
    "minimumTime": "", 
    "averageTime": "", 
    "ninetyPercent": "", 
    "standardDeviation": "", 
     
    // Use Artifact OR Package OR Build + Stage + PipelineName Attributes 
    
    Send only one Attribute combination. For example, send Attributes of either  Artifact or Package, or the combination of Build + Stage + PipelineName.
    
    If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
    
    1.packages
    2.artifcats
    3.buildNumber + stageName + pipelineName
    
    "packages": [{"name": "CorpSite-pkg1"}], 
    "artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}], 
    "buildNumber": "55", 
    "stageName": "test", 
    "pipelineName": "CorpSite-Performance", 
    } 
    
    Notes:
    - The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
    - The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.