End-to-End-Tests bei jedem Build ausführen: ein TeamCity-Beispiel, das mit jedem CI/CD-Werkzeug funktioniert
End-to-End-Testautomatisierung in Ihrer Pipeline: fügen Sie Ihre GUI-Test-Studio-Tests mit gtr-cli in einem Schritt einem TeamCity-Build hinzu und lesen Sie jeden Test, die Fehlschläge, das Video und die Bilder in TeamCity.Derselbe Befehl führt Ihre GUI-, Funktions- und Regressionstests in Jenkins, GitHub Actions, GitLab, Azure DevOps oder jedem Skript aus.
7 Min. LesezeitVom Team von GUI Test Studio
Warum End-to-End-Tests bei jedem Build laufen sollten
Ein End-to-End-Test bedient Ihre Anwendung so, wie es ein Benutzer tut: er öffnet sie, klickt und tippt sich durch einen ganzen Arbeitsablauf und prüft, was der Bildschirm am Ende zeigt.Es ist der Test, der findet, was Unit-Tests nicht finden können: eine kaputte Schaltfläche, ein Formular, das sich nicht mehr absenden lässt, eine Seite, die ihren Inhalt verloren hat.
Ein End-to-End-Test, der nur läuft, wenn jemand daran denkt, findet diese Probleme spät.Lassen Sie ihn stattdessen bei jeder Änderung laufen, und eine Regression wird Minuten nach dem Push gefunden, solange die Änderung dem Entwickler noch frisch im Kopf ist.
GUI Test Studio bringt genau dafür einen Kommandozeilen-Runner mit: gtr-cli.Er wird mit den Apps installiert.Er führt die aufgenommenen und bearbeiteten End-to-End-GUI-Tests ohne Fenster aus und antwortet so, wie eine Pipeline es erwartet: ein Exit-Code, eine JUnit-Datei, ein Protokoll, das Ihr CI-Werkzeug versteht.
Eine Änderung wird gepusht
Beliebiger Branch
TeamCity startet einen Build
Ein Build-Schritt
gtr-cli führt die Tests aus
Auf dem Bildschirm des Build-Rechners oder headless
Sie lesen das Ergebnis
Tests, Protokoll, Video und Bilder
Was Sie brauchen
| Was | Warum | Woher Sie es bekommen |
|---|---|---|
| Ein mit GUI Test Studio erstellter Test | Der End-to-End-Test, den die Pipeline ausführt, wie jede Datei in Ihrem Repository abgelegt | Ihr erster Test, Schritt für Schritt |
| Ein Windows-Build-Rechner mit installiertem GUI Test Studio | gtr-cli kommt mit dem Installationsprogramm und gibt den Test auf diesem Rechner wieder | Installieren und einrichten |
| TeamCity (oder ein anderes CI-Tool) | Startet bei jeder Änderung einen Build und zeigt seine Ergebnisse | TeamCity von JetBrains |
Schritt 1: Den Build-Rechner vorbereiten
Ein End-to-End-Test spielt Klicks und Eingaben auf einem echten Bildschirm ab, der Build-Agent braucht also einen Desktop.
- 1
GUI Test Studio installieren und sich einmal anmelden
Das Installationsprogramm setzt gtr-cli auf den PATH.Melden Sie sich auf diesem Rechner einmal bei den Apps an, mit dem Konto, unter dem der Agent läuft.
- 2
Den Agenten in einer angemeldeten Windows-Sitzung ausführen
Starten Sie den TeamCity-Agenten aus einer angemeldeten Benutzersitzung, nicht als Windows-Dienst: Ein Dienst hat keinen Bildschirm, auf dem er einen Test wiedergeben könnte.Behalten Sie die Bildschirmgröße und die Skalierung der Aufzeichnung bei.Siehe Den Build-Rechner vorbereiten.
- 3
Oder Webtests headless ausführen
Ein Test einer Web-App kann mit
--headless onganz ohne Browserfenster laufen.Dann braucht er keinen freien Bildschirm, und mehrere Browser und Geräte laufen nebeneinander.
Schritt 2: Den Befehl zusammenstellen
Sie müssen die Optionen nicht lernen.Öffnen Sie in einer der beiden Apps das Fenster „Befehlszeile & CI/CD“, haken Sie an, was Sie möchten, und kopieren Sie den Befehl oder das fertige Snippet für Ihr CI-Tool mit Ihren echten Pfaden.
Diesen Befehl führt unsere Beispiel-Pipeline aus:
gtr-cli run tests\Checkout\Checkout.GTS --branch all --countdown 0 --format teamcity ^
--junit ci-out\junit.xml --json ci-out\result.json ^
--artifacts ci-out\artifacts --bug-report pdf| Option | Was sie bewirkt |
|---|---|
| --branch all | Führt den Test auf jedem Browser und jedem Gerät aus, für die er erstellt wurde |
| --countdown 0 | Startet sofort: Niemand sitzt am Build-Rechner, um die Maus loszulassen |
| --format teamcity | Schreibt jeden Test und jeden Fehlschlag in der eigenen Protokollsprache von TeamCity |
| --junit / --json | Schreibt die Ergebnisse als Dateien, die jedes Tool lesen kann |
| --artifacts | Bewahrt das Video des Laufs, seinen Bericht und die Bilder jedes Fehlschlags auf |
| --bug-report pdf | Schreibt einen ausgefüllten Fehlerbericht für jeden fehlgeschlagenen Test |
Jede Option wird in Tests in Ihrer Pipeline ausführen erklärt und von gtr-cli help auf jedem Computer, auf dem GUI Test Studio installiert ist.
Schritt 3: Den Build-Schritt in TeamCity hinzufügen
Erstellen Sie eine Build-Konfiguration für Ihr Repository, fügen Sie einen Build-Schritt hinzu und geben Sie ihm den Befehl.Ein PowerShell-Schritt und ein Command-Line-Schritt funktionieren beide.In unserem Beispiel führt der Schritt ein kleines Skript aus dem Repository aus, das den Shop startet und dann gtr-cli aufruft.
Fügen Sie einen VCS-Trigger hinzu, damit jeder Push auf jeden Branch einen Build startet.Das ist die ganze Einrichtung: TeamCity braucht kein Plug-in, weil gtr-cli seine Protokollsprache spricht.
Schritt 4: Die Ergebnisse in TeamCity lesen
Pushen Sie eine Änderung und schauen Sie zu.Jeder Browser und jedes Gerät ist ein eigener Test, sodass Sie auf einen Blick sehen, wo er fehlgeschlagen ist.
Das Build-Protokoll
gtr-cli schreibt eine Zeile pro Schritt und sagt deutlich, was fehlgeschlagen ist: welche Prüfung, auf welchem Browser und Gerät und warum.
Der fehlgeschlagene Build
Die Übersicht des Builds nennt die fehlgeschlagenen Tests und ihren Grund, ohne dass Sie das Protokoll öffnen müssen.
Die Tests
Die Registerkarte „Tests“ listet jeden Test des Builds auf.Weil jedes Ergebnis als Test gemeldet wird, verfolgt TeamCity auch seine Historie, seine Dauer und wie oft er fehlgeschlagen ist.
Die Nachweise
Die Artefakte enthalten alles, was der Lauf gesehen hat: einen Ordner pro Browser und Gerät mit dem Video des Laufs, seinem Bericht und seinem Fehlerbericht, und für jeden Fehlschlag das erwartete und das tatsächliche Bild mit den Änderungen rot umrandet.Öffnen Sie denselben Lauf im GUI Test Runner-Recorder für den vollständigen Konfidenzbericht.
Jeder Browser und jedes Gerät in einem Build
Ein Webtest kann einmal erstellt und auf mehreren Browsern und Geräten ausgeführt werden: Chrome, Edge und Firefox, Desktops, Smartphones und Tablets.In der Pipeline führt --branch all alle in einem Build aus, und die ohne Fenster laufen nebeneinander.Lesen Sie Jeder Browser und jedes Gerät aus einer einzigen Aufzeichnung.
Kein TeamCity?Derselbe Befehl funktioniert überall
gtr-cli ist an kein Werkzeug gebunden.Es ist ein Programm, das Tests ausführt und einen Exit-Code zurückgibt, also kann alles, was einen Befehl ausführen kann, Ihre End-to-End-Tests ausführen: ein CI-Server, eine geplante Aufgabe, ein Release-Skript.Funktionstests, Regressionstests, Smoke-Tests, Abnahmetests: wie auch immer Sie die Tests nennen, die Ihre Anwendung über ihre Oberfläche bedienen, sie laufen auf dieselbe Weise.
| Ihr Tool | Was Sie dem Befehl hinzufügen |
|---|---|
| TeamCity | --format teamcity |
| Azure DevOps | --format azure |
| GitHub Actions | --format github |
| Jenkins, GitLab, Bamboo und die übrigen | --junit results\junit.xml, vom Testbericht des Tools gelesen |
| Ein eigenes Skript | Nichts: Lesen Sie den Exitcode oder die --json-Datei |
- name: End-to-end tests
run: gtr-cli run tests --countdown 0 --format github --junit results\junit.xml --artifacts results\artifacts| Exitcode | Bedeutet |
|---|---|
| 0 | Jeder Test hat bestanden |
| 1 | Ein Test ist fehlgeschlagen |
| 2 | Der Befehl selbst war falsch |
| 3 | Ein Test konnte nicht laufen, zum Beispiel wegen einer fehlenden Datei |
| 4 | Der Lauf wurde angehalten |
Wie es weitergeht
Bereit, Ihren ersten Test aufzuzeichnen?
Jede Funktion, 15 Tage lang.
Lieber an der Art von App sehen, die Sie testen?Buchen Sie ein kostenloses 30-minütiges Gespräch mit unserem Team.