Lancer des tests en CI/CD avec le CLI ktm

Exécutez les tests Kapptivate depuis votre pipeline avec des codes de sortie stables, une sortie JUnit et des annotations natives GitHub Actions.

ktm est conçu pour les pipelines. Le schéma est toujours le même : construire une campagne, l'exécuter, publier les résultats. Le CLI retourne du JSON, écrit du JUnit XML et retourne un code non nul quand des tests échouent, pour que votre pipeline réagisse automatiquement.

Exemples de pipeline

name: Kapptivate Tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install ktm
        run: curl -fsSL https://artefacts.kapptivate.com/ktm/install.sh | bash

      - name: Build campaign
        env:
          KAPPTIVATE_API_KEY: ${{ secrets.KAPPTIVATE_API_KEY }}
        run: |
          ktm ci build \
            --test-ids 16480,16838 \
            --product acme~web --variant "API:Staging" > campaign.json

      - name: Run tests
        env:
          KAPPTIVATE_API_KEY: ${{ secrets.KAPPTIVATE_API_KEY }}
        run: |
          ktm ci run \
            --test-config-path campaign.json \
            --junit-file results.xml \
            --output-file summary.json

      - name: Upload results
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: |
            results.xml
            summary.json

Pour GitLab, ajoutez KAPPTIVATE_API_KEY comme variable CI/CD masquée dans les paramètres de votre projet (Settings > CI/CD > Variables), de la même façon que GitHub Actions utilise secrets.KAPPTIVATE_API_KEY.

Intégration native GitHub

Quand GITHUB_ACTIONS=true (défini automatiquement), ktm produit une sortie native sans configuration supplémentaire :

  • Il émet des annotations ::notice et ::error qui apparaissent sur l'exécution et sur les pull requests.
  • Il ajoute un tableau de résultats au résumé du job.

Le résumé JSON est supprimé sur stdout dans ce mode, donc passez --output-file summary.json pour le conserver en fichier.

Autres plateformes

Pour Jenkins et les autres runners, le schéma est identique : installez ktm, définissez KAPPTIVATE_API_KEY, puis appelez ktm ci build et ktm ci run. Committez vos fichiers JSON de campagne ou de configuration de tests dans le dépôt et pointez ktm ci run --test-config-dir ./tests/ dessus.

Codes de sortie

Le pipeline échoue sur tout code de sortie non nul. Le code 5 signifie que les tests ont été exécutés mais que certains ont échoué (distinct du 1, qui est une erreur générale). Consultez Configuration pour la liste complète.

Et ensuite ?

Référence des commandes

Les commandes ci et leurs flags.

Configuration

Codes de sortie, variables d'environnement et formats de sortie.

Last updated on