用途:面向 Playwright 端到端(E2E)测试的实践指南,用于规范浏览器测试、集成测试的写法与判断标准,目标是以用户可见行为为准编写稳定测试。
主要能力与原则:测试用户可见行为,不依赖实现细节(class 名、id、DOM 结构);定位器优先级为 getByRole > getByLabel > getByText > getByTestId > CSS 选择器,角色定位优先;断言使用带自动重试的 Web First 断言;各测试完全独立,排除共享状态与顺序依赖;性能上推荐全局安装,CI 中仅装必要浏览器并使用分片。
使用方式:定位示例包括 page.getByRole('button', { name: '送信' })、page.getByLabel('メールアドレス')、page.getByText('ログイン')、page.getByTestId('submit-button')、page.locator('#submit-btn')。断言推荐 await expect(page.getByText('ようこそ')).toBeVisible() 等;避免手动 isVisible() 检查。结构上使用 test.describe 与 beforeEach 做共通设置,外部依赖用 Network API 拦截模拟。
CI 优化:配置中 retries 在 CI 设为 1、workers 设为 2、trace 使用 'on-first-retry';安装命令 npx playwright install --with-deps chromium;分片 npx playwright test --shard=1/3 等。建议用 Trace Viewer 调试。
适用场景:需要在 CI 上运行稳定 E2E 测试、减少因 DOM 重构或时序问题导致失败的团队。
限制与常见陷阱:避免 CSS 选择器依赖、waitForTimeout/sleep、测试间共享登录态、E2E 用例过多拖慢 CI、截图比对因字体渲染误报、Playwright 版本过旧。资料未提供具体收费、价格与平台信息。