SuperAPI AI 工具集

playwright-best-practices

测试与质量

查看项目

更新于 10-16 08:45

技能介绍

该技能讲解「什么样的测试才算好」以及「为什么某些模式能避免失败」,提供测试结构、定位器选择、断言策略与调试方法背后的决策框架,与负责讲解命令执行方式的 playwright-cli 技能配合使用。适用场景包括:制定测试策略、在 ARIA 快照与单个定位器之间取舍、组织断言、调试测试失败、审查测试代码或提供测试架构建议。

核心测试理念:测试用户可见行为,关注用户能看见和交互的渲染输出,避免断言内部函数名、数据结构或 CSS 类名等实现细节;坚持测试隔离,每个测试拥有独立的状态、cookie 与存储,不依赖执行顺序,可用 beforeEach 做公共准备,对登录等昂贵操作可使用 setup projects 复用状态;只测试自己可控的代码,不直接测试第三方站点或 API,改用 page.route 进行网络模拟。

ARIA 快照测试:ARIA 快照以 YAML 表示可访问性树,即辅助技术看到的语义结构。它测试语义结构与可访问性,能抵御 CSS 重构,可自动发现可访问性回归,比像素级视觉测试更稳健。基本写法为 await expect(page.locator("body")).toMatchAriaSnapshot(- banner: ...);YAML 中使用角色、可访问名称(引号内)与属性(如 [level=1]、[checked]、[disabled]、[expanded=true])。子元素匹配可用 /children 控制:默认子集匹配、deep-equal 为精确匹配、省略则不校验子元素;也可用正则匹配动态文本。适合页面布局、表单结构、列表与表格、导航菜单、模态对话框、组件结构与可访问性回归检测;具体交互、动态状态变化与精确时序仍应用单个定位器,二者可组合使用。生成快照可先写空字符串再运行 npx playwright test --update-snapshots(简写 -u),并建议把快照纳入版本控制、在 PR 中审查变更。

定位器韧性层级(从高到低):基于角色 getByRole,其次 getByLabel、getByPlaceholder、getByText、getByTestId,XPath/CSS 选择器仅作最后手段。可结合链式与过滤(filter({ hasText })、filter({ has }))缩小范围以降低脆弱性。

资料未提供该技能的安装命令、收费与具体版本信息。