DevOps intégration d’outils de test
L’intégration d’outils de test vous permet d’afficher les résultats des tests dans pour DevOpsJenkins, Azure DevOpsGitHub, GitHub Enterprise et des tests unitaires, fonctionnels et GitLab de performances.
Pour GitLab et Jenkins, seule l’intégration de type test JUnit est prise en charge.
- Les tests Selenium exécutés et publiés à l’aide de TestNG sont signalés par le Jenkins plugin pour ServiceNow DevOps.
- La catégorisation des types 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 à DevOps l’aide de flux secondaires personnalisés Studio de workflow (aucune modification du pipeline n’est requise).
| Catégorie | Type de test |
|---|---|
| Unité | JUnit (par défaut) NUnit XUnit Test unitaire Remarque :
Vous pouvez modifier le type de test par défaut en modifiant le [sn_devops.default_test_type] DevOps property. |
| Fonctionnel |
|
| 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 ( module.)
Un mappage précis des types de test garantit que le type de test apparaît toujours comme prévu dans les résultats du résumé du test.
| Champ | Description | |
|---|---|---|
| Type de test |
|
|
| ID de l'entité DevOps | Nom de la table | DevOps Nom de table contenant l’entité liée aux résultats des tests (dans la charge utile du rapport de test).
Remarque : Seules DevOps les tables d’étape et de pipeline 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 Jenkins(tests uniquement) |
Chemin d’accès au fichier de résultat des tests généré sur le Jenkins serveur. Ceci est utile pour que les rapports de test avec des attributs qui ne sont pas conformes à l’implémentation JUnit ou TestNG, tels que JMeter par exemple, puissent toujours être exploités par DevOps. Séparez plusieurs fichiers par une virgule. Remarque : Vous devez utiliser un Studio de workflow flux secondaire pour transformer une charge utile de test brute. |
|
| Intégration d'outils | Outil qui exécute le test. |
|
| Table DevOps | DevOps Table qui correspond au nom de la table dans le paramètre ID d’entité DevOps . |
|
Transformation d’une charge utile de test brute
S’il existe plusieurs types de test dans une étape de performance, vous pouvez utiliser la table de décision de politique de type de test DevOps pour configurer le type de test pour chaque test afin que les charges utiles des résultats des tests soient transformées correctement.
| 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 :
|
Créez une décision qui spécifie le flux secondaire personnalisé à appeler lorsque la charge utile brute est reçue. Définissez les conditions pour contenir les champs qui sont inclus dans la charge utile brute. Par exemple, pour appeler Jenkins le flux secondaire personnalisé de test de performance BZ : Conditions :
Réponse : FLow : Jenkins Test de performance BZ |
| Politique de type de test DevOps | Définir automatiquement les types de test lorsque plusieurs types de test sont configurés dans une étape de test de performance. Cela 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 de charge et un test de performances JUnit sont mappés dans la même DevOps étape, 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 :
|
Créez une décision pour chaque type de test à l’étape du test de performances afin de définir le type de test. Test de charge :
Test JUnit :
|
Résultats de la synthèse du test
- (Résumés des tests et Résumés des tests de performances).
- Demande de changement DevOps : liste connexe Résultats des tests.
- DevOps Pipeline UI - Carrelage de qualité.
JSON standard attendu Charge utile de l’aptitude de notification : outil de test
{
"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.{
"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.