# Playwright E2E 测试 (e2e-testing)

> 提供 Playwright 端到端测试模式，涵盖 Page Object Model、配置、CI/CD 集成、测试产物和不稳定测试处理。

- 分类: [测试与调试](https://www.myskills.tools/zh/categories/testing-debugging/)
- 来源: 社区 · Affaan Mustafa
- 代码仓库: https://github.com/affaan-m/ECC/tree/main/skills/e2e-testing (commit d29cf65)
- SKILL.md: https://github.com/affaan-m/ECC/blob/main/skills/e2e-testing/SKILL.md
- 安装命令: `npx skills add affaan-m/ECC --skill e2e-testing`
- 许可证: MIT
- 兼容工具: Claude Code, Codex, Cursor, Copilot, OpenCode
- 权限: read-repo ✓, write-files ✓, shell ✓, network ✗
- 状态: 扫描通过
- 规则扫描无法覆盖所有风险，安装前请阅读此技能的 SKILL.md，确认权限后再使用。

## 核心规则

等待具体条件，例如自动等待的定位器或特定响应，而不是固定时长的超时。

## 执行阶段

1. **组织测试结构** — 按功能在 tests/e2e 下划分测试文件，准备 fixtures，并用 data-testid 定位器编写 Page Object 类。
2. **编写测试** — 用 test.describe 和 beforeEach 组织用例，通过 Page Object 操作页面并断言结果。
3. **配置 Playwright** — 在 playwright.config.ts 中设置 CI 重试、报告器、失败时的 trace/截图/视频、多浏览器和 webServer。
4. **处理不稳定测试** — 用 test.fixme 或 test.skip 隔离，用 --repeat-each 找出不稳定用例，修复竞态、网络和动画时序问题。
5. **产物与 CI** — 保存截图、trace 和视频，在 GitHub Actions 中运行测试并上传报告，按模板写测试报告。

## 权限说明（据 SKILL.md 整理）

| 能力 | 是否需要 | 说明 |
|---|---|---|
| 文件写入 | 需要 | 编写测试文件、Page Object、playwright.config.ts 和 CI 工作流。 |
| 命令执行 | 仅测试时需要 | 运行 npx playwright test，包括 --repeat-each 和 --retries 选项。 |
| 网络外发 | 不需要 | 测试默认指向本地 baseURL，说明中没有其他网络访问步骤。 |

## SKILL.md 头部信息（YAML）

```yaml
---
name: e2e-testing
description: Playwright E2E testing patterns, Page Object Model, configuration, CI/CD integration, artifact management, and flaky test strategies. Use when writing Playwright tests, structuring page objects, or fixing flaky E2E runs in CI.
metadata:
  origin: ECC
---
```

首页: https://www.myskills.tools/zh/ · URL: https://www.myskills.tools/zh/skills/e2e-testing/
