[ PROMPT_NODE_25028 ]
playwright-java
[ SKILL_DOCUMENTATION ]
# Playwright Java – 高级测试自动化
## 概述
此技能生成生产级、企业级的 Playwright Java 测试代码。它强制执行页面对象模型 (POM)、严格的定位器策略、线程安全的并行执行以及完整的 Allure 报告集成。目标环境为 Java 17+ 和 Playwright 1.44+。
支持参考文件可用于深入主题:
| 主题 | 文件 |
|-------|------|
| Maven POM, ConfigReader, Docker/CI 设置 | `references/config.md` |
| 组件模式, 下拉菜单, 上传, 等待 | `references/page-objects.md` |
| 完整断言 API, 软断言, 视觉测试 | `references/assertions.md` |
| Fixtures, 测试数据工厂, 认证状态, 重试 | `references/fixtures.md` |
| 基础类模板 | `templates/BaseTest.java`, `templates/BasePage.java` |
---
## 何时使用此技能
- 从零开始构建新的 Playwright Java 项目时
- 编写页面对象类或 JUnit 5 测试类时
- 用户询问跨浏览器测试、并行执行或 Allure 报告时
- 修复不稳定测试或用正确的等待机制替换 `Thread.sleep()` 时
- 在 CI/CD 流水线(GitHub Actions, Jenkins, Docker)中设置 Playwright 时
- 在单个测试中结合 API 调用和 UI 断言时(混合测试)
- 用户提到“POM 模式”、“BrowserContext”、“Playwright fixtures”或“traces”时
---
## 工作原理
### 第一步:确定方案
在编写任何代码之前,使用此矩阵选择正确的模式:
| 用户请求 | 方案 |
|---|---|
| 从零开始的新项目 | 完整脚手架 — 参阅 `references/config.md` |
| 单个功能测试 | POM 页面类 + JUnit5 测试类 |
| API + UI 混合 | `APIRequestContext` 配合 `Page` |
| 跨浏览器 | `@MethodSource` 参数化浏览器名称 |
| 修复不稳定测试 | 用 `waitFor` / `waitForResponse` 替换 `sleep` |
| CI 集成 | 流水线中的 `playwright install --with-deps` |
| 并行执行 | `junit-platform.properties` + `ThreadLocal` |
| 丰富报告 | Allure + Playwright trace + 视频录制 |
### 第二步:构建项目结构
创建新项目时始终使用此布局:
src/
├── test/
│ ├── java/com/company/tests/
│ │ ├── base/
│ │ │ ├── BaseTest.java ← templates/BaseTest.java
│ │ │ └── BasePage.java ← templates/BasePage.java
│ │ ├── pages/
│ │ │ └── LoginPage.java
│ │ ├── tests/
│ │ │ └── Logi