Tests in Ihrer Pipeline ausführen

Der Befehlszeilen-Runner, die Ergebnisse, die Ihr CI-Tool liest, und fertige Beispiele.

Ein Test, jede Pipeline

gtr-cli, der Befehlszeilen-Runner, führt einen Test genau wie die Schaltfläche „Test ausführen“ aus: dieselben Prüfungen, derselbe Bericht, derselbe Verlauf.Es ergänzt, was eine Pipeline braucht: einen Exitcode, Ergebnisdateien, die Ihr CI-Tool versteht, und jeden Nachweis eines Fehlschlags in einem Ordner.

Ihre Pipeline

und jedes Tool, das einen Befehl ausführt

.github/workflows/gui-tests.yml
jobs:  gui-tests:    runs-on: [self-hosted, windows]    steps:      - run: gtr-cli run tests --format github --junit results.xml

12 Tests laufen auf dem Bildschirm des Build-Agenten...

PASSED 12 von 12 Tests · exit code 0

  • Exitcode0, wenn jeder Test bestanden hat, 1, wenn einer fehlgeschlagen ist: Der Build wird grün oder rot.
  • JUnit, JSON, MarkdownErgebnisse, die Ihre Pipeline als Testergebnisse anzeigt, mit jedem Schritt benannt.
  • Die Nachweise zu jedem FehlschlagSoll- und Ist-Bilder, der Bildschirm, der Bericht und das Video in einem Ordner.

Den Build-Rechner vorbereiten

Ein GUI-Test wird auf einem echten Bildschirm wiedergegeben, also braucht der Rechner, der ihn ausführt, einen.

BrauchtWarum
Windows mit installiertem GUI Test StudioDas Installationsprogramm setzt gtr-cli auf den PATH.
Eine angemeldete, entsperrte Desktop-SitzungDer Test klickt und tippt auf dem Live-Bildschirm.Führen Sie den Build-Agenten als normales Programm in dieser Sitzung aus, nicht als Hintergrunddienst.
Bildschirmauflösung und Skalierung der TestsElemente werden in der Größe verglichen, in der sie aufgezeichnet wurden.
Die zu testende AppInstalliert, oder vom Test selbst mit einem Schritt „App starten“ gestartet.
Ein Platz Ihres TarifsDer Agent meldet sich einmal an, mit einem Maschinenschlüssel von Ihrer Kontoseite.

Erstellen Sie den Schlüssel auf Ihrer Kontoseite unter Maschinenschlüssel und führen Sie dies einmal auf dem Agenten aus, mit dem Windows-Konto, das die Pipeline nutzt:

Befehl
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXX

gtr-cli whoami sagt, ob der Agent angemeldet ist und bis wann.Ohne Anmeldung startet kein Lauf: Er gibt eine Zeile aus, die mit COULD NOT RUN beginnt, und endet mit dem Exit-Code 3.

Build-Agenten: Maschinenschlüssel

Ihr erster Befehl

Führen Sie in einem Terminal auf dem Build-Rechner jeden Test eines Ordners aus:

Befehl
gtr-cli run tests --countdown 0 --junit results\junit.xml --artifacts results\artifacts

--countdown 0 startet sofort (niemand sitzt am Bildschirm), --junit schreibt die Ergebnisdatei, die Ihr CI-Tool liest, und --artifacts sammelt Videos, Berichte und Fehlerbilder in einem Ordner.

Ist dieser Rechner bereit?Prüft jeden Test, ohne ihn auszuführen
gtr-cli check tests

Was Ihre Pipeline zurückbekommt

ExitcodeBedeutung
0Jeder Test hat bestanden.Der Build wird grün.
1Mindestens ein Test ist fehlgeschlagen.
2Der Befehl war falsch: eine unbekannte Option, eine fehlende Datei.
3Ein Test konnte nicht laufen, zum Beispiel weil der Bildschirm von der Aufzeichnung abweicht.
4Ein Lauf wurde abgebrochen.
DateiFür
JUnit (--junit)Die Registerkarte mit den Testergebnissen von GitLab, Jenkins, Azure DevOps, TeamCity und GitHub
Markdown-Zusammenfassung (--summary)Ein Kommentar im Merge Request oder die Zusammenfassungsseite des Builds
JSON (--json)Ihre eigenen Dashboards und Skripte
Artefaktordner (--artifacts)Das Video, der Konfidenzbericht und die Fehlerbilder jedes Tests
Fehlerberichte (--bug-report pdf)Ein ausgefüllter Fehlerbericht für jeden fehlgeschlagenen Test

Die Läufe landen auch im Ergebnisordner jedes Tests, sodass der Verlauf des GUI Test Runner-Recorder die Pipeline-Läufe neben Ihren eigenen zeigt.

Fertige Beispiele

.github/workflows/gui-tests.yml
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: results

Einen Befehl bauen, ohne ihn zu tippen

In beiden Apps baut Befehlszeile & CI/CD (in GUI Test Studio im Menü „Datei“, im GUI Test Runner-Recorder im Menü „Test“) den Befehl für Sie: Haken Sie die gewünschten Optionen an, kopieren Sie das Ergebnis oder kopieren Sie das fertige Snippet für Ihr CI-Tool mit Ihren echten Pfaden.Die Registerkarte „Referenz“ erklärt jede Option.

Optionen, die Sie brauchen werden

OptionWas sie bewirkt
--countdown 0Sofort starten.In einem Terminal gibt Ihnen der Standard-Countdown Zeit, die Maus loszulassen.
--retries 1Einen fehlgeschlagenen Test noch einmal ausführen, bevor er als fehlgeschlagen gilt.
--fail-fastNach dem ersten fehlgeschlagenen Test anhalten.
--timeout 600Einen Test abbrechen, der nach 10 Minuten noch läuft.
--baseline-profile "Dark mode"Mit einem Ihrer Baseline-Profile ausführen.
--start-at 12.5Den Test an diesem Moment starten, in Sekunden.
--branch allFür einen Webtest, der für mehrere Browser und Geräte erstellt wurde: jeden davon ausführen, den aufgezeichneten Test eingeschlossen.Nennen Sie stattdessen einen oder mehrere, um nur diese auszuführen.
--headless onWebtests überall dort ohne Browserfenster ausführen, wo der Test es erlaubt.
--parallel offDie Browser und Geräte eines Tests nacheinander statt nebeneinander ausführen.
--screen allAuf einem Build-Rechner mit mehreren Monitoren: auf allen ausführen, auf dem Hauptbildschirm, auf der Nummer eines Monitors, auf dem Bildschirm des Terminals oder dort, wo der Test aufgezeichnet wurde.Standardmäßig der Bildschirm, den die Projekteinstellungen des Tests nennen: der Bildschirm des Terminals, sofern sie keinen nennen.
--run-banner offDas schmale Banner TEST LÄUFT oben am Bildschirm während des Laufs ausblenden.
--ai-verification onDie KI das endgültige Ergebnis fehlgeschlagener Bild- und Textprüfungen geben lassen.Das Ergebnis des Tests und der Exitcode richten sich danach, und was sich geändert hat, wird in die Konsole und die Ergebnisdateien geschrieben.
--ai-provider builtinEin Modell auf dem Build-Rechner selbst verwenden: nichts zu installieren, und ein fehlendes Modell wird einmalig heruntergeladen.
--ai-minor-differences failEine Prüfung fehlschlagen lassen, in der die KI nur geringfügige Unterschiede findet.Standardmäßig besteht sie.
--ai-wait 600Die längste Zeit, die ein Test auf seine KI-Ergebnisse wartet, in Sekunden.Standardmäßig wählt das Tool selbst.
Jede Option, erklärt
gtr-cli help

Fehlschläge an Jira melden

Ein fehlgeschlagener Test kann von selbst zu einem Jira-Vorgang werden: die Schritte zur Reproduktion, das erwartete und das tatsächliche Bild mit den markierten Änderungen, der Fehlerbericht als PDF und die Nachweise.Wird derselbe Fehler erneut gesehen, in einem anderen Build, Browser oder Gerät, erhält sein offener Vorgang einen Kommentar statt eines zweiten Vorgangs.

Befehl
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression
OptionWas sie bewirkt
--jira on-failureFür jeden fehlgeschlagenen Test einen Jira-Vorgang anlegen.Ein Test, der nicht laufen konnte, wird nie zu einem.
--jira-project SCRUMDas Projekt, in das die Vorgänge gehen, mit seinem Schlüssel.
--jira-issue-type BugDer Vorgangstyp.Hat das Projekt keinen dieses Namens, wird der nächstliegende verwendet.
--jira-assignee "James"Wem der Vorgang zugewiesen wird: eine E-Mail-Adresse oder der Name einer Person des Projekts.
--jira-labels a,bEigene Labels, durch Kommas getrennt.
--jira-repeat newImmer ein neuer Vorgang, nie ein Kommentar zum offenen.

Die Verbindung kommt aus der Umgebung, sodass das Token nie in einer Befehlszeile oder einem Build-Protokoll erscheint: JIRA_BASE_URL (Ihre Jira-Site), JIRA_USER_EMAIL und JIRA_API_TOKEN.Bewahren Sie das Token in Ihrem CI-Tool als geheimen Parameter oder Passwortparameter auf.Auf einem Computer, auf dem der GUI Test Runner-Recorder mit Jira verbunden ist, wird stattdessen dessen gespeicherte Verbindung verwendet.

Der ganze Ablauf mit einem echten Vorgang und einem echten Build: Jira mit dem Vertrauensbericht verbinden.

Web-Apps auf einem Build-Rechner

Ein auf einer Web-App aufgezeichneter Test öffnet seinen Browser selbst, im Vollbild-Kioskmodus, und schließt ihn am Ende.Auf einem Build-Rechner braucht das die Bildschirmgröße und Anzeigeskalierung der Aufzeichnung, einen angemeldeten und entsperrten Desktop und einen Lauf, der durch sein eigenes Zeitlimit endet.Web-App öffnen sagt, was sonst passiert und was zu tun ist.

Dieselben Hinweise stehen im Werkzeug selbst:

Befehl
gtr-cli help web-apps

Jeder Browser und jedes Gerät in der Pipeline

Ein Webtest, der für mehrere Browser und Geräte erstellt wurde, führt mit --branch all alle aus, jeden mit eigenem Eintrag in der JUnit-Datei und eigener Historie.Smartphones, Tablets und die anderen Zweige ohne Fenster laufen nebeneinander, sie brauchen also keinen eigenen Bildschirm.gtr-cli info listet den Namen jedes einzelnen auf, und gtr-cli generate erstellt die noch fehlenden.Siehe Jeder Browser und jedes Gerät aus einer einzigen Aufzeichnung.

Befehl
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xml

Tests ohne ihre Aufzeichnung weitergeben

Eine Testdatei enthält ihre Aufzeichnung, die Sie zum Bearbeiten brauchen, aber nicht zum Ausführen.Datei, Als schlanken Runner-Test exportieren (.GTR) in GUI Test Studio schreibt denselben Test ohne sie: eine viel kleinere Datei für einen Build-Rechner oder für Kolleginnen und Kollegen, die Tests nur ausführen. gtr-cli und der GUI Test Runner-Recorder führen .GTR-Dateien wie jeden Test aus.

Test (.GTS)Runner-Test (.GTR)
EnthältDie Schritte, die Prüfungen und die visuelle Referenz: Aufzeichnung, Bilder und DesignsNur die Schritte und die Prüfungen
Gemacht fürDen Test erstellen und bearbeitenDen Test ausführen
GrößeGrößer: Sie wächst mit der AufzeichnungViel kleiner
Öffnet sich inGUI Test Studio und GUI Test Runner-RecorderGUI Test Runner-Recorder und gtr-cli

Wann ein Runner-Test sinnvoll ist

Nutzen Sie ihn überall, wo ein Test nur läuft: auf einer Build-Maschine, am Computer eines Testers, für eine Testsammlung, die weitergegeben oder bei Ihrem Code aufbewahrt wird.Der Lauf eines Runner-Tests liefert dasselbe Ergebnis und denselben Bericht wie sein Test.

Den Test selbst behalten

Ein Runner-Test lässt sich nicht bearbeiten: GUI Test Studio öffnet ihn nicht.Behalten Sie die .GTS als Original, bearbeiten Sie dort und exportieren Sie nach einer Änderung erneut.Auch GUI Test Runner-Recorder kann einen exportieren, über sein Menü Test oder die Export-Schaltfläche auf der Seite des Tests.

Ein Webtest mit mehreren Browsern und Geräten

Der Export fragt, was er enthalten soll.Alle Browser und Geräte legt jeden erzeugten Zweig in die eine Datei, bereit für --branch all.Nur die Aufzeichnung oder nur der angezeigte Zweig ergibt einen Runner-Test allein davon.Ein Runner-Test kann nur ausgeführt werden: Neue Browser und Geräte werden aus der .GTS erstellt.

Tests bei Ihrem Code aufbewahren

Tests sind gewöhnliche Dateien: Bewahren Sie sie in Ihrem Repository neben dem Code auf, den sie testen, und jeder Branch trägt die Tests, die zu ihm passen.

Kommen Sie nicht weiter?Sagen Sie uns, was Sie tun wollten, und wir antworten innerhalb eines Werktags.Ask our team