Exécuter les tests automatisés en CI/CD
Maintenant que votre environnement SquashTM est prêt, configurez votre pipeline CI/CD pour exécuter votre suite de tests automatisés et générer les artefacts nécessaires.
Ce que vous apprendrez dans cette section :
- Exécuter vos tests automatisés dans un pipeline CI/CD
- Générer des rapports de tests dans un format analysable (par exemple, Robot Framework
output.xml, JUnit XML, Cucumber JSON, etc.) - Sauvegarder les artefacts pour les prochaines étapes (parsing et publication dans SquashTM)
Exemple : GitLab CI/CD + Robot Framework
Dans cet exemple, nous allons configurer un pipeline GitLab CI/CD pour exécuter automatiquement les tests Robot Framework et générer les rapports de tests nécessaires pour SquashTM.
Dans la section précédente (Préparer SquashTM), vous avez créé un projet, des cas de test avec références de test automatisé, et un plan d'exécution (itération) qui collectera vos résultats de tests automatisés. Maintenant que votre environnement SquashTM est prêt, configurons un pipeline simple qui exécute les tests et produit un rapport xUnit.
Voir le fichier complet
Vous pouvez consulter le fichier .gitlab-ci.yml complet (final) ici : .gitlab-ci.yml.
Étape 1 : Créer le fichier de configuration du pipeline
Les pipelines GitLab CI/CD sont définis dans un fichier appelé .gitlab-ci.yml situé à la racine de votre dépôt.
Créez ce fichier dans le répertoire racine de votre projet :
your-project/
├── .gitlab-ci.yml ← Créez ce fichier
├── tests/
│ └── login_validation_tests.robot
└── ...
Étape 2 : Définir la structure du pipeline
Ouvrez .gitlab-ci.yml et commencez par définir la structure de base du pipeline :
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- when: never
variables:
ROBOT_VERSION: "7.4.1"
default:
image: python:3.14-slim
stages:
- test
Ce que cela fait :
workflow.rules: Contrôle quand le pipeline s'exécute :- S'exécute automatiquement sur les merge requests
- S'exécute sur les pushs directs vers les branches (mais évite les doublons avec les merge requests)
- Permet les exécutions manuelles depuis l'interface GitLab
- Supporte les pipelines planifiés
- Bloque toutes les autres sources de pipeline pour la sécurité
- Pour des tests rapides, vous pouvez simplifier cela en :
workflow: rules: - when: always
variables: DéfinitROBOT_VERSIONutilisé pour fixer la version de Robot Frameworkdefault.image: Utilise une image Docker Python 3.14 légère pour exécuter le pipelinestages: Définit une étape (pour l'instant) :test(exécuter les tests)
Étape 3 : Ajouter le job d'exécution des tests
Maintenant, ajoutez un job pour exécuter vos tests Robot Framework :
robotframework-tests:
stage: test
allow_failure: true
script:
- python --version
- pip install --upgrade pip --root-user-action=ignore
- pip install robotframework==${ROBOT_VERSION} --root-user-action=ignore
- robot --xunit xunit.xml ./tests/
artifacts:
when: always
expire_in: 7 days
paths:
- output.xml
- log.html
- report.html
- xunit.xml
reports:
junit: xunit.xml
Ce que cela fait :
stage: test: Ce job s'exécute dans l'étapetestscript: Commandes à exécuter :- Vérifier la version de Python
- Installer/mettre à jour pip
- Installer Robot Framework avec la version définie par
ROBOT_VERSION - Exécuter les tests Robot Framework et générer un rapport JUnit
xunit.xml(l'exemple utilise xunit.xml pour le parsing)
artifacts: Sauvegarder les rapports de tests pour une utilisation ultérieure :when: always: Sauvegarder les artefacts même si les tests échouentexpire_in: 7 days: Conserver les artefacts pendant 7 jourspaths: Liste des fichiers à sauvegarderreports.junit: Afficher les résultats de tests dans l'interface GitLab
Comprendre la commande Robot Framework
La commande clé qui exécute vos tests est :
robot --xunit xunit.xml ./tests/
Décomposition de la commande :
robot: L'exécuteur de tests Robot Framework--xunit xunit.xml: Générer un rapport XML de style JUnit (pour l'interface GitLab et le parsing)./tests/: Exécuter tous les tests dans le répertoiretests
Fichier de pipeline complet
À ce stade, vous avez un pipeline qui peut exécuter des tests et sauvegarder des artefacts dans votre dépôt GitLab.
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- when: never
variables:
ROBOT_VERSION: "7.4.1"
default:
image: python:3.14-slim
stages:
- test
robotframework-tests:
stage: test
allow_failure: true
script:
- python --version
- pip install --upgrade pip --root-user-action=ignore
- pip install robotframework==${ROBOT_VERSION} --root-user-action=ignore
- robot --xunit xunit.xml ./tests/
artifacts:
when: always
expire_in: 7 days
paths:
- output.xml
- log.html
- report.html
- xunit.xml
reports:
junit: xunit.xml
Étape 4 : Commiter et vérifier le pipeline
Sauvegardez le fichier .gitlab-ci.yml et commitez-le dans votre dépôt :
git add .gitlab-ci.yml
git commit -m "Add CI/CD pipeline for automated tests"
git push
Vérifier le pipeline
- Allez dans votre projet GitLab
- Naviguez vers Build → Pipelines
- Vous devriez voir un nouveau pipeline s'exécuter automatiquement (sinon, vous pouvez l'exécuter manuellement en cliquant sur le bouton Run pipeline)
- Cliquez sur le pipeline pour voir le job
robotframework-tests - Cliquez sur le job pour voir les tests s'exécuter et visualiser les logs
- Une fois terminé, vous pouvez télécharger les artefacts (incluant
output.xmletxunit.xml)
Ce que vous avez accompli
Votre pipeline CI/CD maintenant :
- S'exécute automatiquement à chaque commit
- Exécute tous les tests Robot Framework
- Génère des rapports de tests automatisés
- Sauvegarde les artefacts pendant 7 jours
Prochaine étape
Maintenant que vous avez des rapports de tests générés automatiquement, la prochaine étape est de :
- Parser le rapport de test - Convertir un fichier de rapport dans un format JSON que SquashTM peut comprendre
- Publier dans SquashTM - Envoyer les résultats parsés à votre instance SquashTM via l'API
Passez à : Parser le rapport