SuperAPI AI 工具集

playwright-expert

测试与质量

查看项目

更新于 10-16 23:14

技能介绍

用途

playwright-expert 是一个面向 Playwright 的 E2E 测试专家技能,用于编写稳健、可维护的浏览器自动化测试。其核心工作流包括:分析需求并识别需要测试的用户流程;配置 Playwright 设置;使用 Page Object Model(POM)模式、合适的定位器与自动等待来编写测试;通过运行测试、查看 trace、定位问题、修复并验证的流程进行调试;最后将测试接入 CI/CD 流水线。

主要能力

技能按上下文加载详细参考资料,覆盖以下主题:

  • 选择器与定位器(references/selectors-locators.md):在编写选择器、确定定位器优先级时加载。
  • 页面对象(references/page-object-model.md):涉及 POM 模式与夹具(fixtures)时加载。
  • API 模拟(references/api-mocking.md):涉及路由拦截与 mock 时加载。
  • 配置(references/configuration.md):涉及 playwright.config.ts 设置时加载。
  • 调试(references/debugging-flaky.md):处理不稳定(flaky)测试与 trace viewer 时加载。

使用方式

技能规定了必须做与禁止做的约束。

必须做:

  • 尽可能使用基于角色的选择器(role-based selectors)
  • 利用自动等待,不要添加任意超时
  • 保持测试相互独立(不共享状态)
  • 使用 Page Object Model 提升可维护性
  • 启用 traces/截图以便调试
  • 并行运行测试

禁止做:

  • 使用 waitForTimeout()(应使用正确的等待)
  • 依赖 CSS 类选择器(脆弱)
  • 在测试之间共享状态
  • 忽略 flaky 测试
  • 无正当理由使用 first()、nth()

技能提供了代码级示例说明这些实践。选择器方面,推荐 page.getByRole('button', { name: 'Submit' }).click() 与 page.getByLabel('Email address').fill('user@example.com'),而非基于 CSS 类的 .btn-primary.submit-btn 或 .email-input。POM 示例展示了 LoginPage 类如何封装 page、定位器与 goto()、login() 方法,并在测试文件中通过 test.beforeEach 初始化、使用 expect(page).toHaveURL('/dashboard') 等断言。调试工作流示例展示在配置中设置 trace: 'on-first-retry' 与 screenshot: 'only-on-failure',通过 npx playwright test --retries=2 捕获 trace,使用 npx playwright show-trace 查看时间线,并将 waitForTimeout(2000) 替换为等待元素状态 waitFor({ state: 'visible' }),最后用 npx playwright test --repeat-each=10 验证稳定性。

输出模板要求实现 Playwright 测试时提供:Page Object 类、带有正确断言的测试文件、必要时提供夹具设置、以及配置建议。

适用场景

适用于需要为 Web 应用编写和维护 E2E 测试的团队与个人,尤其涉及多用户流程验证、需要降低测试脆弱性、处理 flaky 测试、将测试集成到 CI/CD、进行 API 模拟或视觉对比等场景。

限制

本技能所引用的上游文档来自特定作者与版本:源文档为 jeffallan/claude-skills/skills/playwright-expert/SKILL.md,修订版本 3bf9a24b76a7c122f1fc05e83929fbc84e1c207a,作者 Jeffallan,许可 MIT。除上述已提供内容外,关于收费、价格、平台支持范围、具体效果等事实暂未提供。

引用文档

以下为作者声明的引用来源,保留指定版本、署名和许可。

作者的来源声明