Gitlab CI/CD: JAVA/Playwright

Grundlegende GitLab CI/CD & aqua Arbeitsablauf
Diese Anleitung zeigt, wie automatisiertes Testen in Ihre GitLab-CI/CD-Pipeline integriert wird, speziell unter Verwendung von Maven-Projekten mit JAVA/Playwright. Die Schritte kΓΆnnen jedoch so angepasst werden, dass sie sich fΓΌr jedes Testautomatisierungswerkzeug oder -framework eignen, um Ergebnisse an aqua zu ΓΌbermitteln.
Voraussetzungen
Ein GitLab-Projekt mit aktiviertem CI/CD
ein aqua-Konto zum Einreichen von Testergebnissen
Eine Anwendung oder ein Projekt, das mit einem Maven-Projekt konfiguriert ist (z. B. unter Verwendung von Visual Studio Code).
Erstellen Sie zunΓ€chst ein sauberes Maven-Projekt oder verwenden Sie ein bestehendes.

Stellen Sie sicher, dass die folgenden AbhΓ€ngigkeiten zur pom.xml Datei hinzugefΓΌgt werden. Wir benΓΆtigen die Playwright, JUnit und JSON-Bibliotheken.

Erstellen Sie eine TestBase-Klasse, um alle allgemeinen Methoden und Implementierungen der gemeinsamen Logik und Hooks zu speichern: _BeforeAll, BeforeEach, AfterAll, AfterEach, etc
Erstelle eine TestCase-Klasse, die die TestBase-Klasse erweitert und die tatsΓ€chliche Logik eines bestimmten Tests implementiert. Wir nehmen an, dass diese Klasse eine Aqua-Testfallinstanz hat, sodass wir ihre AusfΓΌhrungsinformationen in der aqua-Webanwendung aktualisieren werden. Der TestCase hat einen Schritt (Schritt 1) in aqua.
Die TestFall-Klasse implementiert einfache Aktionen: ΓΆffnen www.wikipedia.org mit Playwright-Aktionen, klicken Sie dort ein paar Mal und ΓΌberprΓΌfen Sie die aktuelle Web-URL

Verwenden Sie den Hook @AfterEach in der TestBase-Klasse, um eine Verbindung zu Aqua herzustellen und ein Bearer-Token von einer REST-GET-Anfrage abzurufen, die von Playwright gesendet wird.


Der oben genannte Token wird fΓΌr eine POST-Anfrage benΓΆtigt, um eine aqua-TestfalldurchfΓΌhrung zu erstellen. Wir verwenden den folgenden Endpunkt und das JSON.
Die Beispielimplementierung in der TestBase-Klasse fΓΌr die obige Anforderung sieht wie folgt aus:
Im obigen Antrag ΓΌbergeben wir die Variable βlogResultβ. Sie stellt das tatsΓ€chliche JUnit-Testergebnis dar (βPassβ, βFailedβ, βNotRunβ usw.). Um diesen Status aus dem JUnit-Lauf zu erhalten, implementieren wir das Test Watcher Interface in der TestBase.

In dieser Klasse sollten wir Schnittstellenmethoden wie folgt implementieren:
Wir gehen davon aus, dass der Name der Testklasse auf der tatsΓ€chlichen aqua-Testfall-ID basiert: z. B. im obigen Fall haben wir den aqua-Testfall mit der Id=270 aktualisiert.

Nach erfolgreicher JUnit-TestausfΓΌhrung sollten wir die entsprechende einzelne TestfallausfΓΌhrung in aqua sehen. Diese ID-Variable kann aus der Testklasse ΓΌber TestInfo von org.junit.jupiter.api.TestInfo ΓΌbergeben werden.

Um das oben genannte Maven-Projekt mit GitLab CI/CD ausfΓΌhren zu kΓΆnnen, mΓΌssen wir die entsprechende Workflow-Datei .gitlab-ci.yml erstellen. Ein einfaches Beispiel fΓΌr ein .gitlab-ci.yml-Skript ist unten gezeigt:
Sobald ein GitLab-Test-Runner konfiguriert und mit Ihren GitLab-Projekten verbunden ist, kΓΆnnen wir die GitLab-Pipeline mit dem obigen Workflow ausfΓΌhren:

Full TestBase class listing:
Full Test Class listing:
Last updated
Was this helpful?