跳到主要内容

Testing with Playwright

在ChatGPT中打开

本文档概述了使用 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!");
}
}

关键步骤

  1. 初始化 Playwright

    • 创建一个 Playwright 实例。
    • 使用 playwright.chromium().launch() 启动浏览器实例。
  2. 设置测试环境

    • 使用 browser.newPage() 打开一个新的浏览器页面。
    • 使用 navigate 方法导航到 HelloWorldView 页面。
  3. 与元素交互

    • 使用 Playwright 的定位器 与 DOM 元素交互。
    • 使用 locator("input").fill() 填充输入字段,并使用 getByText("Say Hello").click() 触发操作。
  4. 断言

    • 使用 PlaywrightAssertions.assertThat() 验证显示的 toast 消息。
  5. 清理

    • Playwright 在测试完成时自动处理浏览器清理。对于手动清理,您可以使用 browser.close() 关闭浏览器。

运行测试

  1. 启动 webforJ 服务器:

    mvn jetty:run
  2. 执行测试用例:

    mvn test

预期行为

  • 访问 http://localhost:<port>/ 时,HelloWorldView 页面加载。
  • 在文本字段中输入 webforJ,并点击 Say Hello 按钮。
  • 应出现一条 toast 消息,内容为:Welcome to webforJ Starter webforJ!