Aller au contenu

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éfinit ROBOT_VERSION utilisé pour fixer la version de Robot Framework
  • default.image : Utilise une image Docker Python 3.14 légère pour exécuter le pipeline
  • stages : 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'étape test
  • script : 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 échouent
    • expire_in: 7 days : Conserver les artefacts pendant 7 jours
    • paths : Liste des fichiers à sauvegarder
    • reports.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épertoire tests

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

  1. Allez dans votre projet GitLab
  2. Naviguez vers Build → Pipelines
  3. Vous devriez voir un nouveau pipeline s'exécuter automatiquement (sinon, vous pouvez l'exécuter manuellement en cliquant sur le bouton Run pipeline)
  4. Cliquez sur le pipeline pour voir le job robotframework-tests
  5. Cliquez sur le job pour voir les tests s'exécuter et visualiser les logs
  6. Une fois terminé, vous pouvez télécharger les artefacts (incluant output.xml et xunit.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 :

  1. Parser le rapport de test - Convertir un fichier de rapport dans un format JSON que SquashTM peut comprendre
  2. Publier dans SquashTM - Envoyer les résultats parsés à votre instance SquashTM via l'API

Passez à : Parser le rapport