Testing with Playwright
本文档概述了使用 Playwright 测试 webforJ 应用程序的过程,特别关注 webforj-archetype-hello-world
中的 HelloWorldView
。
应用基础
要了解有关 webforj-archetype-hello-world
的更多信息,请参阅 应用基础介绍 部分。
前提条件
在编写和运行 Playwright 测试之前,请确保以下事项:
- webforJ 应用程序已正确设置并在本地服务器上运行。
- 您已安装:
- Playwright Java 绑定。
- 兼容的浏览器(Playwright 可以在设置过程中自动安装浏览器)。
- 用于项目依赖的 Maven。
Maven 配置
在您的 pom.xml
中添加 Playwright 所需的依赖项:
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>
测试示例:HelloWorldView
以下代码演示了针对 HelloWorldView
组件的 Playwright 基础测试。
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("Welcome to webforJ Starter webforJ!");
}
}
关键步骤
-
初始化 Playwright:
- 创建一个
Playwright
实例。 - 使用
playwright.chromium().launch()
启动浏览器实例。
- 创建一个
-
设置测试环境:
- 使用
browser.newPage()
打开一个新的浏览器页面。 - 使用
navigate
方法导航到HelloWorldView
页面。
- 使用
-
与元素交互:
- 使用 Playwright 的定位器 与 DOM 元素交互。
- 使用
locator("input").fill()
填充输入字段,并使用getByText("Say Hello").click()
触发操作。
-
断言:
- 使用
PlaywrightAssertions.assertThat()
验证显示的 toast 消息。
- 使用
-
清理:
- Playwright 在测试完成时自动处理浏览器清理。对于手动清理,您可以使用
browser.close()
关闭浏览器。
- Playwright 在测试完成时自动处理浏览器清理。对于手动清理,您可以使用
运行测试
-
启动 webforJ 服务器:
mvn jetty:run
-
执行测试用例:
mvn test
预期行为
- 访问
http://localhost:<port>/
时,HelloWorldView
页面加载。 - 在文本字段中输入 webforJ,并点击
Say Hello
按钮。 - 应出现一条 toast 消息,内容为:
Welcome to webforJ Starter webforJ!
。