Exécuter des tests dans votre pipeline
L'outil en ligne de commande, les résultats que lit votre outil de CI, et des exemples prêts à l'emploi.
Un test, n'importe quel pipeline
gtr-cli, l'outil en ligne de commande, exécute un test exactement comme le bouton Exécuter le test : mêmes assertions, même rapport, même historique.Il ajoute ce dont un pipeline a besoin : un code de sortie, des fichiers de résultats que votre outil de CI comprend, et toutes les preuves d'un échec dans un seul dossier.
Votre pipeline
et tout outil qui exécute une commande
jobs: gui-tests: runs-on: [self-hosted, windows] steps: - run: gtr-cli run tests --format github --junit results.xml
Exécution de 12 tests sur l'écran de l'agent de build...
PASSED 12 tests sur 12 · exit code 0
- Code de sortie0 quand tous les tests ont réussi, 1 quand l'un a échoué : le build passe au vert ou au rouge.
- JUnit, JSON, MarkdownDes résultats que votre pipeline affiche comme résultats de test, avec chaque étape nommée.
- Les preuves de chaque échecLes images attendues et obtenues, l'écran, le rapport et la vidéo dans un seul dossier.
Préparer la machine de build
Un test GUI se rejoue sur un écran réel, la machine qui l'exécute en a donc besoin d'un.
| Il faut | Pourquoi |
|---|---|
| Windows avec GUI Test Studio installé | Le programme d'installation ajoute gtr-cli au PATH. |
| Une session de bureau ouverte et déverrouillée | Le test clique et saisit du texte sur l'écran réel.Lancez l'agent de build comme un programme normal dans cette session, pas comme un service en arrière-plan. |
| La résolution d'écran et la mise à l'échelle des tests | Les éléments sont comparés à la taille à laquelle ils ont été enregistrés. |
| L'application testée | Installée, ou lancée par le test lui-même avec une étape Lancer une application. |
| Un poste de votre offre | L'agent se connecte une fois, avec une clé machine de votre page de compte. |
Créez la clé sur votre page de compte, sous Clés machine, puis lancez ceci une fois sur l'agent, avec le compte Windows que le pipeline utilise :
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXXgtr-cli whoami indique si l'agent est connecté et jusqu'à quand.Sans connexion, une exécution ne démarre pas : elle affiche une ligne commençant par COULD NOT RUN et se termine avec le code de sortie 3.
Agents de build : clés machine
Votre première commande
Dans un terminal sur la machine de build, exécutez tous les tests d'un dossier :
gtr-cli run tests --countdown 0 --junit results\junit.xml --artifacts results\artifacts--countdown 0 démarre aussitôt (personne n'est devant l'écran), --junit écrit le fichier de résultats que lit votre outil de CI, et --artifacts rassemble les vidéos, les rapports et les images des échecs dans un seul dossier.
gtr-cli check testsCe que votre pipeline reçoit en retour
| Code de sortie | Signification |
|---|---|
| 0 | Tous les tests ont réussi.Le build passe au vert. |
| 1 | Au moins un test a échoué. |
| 2 | La commande était incorrecte : une option inconnue, un fichier manquant. |
| 3 | Un test n'a pas pu s'exécuter, par exemple parce que l'écran diffère de celui de l'enregistrement. |
| 4 | Une exécution a été abandonnée. |
| Fichier | Pour |
|---|---|
| JUnit (--junit) | L'onglet des résultats de tests de GitLab, Jenkins, Azure DevOps, TeamCity et GitHub |
| Résumé Markdown (--summary) | Un commentaire de merge request ou la page de résumé du build |
| JSON (--json) | Vos propres tableaux de bord et scripts |
| Dossier d'artefacts (--artifacts) | La vidéo, le rapport de confiance et les images des échecs de chaque test |
| Rapports d'anomalie (--bug-report pdf) | Un rapport d'anomalie rempli pour chaque test échoué |
Les exécutions arrivent aussi dans le dossier de résultats de chaque test, l'historique de GUI Test Runner-Recorder montre donc les exécutions du pipeline à côté des vôtres.
Des exemples prêts à l'emploi
jobs:
gui-tests:
runs-on: [self-hosted, windows]
steps:
- uses: actions/checkout@v4
- run: gtr-cli run tests --countdown 0 --format github --junit results\junit.xml --summary results\summary.md --artifacts results\artifacts
- uses: actions/upload-artifact@v4
if: always()
with:
name: gui-test-results
path: resultsConstruire une commande sans la saisir
Dans l'une ou l'autre application, Ligne de commande & CI/CD (dans le menu Fichier de GUI Test Studio, dans le menu Test de GUI Test Runner-Recorder) construit la commande pour vous : cochez les options voulues, copiez le résultat, ou copiez l'extrait prêt à l'emploi pour votre outil de CI avec vos vrais chemins.Son onglet Documentation explique chaque option.
Les options que vous utiliserez
| Option | Ce qu'elle fait |
|---|---|
| --countdown 0 | Démarrer aussitôt.Dans un terminal, le compte à rebours par défaut vous laisse le temps de lâcher la souris. |
| --retries 1 | Exécuter une nouvelle fois un test échoué avant de le déclarer échoué. |
| --fail-fast | S'arrêter après le premier test échoué. |
| --timeout 600 | Abandonner un test qui s'exécute encore après 10 minutes. |
| --baseline-profile "Dark mode" | Exécuter avec l'un de vos profils de référence. |
| --start-at 12.5 | Démarrer le test à ce moment, en secondes. |
| --branch all | Pour un test web créé pour plusieurs navigateurs et appareils : exécuter chacun, test enregistré compris.En nommer un ou plusieurs à la place pour n'exécuter que ceux-là. |
| --headless on | Exécuter les tests web sans fenêtre de navigateur partout où le test le permet. |
| --parallel off | Exécuter les navigateurs et appareils d'un test l'un après l'autre plutôt que côte à côte. |
| --screen all | Sur une machine de build à plusieurs moniteurs : exécuter sur tous, sur le principal, sur le numéro d'un moniteur, sur l'écran du terminal, ou là où le test a été enregistré.Par défaut, l'écran que nomment les Paramètres du projet du test : l'écran du terminal, sauf s'ils en nomment un. |
| --run-banner off | Masquer le fin bandeau TEST EN COURS en haut de l'écran pendant l'exécution. |
| --ai-verification on | Laisser l'IA donner le verdict final des assertions visuelles et de texte échouées.Le verdict du test et le code de sortie suivent, et ce qui a changé est écrit dans la console et dans les fichiers de résultats. |
| --ai-provider builtin | Utiliser un modèle sur la machine de build elle-même : rien à installer, et un modèle manquant est téléchargé une seule fois. |
| --ai-minor-differences fail | Faire échouer une assertion dans laquelle l'IA ne trouve que des différences mineures.Par défaut, elle réussit. |
| --ai-wait 600 | Le temps le plus long qu'un test attend ses verdicts de l'IA, en secondes.Par défaut, l'outil choisit de lui-même. |
gtr-cli helpSignaler les échecs dans Jira
Un test échoué peut devenir de lui-même un ticket Jira : les étapes pour reproduire, les images attendue et obtenue avec ce qui a changé entouré, le rapport d'anomalie en PDF et les preuves.La même anomalie revue, sur un autre build, navigateur ou appareil, ajoute un commentaire à son ticket ouvert au lieu d'en créer un second.
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression| Option | Ce qu'elle fait |
|---|---|
| --jira on-failure | Créer un ticket Jira pour chaque test échoué.Un test qui n'a pas pu s'exécuter n'en devient jamais un. |
| --jira-project SCRUM | Le projet où vont les tickets, par sa clé. |
| --jira-issue-type Bug | Le type de ticket.Quand le projet n'en a aucun de ce nom, le plus proche est utilisé. |
| --jira-assignee "James" | La personne à qui le ticket est assigné : une adresse e-mail ou un nom parmi les personnes du projet. |
| --jira-labels a,b | Vos propres étiquettes, séparées par des virgules. |
| --jira-repeat new | Toujours un nouveau ticket, jamais un commentaire sur le ticket ouvert. |
La connexion vient de l'environnement, le jeton n'apparaît donc jamais dans une ligne de commande ni dans un journal de build : JIRA_BASE_URL (votre site Jira), JIRA_USER_EMAIL et JIRA_API_TOKEN.Dans votre outil de CI, gardez le jeton comme secret ou comme paramètre de type mot de passe.Sur un ordinateur où GUI Test Runner-Recorder est connecté à Jira, c'est sa connexion mémorisée qui est utilisée à la place.
Tout le parcours, avec un vrai ticket et un vrai build : Connecter Jira au rapport de confiance.
Les applications web sur une machine de build
Un test enregistré sur une application web ouvre son navigateur de lui-même, en mode kiosque plein écran, et le ferme à la fin.Sur une machine de build, cela demande la taille d'écran et la mise à l'échelle de l'enregistrement, un bureau ouvert et déverrouillé, et une exécution qui se termine par sa propre limite de temps.Ouvrir une application web dit ce qui se passe sinon et que faire.
Les mêmes notes se trouvent dans l'outil lui-même :
gtr-cli help web-appsChaque navigateur et appareil, dans le pipeline
Un test web créé pour plusieurs navigateurs et appareils les exécute tous avec --branch all, chacun avec sa propre entrée dans le fichier JUnit et son propre historique.Les téléphones, les tablettes et les autres branches sans fenêtre s'exécutent côte à côte, ils n'ont donc pas besoin d'un écran à eux.gtr-cli info liste le nom de chacun, et gtr-cli generate crée ceux qui manquent encore.Voir Chaque navigateur et chaque appareil à partir d'un seul enregistrement.
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xmlPartager des tests sans leur enregistrement
Un fichier de test contient son enregistrement, dont vous avez besoin pour le modifier mais pas pour l'exécuter.Fichier, Exporter en test allégé (.GTR) dans GUI Test Studio écrit le même test sans lui : un fichier bien plus petit pour une machine de build ou un collègue qui ne fait qu'exécuter des tests. gtr-cli et GUI Test Runner-Recorder exécutent les fichiers .GTR comme n'importe quel test.
| Test (.GTS) | Test allégé (.GTR) | |
|---|---|---|
| Contient | Les étapes, les vérifications et la référence visuelle : l'enregistrement, les images et les maquettes | Les étapes et les vérifications seulement |
| Fait pour | Créer et modifier le test | Exécuter le test |
| Taille | Plus grande : elle augmente avec l'enregistrement | Bien plus petite |
| S'ouvre dans | GUI Test Studio et GUI Test Runner-Recorder | GUI Test Runner-Recorder et gtr-cli |
Quand utiliser un test allégé
Utilisez-le partout où un test ne fait que s'exécuter : une machine de build, l'ordinateur d'un testeur, un ensemble de tests qui doit voyager ou être conservé avec votre code.L'exécution d'un test allégé donne le même résultat et le même rapport que son test.
Gardez le test lui-même
Un test allégé ne peut pas être modifié : GUI Test Studio ne l'ouvre pas.Gardez le .GTS comme original, modifiez-le là, et exportez à nouveau après un changement.GUI Test Runner-Recorder peut aussi en exporter un, depuis son menu Test ou le bouton d'exportation sur la page du test.
Un test web avec plusieurs navigateurs et appareils
L'exportation demande quoi inclure.Chaque navigateur et appareil met chaque branche générée dans un seul fichier, prêt pour --branch all.Seulement l'enregistrement, ou seulement la branche affichée, crée un test allégé de celle-ci uniquement.Un test allégé ne peut qu'être exécuté : les nouveaux navigateurs et appareils sont créés à partir du .GTS.
Garder les tests avec votre code
Les tests sont des fichiers ordinaires : gardez-les dans votre dépôt à côté du code qu'ils testent, et chaque branche porte les tests qui lui correspondent.
Toujours bloqué ?Dites-nous ce que vous essayiez de faire, et nous répondons sous un jour ouvré.Ask our team