Testing with Playwright
Diese Dokumentation beschreibt den Prozess zum Testen von webforJ-Anwendungen mit Playwright, insbesondere fokussiert auf die HelloWorldView
aus dem webforj-archetype-hello-world
.
App Grundlagen
Um mehr über das webforj-archetype-hello-world
zu erfahren, siehe den Abschnitt Grundlagen der App Einführung.
Voraussetzungen
Bevor Sie die Playwright-Tests schreiben und ausführen, stellen Sie Folgendes sicher:
- Die webforJ-App ist korrekt eingerichtet und läuft auf Ihrem lokalen Server.
- Sie haben Folgendes installiert:
- Playwright Java-Bindings.
- Einen kompatiblen Browser (Playwright kann während der Einrichtung automatisch Browser installieren).
- Maven für Projektabhängigkeiten.
Maven-Konfiguration
Fügen Sie die erforderlichen Abhängigkeiten in Ihrer pom.xml
für Playwright hinzu:
pom.xml
<dependencies>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.49.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Testbeispiel: HelloWorldView
Der folgende Code demonstriert einen auf Playwright basierenden Test für die HelloWorldView
-Komponente.
HelloWorldViewTest.java
package com.example.views;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
class HelloWorldViewTest {
static Playwright playwright = Playwright.create();
Browser browser;
Page page;
String port = System.getProperty("server.port", "8080");
@BeforeEach
void setUp() {
browser = playwright.chromium().launch();
page = browser.newPage();
page.navigate("http://localhost:" + port + "/");
}
@Test
void shouldClickButton() {
page.locator("input").fill("webforJ");
page.getByText("Say Hello").click();
assertThat(page.locator("dwc-toast").first())
.containsText("Willkommen bei webforJ Starter webforJ!");
}
}
Schlüsselschritte
-
Playwright initialisieren:
- Erstellen Sie eine
Playwright
-Instanz. - Starten Sie eine Browserinstanz mit
playwright.chromium().launch()
.
- Erstellen Sie eine
-
Testumgebung einrichten:
- Öffnen Sie eine neue Browserseite mit
browser.newPage()
. - Navigieren Sie zur
HelloWorldView
-Seite mit der Methodenavigate
.
- Öffnen Sie eine neue Browserseite mit
-
Mit Elementen interagieren:
- Verwenden Sie Playwrights Locator, um mit DOM-Elementen zu interagieren.
- Füllen Sie Eingabefelder mit
locator("input").fill()
und triggern Sie Aktionen mitgetByText("Say Hello").click()
.
-
Assertions:
- Überprüfen Sie die angezeigte Toast-Nachricht mit
PlaywrightAssertions.assertThat()
.
- Überprüfen Sie die angezeigte Toast-Nachricht mit
-
Teardown:
- Playwright kümmert sich automatisch um die Bereinigung des Browsers, wenn der Test abgeschlossen ist. Für manuelle Bereinigung können Sie den Browser mit
browser.close()
schließen.
- Playwright kümmert sich automatisch um die Bereinigung des Browsers, wenn der Test abgeschlossen ist. Für manuelle Bereinigung können Sie den Browser mit
Tests ausführen
-
Starten Sie den webforJ-Server:
mvn jetty:run
-
Führen Sie die Testfälle aus:
mvn test
Erwartetes Verhalten
- Beim Besuch von
http://localhost:<port>/
wird dieHelloWorldView
-Seite geladen. - Geben Sie webforJ in das Textfeld ein und klicken Sie auf die Schaltfläche
Say Hello
. - Eine Toast-Nachricht sollte mit dem Text erscheinen:
Willkommen bei webforJ Starter webforJ!
.