用途
该技能面向使用 Playwright 构建端到端(E2E)测试的场景,目标是帮助编写稳定、快速且可维护的测试套件。内容以模式与代码示例形式给出,覆盖测试组织、页面对象、配置、CI/CD、产物管理与不稳定测试治理。
主要能力
测试文件组织
给出推荐的目录结构,将测试按领域划分:
tests/
├── e2e/
│ ├── auth/
│ │ ├── login.spec.ts
│ │ ├── logout.spec.ts
│ │ └── register.spec.ts
│ ├── features/
│ │ ├── browse.spec.ts
│ │ ├── search.spec.ts
│ │ └── create.spec.ts
│ └── api/
│ └── endpoints.spec.ts
├── fixtures/
│ ├── auth.ts
│ └── data.ts
└── playwright.config.ts
Page Object Model(POM)
提供页面对象类示例,封装定位器与页面操作,例如 ItemsPage 类包含 searchInput、itemCards、createButton 等定位器,以及 goto()、search()、getItemCount() 等方法。
测试结构
展示使用 test.describe、test.beforeEach 组织测试,结合 expect 断言、截图等操作。
Playwright 配置
给出 defineConfig 示例,包含:
testDir、fullyParallel、forbidOnly- CI 环境下的
retries与workers - 多种 reporter(html、junit、json)
use中的baseURL、trace、screenshot、video、超时设置- 多浏览器项目(chromium、firefox、webkit、mobile-chrome)
webServer配置
不稳定(Flaky)测试策略
- 隔离:使用
test.fixme(true, ...)或test.skip(process.env.CI, ...) - 识别:
npx playwright test tests/search.spec.ts --repeat-each=10、--retries=3 - 常见原因与修复:竞态条件(使用自动等待定位器)、网络时序(等待特定响应而非固定超时)、动画时序(等待可见与网络空闲后再点击)
产物管理
- 截图:整页截图、元素截图
- 追踪:
browser.startTracing/stopTracing - 视频:配置
video: 'retain-on-failure'与videosPath
CI/CD 集成
提供 GitHub Actions 工作流示例,包含检出、Node 设置、npm ci、npx playwright install --with-deps、运行测试、上传产物。
测试报告模板
给出报告结构,包含日期、时长、状态、汇总统计、失败测试详情与产物列表。
特定场景示例
- Web3 钱包测试:通过
context.addInitScript模拟window.ethereum - 金融关键流程测试:跳过生产环境、验证预览、等待区块链响应
使用方式
资料以模式与代码片段形式提供,未给出安装命令或具体调用步骤。使用时可参照其中的目录结构、POM 类、配置与 CI 工作流示例,将代码片段适配到自己的 Playwright 项目中。
适用场景
- 需要为 Web 应用编写 E2E 测试
- 希望采用 Page Object Model 组织测试代码
- 需要配置多浏览器、多设备测试
- 需要将 E2E 测试接入 CI/CD
- 需要治理不稳定测试
- 需要测试 Web3 钱包连接或金融交易等关键流程
限制
资料未提供安装命令、依赖版本要求、收费或价格信息、平台支持范围、性能数据或效果承诺。部分内容(如具体 API 行为)需以 Playwright 官方文档为准。