SuperAPI AI 工具集

playwright-tests

测试与质量

查看项目

更新于 10-21 01:48

技能介绍

用途:该技能在 Shopif y Hydrogen 仓库中编写、审阅或调试 Playwright 测试时使用,覆盖 e2e 规格、Playwright fixture、定位器策略和等待/断言方式。

主要能力与约定:

  1. 定位器策略:优先使用基于角色与无障碍名称的定位器,例如 getByRole('button', {name: 'Add to cart'});其次为角色加地标、文本内容、测试 ID,CSS 类仅作最后手段。
  2. 等待与断言:只等待用户可见的效果,禁止 page.waitForTimeout、page.waitForLoadState('networkidle') 以及任意超时;page.waitForResponse 仅在网络请求本身即功能契约时使用(如分析、同意或性能埋点)。
  3. 存在与缺失断言:缺失断言范围要广,存在断言范围要具体;删除项目后同时断言该条目消失与空态出现。
  4. 动态店铺数据:对首页动态区块断言结构而非具体名称,仅在按 handle 导航到已知实体时才断言具体名称。
  5. 测试隔离:Playwright 默认每个测试使用独立浏览器上下文,通常无需手动清理 cookie 或存储。
  6. 可移植店铺状态:契约测试必须通过与买家相同的界面创建和变更状态,不得通过 cookie、本地存储、会话存储、数据库、请求头或框架 API 注入状态。
  7. 测试组织:重复的确定性准备用 beforeEach;fixture 遵循深模块原则,暴露实体定位器但隐藏实现细节。
  8. 无障碍改进:编写测试时可推动改进应用代码的无障碍标记,用于获得更好的基于角色的定位器;对已运行的商户店铺 URL 做可移植测试时,应报告缺失的语义契约而非修改目标应用。
  9. 运行方式:测试始终以 headless 模式运行,本地与 CI 均如此,不应添加 headless: false 或 --headed。

Hydrogen skeleton 客户账户测试:本地运行需先完成 Shopify CLI 认证、将 skeleton 关联到基准店铺、配置 ejson。示例命令:pnpm exec playwright test --project=skeleton e2e/specs/skeleton/customerAccount.spec.ts;可通过 CUSTOMER_ACCOUNT_TEST_EMAIL 覆盖测试邮箱,通过 CUSTOMER_ACCOUNT_URL 与 OXYGEN_AUTH_BYPASS_TOKEN 针对已有 Oxygen 部署运行。测试采用会话复用(storageState)、Oxygen 认证绕过 HTTP 头与串行模式;CI 中主 E2E 任务通过 --grep-invert "@customer-account" 排除这些测试,另有专门任务部署后运行。

限制:内容为仓库内测试约定与命令,具体路径与命令需以当前仓库为准;未提供产品化的平台、收费或效果信息。