Partager cette page

# Intégration aux tests externes

Pour intégrer ALM aux tests externes fonctionnant sur Jenkins, ALM introduit une action post-compilation pour le complément Micro Focus Application Automation Tools : Télécharger le résultat du test vers ALM en utilisant le mappage des champs. Ce complément lit les rapports de test de cadres ou d’outils de test externes, télécharge le résultat du test dans ALM, puis met à jour ou crée des tests, des ensembles de tests, des instances de test et des exécutions de test dans ALM.

Note : La solution précédente d’intégration des tests externes, telle que décrite dans Importer test externes, n’est plus mise à jour. Vous pouvez toujours l’utiliser si vous préférez cette solution. Cependant, nous vous recommandons d’utiliser la solution présentée dans cette rubrique.

Dans cette rubrique :

## Mesures de haut niveau

Voici le résumé de ce que vous devez faire pour utiliser l’action post-compilation pour télécharger les résultats de test d’un rapport de test XML vers ALM :

1. Préparer un fichier XML qui inclut le résultat du test. Vous pouvez préparer manuellement le fichier XML ou le faire générer par un outil ou un cadre de test.
2. Installer le plugin, version 6.4 ou ultérieure. Voir https://plugins.jenkins.io/hp-application-automation-tools-plugin/.

3. Créer un nouveau travail Jenkins pour tester la configuration du complément. Voir Créer une tâche pour tester la configuration du complément.

   Nous vous recommandons de créer un nouveau travail la première fois que vous utiliser le complément. Vous devez tester la configuration du complément avant de l’implémenter dans votre environnement de production.

4. Ajouter l’action post-compilation Télécharger le résultat du test vers ALM en utilisant le mappage des champs au nouveau travail Jenkins ou à un travail existant. Voir Configurer l’action post-compilation :.

Remarques :

- Si vous souhaitez télécharger les informations de durée, telles que le temps d’exécution du test, vers ALM, créer un champ défini par l’utilisateur de type chaîne dans ALM. Cela est dû au fait que le champ du système ALM Durée n’autorise que les nombres entiers. Il ne peut pas être utilisé pour enregistrer les informations relatives à la durée (normalement un nombre flottant) à partir du fichier XML.

- Le complément ne prend pas en charge la définition de champs système de type date pour les entités ALM. Par exemple, « Date de création » dans les tests et « Date d’exécution » dans les instances de test. Ces valeurs de champ de date sont définies automatiquement par ALM lorsque le résultat du test est téléchargé.

  Si vous souhaitez télécharger les informations de date du fichier XML de résultats de test vers ALM, créer un champ défini par l’utilisateur de type date. Ce fichier ne prend en charge que la date et non l’heure.

  Le format de la date dans le fichier XML doit être aaaa-mm-jj.

Retour en haut

## Créer une tâche pour tester la configuration du complément

Suivre les étapes ci-dessous pour créer un nouveau travail à partir de zéro. Ceci est recommandé si vous voulez essayer cette fonctionnalité dans votre environnement de test.

Si vous voulez l’utiliser directement dans votre environnement de production où il existe déjà une tâche Jenkins pour exécuter les tests, passer à Configurer l’action post-compilation :.

Pour créer un travail pour tester la configuration du complément :

1. Allez sur la page d’accueil du Serveur Jenkins.
2. Cliquer sur le lien Nouvel élément.
3. Saisir un nom de travail.
4. Sélectionner Compiler un projet de logiciel libre et cliquer sur OK.

5. Dans la section Configuration du projet, faites défiler la page jusqu’à la section Compilation.

6. Développer la liste déroulante Ajouter une étape de construction et sélectionner Exécuter un shell pour les systèmes non-Windows ou Exécuter une commande batch Windows pour les systèmes Windows.

   Écrire la commande pour copier le fichier XML du résultat du test type dans le dossier du travail Jenkins.

   Le plugin prend en charge la recherche du fichier de résultats de test dans le serveur Jenkins et les machines esclaves. Vous pouvez copier le fichier XML sur l’un des deux emplacements.

   Pour copier le fichier XML d’exemple sur le serveur Jenkins, exécuter la commande suivante :

   - Windows :

     Copy code

         copy "<Path_of_copied_sample_XML>\<Report_Name>.xml" <Jenkins_Home_Directory>/jobs/<Jenkins_Job_Name>/builds/%BUILD_ID%

   - Non-Windows :

     Copy code

         cp -f <Path_of_copied_sample_XML>/<Report_Name>.xml <Jenkins_Home_Directory>/jobs/<Jenkins_Job_Name>/builds/${BUILD_ID}

   Pour copier le fichier XML type sur la machine esclave Jenkins, exécuter la commande suivante :

   - Windows :

     Copy code

         copy "<Path_of_copied_sample_XML>\<Report_Name>.xml" %WORKSPACE%

   - Non-Windows :

     Copy code

         cp -f <Path_of_copied_sample_XML>\<Report_Name>.xml {WORKSPACE}

Retour en haut

## Configurer l’action post-compilation :

Suivre les étapes ci-dessous pour configurer l’action post-compilationMettre à jour les résultats du test vers ALM en utilisant le mappage de champ.

Pour configurer l’action post-compilation :

1. Ouvrir une tâche Jenkins que vous avez créée sur Créer une tâche pour tester la configuration du complément ou une tâche Jenkins existante qui exécute des tests automatiquement.

2. Cliquer sur Configurer. Dans la section Actions post-compilation, développer la liste déroulante Ajouter une action post-compilation et sélectionner Publier le résultat du test.

   Spécifier les éléments suivants :

   Champ | Description
   --- | ---
   ALM Server | Sélectionner l’un des serveurs ALM que vous avez configuré à l’étape Configurer la connexion vers ALM. See https://github.com/jenkinsci/hpe-application-automation-tools-plugin/blob/latest/doc/ALM_Integration.md.
   Identifiants ALM | Sélectionner une paire d’identifiants ALM. Si cela n’est pas disponible, cliquer sur Ajouter pour ajouter des informations d’identification.
   Domaine | Entrer le nom de domaine.
   Projet | Saisir le nom du projet.
   Type de client | Entrer un type de client que vous pouvez utiliser pour accéder au serveur ALM. Cela est requis uniquement lorsque la restriction API est activée dans le serveur ALM. Ignorer ce champ s’il n’y a pas de restriction API dans le serveur ALM.
   Dossier de test | Saisir le chemin du dossier de test qui contiendra les tests téléchargés. Ne pas inclure le dossier de test racine(Objet) dans le chemin. Si certains dossiers du chemin d’accès n’existent pas dans ALM, le complément créera ces dossiers en fonction de la structure et créera une entité sous le chemin d’accès. Par exemple, si le dossier de test est `sampletestfolder\subfolder`, et si ni `sampletestfolder` ni `subfolder` n’existent dans ALM, alors le complément créera le dossier `sampletestfolder` sous `Subject`, le dossier `subfolder` sous `sampletestfolder`, et un nouveau test sous `subfolder`. Le dossier de test prend en charge les variables d’environnement de Jenkins.
   Dossier Campagne de test | Entrer le chemin du dossier campagne de test. Ne pas inclure le dossier racine de l’ensemble du test dans le chemin. Le complément recherche l’ensemble de l’arbre de campagne de test par le nom de campagne de test défini dans le fichier XML. Si aucun n’est trouvé, une nouvelle campagne de test est créée sous le chemin. Si des dossiers dans le chemin n’existent pas dans ALM, le complément créera ces dossiers en se basant sur la structure. Le dossier campagne de tests prend en charge les variables d’environnement de Jenkins.
   Fichier de résultats des tests | Spécifier le chemin d’accès au fichier XML des résultats du test dans la syntaxe globale Ant, comme `**/*.xml`. S’assurer de ne pas inclure de fichiers autres que des rapports dans ce modèle. Vous pouvez spécifier plusieurs modèles de fichiers séparés par des virgules.
   Mappage de champ | Mettre en correspondance les éléments et attributs XML avec les entités et champs ALM. Les mappages de champs prennent en charge l’utilisation des variables d’environnement de Jenkins. Pour plus d’informations, voir Comment définir les mappages de champs.
   - Mappage du statut d’exécution | Mapper les valeurs de statut de test avec les valeurs de statut d’exécution ALM. Conditions préalables : Vous devez mapper un élément ou un attribut XML au champ de statut ALM. Vous pouvez mapper à la fois les statuts d’exécution du système ALM, tels que Non exécuté, Succès, Échec, Bloqué et Non terminé, et les statuts définis par l’utilisateur. Pour un exemple de mappage d’état d’exécution, voir Exemple de mappage du statut d'exécution. Si les valeurs de statut dans le fichier XML sont les mêmes que les valeurs de statut ALM, vous n’avez pas besoin de définir le mappage de statut d’exécution. Il n’est pas nécessaire de supprimer les mappages s’ils ne sont plus pertinents. Pour s’assurer que le résultat du test peut être téléchargé avec succès, nous vous recommandons de répertorier toutes les mappages de statut possibles. Par exemple, les mappages suivants peuvent coexister. Tant qu’au moins un des mappages est valide, le résultat du test peut être téléchargé.
         Success: "Passed"
         True: "Passed"
         1: "Passed"

### Comment définir les mappages de champs

Le mappage est configuré au format YAML. Il doit comprendre les sections suivantes dans le même ordre : « testset », « test », et « run ». Dans chaque section, vous devez définir les valeurs des clés suivantes :

- racine : Le chemin du nœud racine de la campagne de test, du test ou de l’exécution.

- Tous les champs obligatoires de campagne de test, des tests et de l’exécution dans votre projet ALM

  Une clé représente un champ de l’entité ALM. Sa valeur représente la valeur de l’élément ou de l’attribut dans le fichier XML qui sera téléchargé dans le champ ALM.

  Si vous voulez télécharger une valeur dans un champ du système, la clé doit être le nom du champ. Les noms des champs ALM ne sont pas toujours identiques aux étiquettes des champs. Vous devez utiliser les noms des champs ALM au lieu des étiquettes comme clés. Pour plus de détails sur la façon de connaître les noms des champs, voir API REST pour obtenir les noms des champs d’entités ALM.

  Si vous voulez télécharger une valeur dans un champ défini par l’utilisateur, la clé doit commencer par `udf|` suivie de l’étiquette du champ. Par exemple, si vous voulez télécharger une valeur dans le champ défini par l’utilisateur « Durée », la clé doit être `udf|duration`.

- (Facultatif) Autres champs ALM que vous souhaitez mapper

Comment spécifier les valeurs ?

Il existe deux types de valeurs : Les valeurs qui commencent par `x :` et celles qui commencent par `v :`.

`x :` | La valeur qui suit `x :` est le XPath (XML Path Language) d’un élément ou d’un attribut du fichier XML. Vous pouvez définir un chemin absolu (qui commence par `/`) ou un chemin relatif (qui commence directement par le nom de l’élément XML). `x :.` signifie que le XPath est exactement le même que celui défini dans l’entité précédente. Par exemple, si la `racine : « x :. »` est définie dans la section « run », et la section « run » suit la section « test » dans le mappage des champs, alors cela signifie que la racine du run est la même que celle du test. Si la valeur à télécharger dans un champ ALM est une valeur d’élément XML, ce qui suit `x :` doit être le nom de l’élément. Par exemple, `x:durée`. Si la valeur à télécharger est la valeur d’attribut d’un élément XML, ce qui suit x : doit être `@<nom_attribut>`. Par exemple, `x:@length`.
`v :` | La valeur qui suit `v :` est une valeur de chaîne fixe qui sera téléchargée dans une campagne de test, un test ou une exécution de test. Par exemple, si dans la section testset, il apparaît `nom : « v:2021-01-29__Build_Verification_Test »`, alors le nom de campagne de test téléchargée dans ALM sera `2021-01-29__Build_Verification_Test`. Pour spécifier les valeurs du champ « Type » du système ALM, vous devez choisir les valeurs sur Types de campagne de test, test et exécution et les préfixer par `v :`.

Si une valeur est composée de valeurs provenant de plusieurs éléments ou attributs XML, utiliser `|` pour combiner toutes les parties de la valeur ensemble. Par exemple, `x:file|v:_|x:name`.

Pour le résultat de l’essai sur échantillon et le mappage de champ, voir Exemple de résultat de test XML et Exemple de mappage de champ.

### API REST pour obtenir les noms des champs d’entités ALM

Appeler les API REST suivantes pour obtenir les noms de champ des entités campagne de test, test et run. Le nom d’un champ est la valeur de l’attribut Nom de l’élément Champ.

Obtenir les noms des champs de la campagne de test | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/test-set/fields?login-form-required=y
Obtenir les noms des champs du test | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/test/fields?login-form-required=y
Obtenir les noms des champs de l’exécution | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/run/fields?login-form-required=y

### Types de campagne de test, test et exécution

Test set type | hp.qc.test-set.default hp.qc.test-set.external
Test type | ALT-SCENARIO ALT-TEST BUSINESS-PROCESS DB-TEST EXTERNAL-TEST FLOW LEANFT-TEST LR-SCENARIO MANUAL QAINSPECT-TEST QTSAP-TESTCASE QUICKTEST_TEST SERVICE-TEST SYSTEM-TEST VAPI-XP-TEST WR-AUTOMATED WR-BATCH XR-TEST
Run type | custom.run.LEANFT-TEST hp.qc.run.ALT-SCENARIO hp.qc.run.ALT-TEST hp.qc.run.BUSINESS-PROCESS hp.qc.run.DB-TEST hp.qc.run.FLOW hp.qc.run.LR-SCENARIO hp.qc.run.MANUAL hp.qc.run.QAINSPECT-TEST hp.qc.run.QTSAP-TESTCASE hp.qc.run.QUICKTEST_TEST hp.qc.run.SERVICE-TEST hp.qc.run.SYSTEM-TEST hp.qc.run.VAPI-XP-TEST hp.qc.run.WR-AUTOMATED hp.qc.run.WR-BATCH hp.qc.run.XR-TEST hp.qc.run.external-test hp.sprinter.run.SPRINTER

### Échantillons

Exemple de résultat de test XML

    <?xml version='1.0' encoding='UTF-8'?>
        <result>
            <suites>
                <suite>
                    <file>Changes file</file>
                    <name>Changes Test Set 1</name>
                    <duration>2.293</duration>
                    <cases>
                        <case>
                            <duration>8.293</duration>
                            <className>ChangesManagement</className>
                            <testName>test1</testName>
                            <testVersion>4.0</testVersion>
                            <skipped>false</skipped>
                            <failedSince>0</failedSince>
                        </case>
                        <case>
                            <duration>8.293</duration>
                            <className>ChangesManagement</className>
                            <testName>List changes 2</testName>
                            <testVersion>4.0</testVersion>
                            <skipped>false</skipped>
                            <failedSince>0</failedSince>
                        </case>
                    </cases>
                </suite>
                <duration>0.576</duration>
        </result>

Exemple de mappage de champ

    testset:
      root: "x:/result/suites/suite"
      name: "x:file|v:_|x:name"
      udf|duration: "x:duration"
      subtype-id: "v:hp.qc.test-set.external"
    test:
      root: "x:cases/case"
      name: "x:testName"
      subtype-id: "v:EXTERNAL-TEST"
      udf|duration: "x:duration"
      udf|test version: "x:testVersion"
    run:
      root: "x:."
      duration: "x:duration"
      status: "x:failedSince"

Exemple de mappage du statut d'exécution

    status:
      True: "Passed"
      False: "Failed"
      1: "Passed"
      0: "Failed"
      Success: "Passed"
      Failure: "Failed"
      Block: "Blocked"

Retour en haut

## Exécuter la tâche

Exécutez ou planifiez la tâche comme vous le feriez avec une tâche Jenkins standard.

Retour en haut

## Une fois que le téléchargement a été effectué avec succès

- Si aucune campagne de test existante n’est trouvée par les noms de campagnes de test définis dans le fichier XML, de nouvelles campagnes de test sont créées.
- Si aucune instance de test existante n’est trouvée par les noms de test définis dans le fichier XML, de nouvelles instances de test sont créées.
- Si les résultats de test à télécharger concernent les mêmes campagnes de test et tests existants, le complément ne crée que des exécutions de test dans les instances de test.

Retour en haut

## Examiner les résultats

1. Ouvrir la tâche Jenkins. Dans la section Historique des compilations, cliquer sur un ID compilation.

2. Dans la page Build Details, cliquer sur Résultat console pour afficher le journal du téléchargement des résultats du test.

   Pour localiser rapidement le journal lié au téléchargement, rechercher le journal par « Démarrer connexion au serveur ALM ».

3. Se connecter à ALM pour afficher les tests, les campagnes de test, les instances de tests et les exécutions de tests qui ont été créés dans ALM.

Note : Le résultat de la console est important pour comprendre les détails du fonctionnement du complément, notamment lorsque la tâche échoue au premier essai. Cela vous aide à trouver et à résoudre les problèmes.

Retour en haut

Voir aussi :

- Intégrations Jenkins
- Aperçu des intégrations ALM

https://admhelp.microfocus.com ALM 8942
Conseils pour améliorer vos résultats de recherche... ALM Help Center ALM Help Center Aide ALM 17.0 Tout Afficher le centre d’aide local Afficher le centre d’aide en ligne arrière Revenir en arrière dans l’historique de navigation avant Avancer dans l’historique de navigation Désactiver la mise en surbrillance dans les résultats de recherche rubrique suivante Atteindre la rubrique suivante rubrique précédente Atteindre la rubrique précédente Imprimer la rubrique actuelle Version :