SuperAPI AI 工具集

playwright-testing

测试与质量

查看项目

更新于 10-16 05:02

技能介绍

用途:帮助团队规划、实现并调试前端测试,覆盖单元、集成、端到端、视觉回归与无障碍检查,适用于 Playwright、Cypress、Vitest、Jest、RTL,并提供不稳定测试的分诊与 CI 稳定化方法。

核心思路:按“最小可用置信层”选择测试类型——纯逻辑用单元测试,DOM 组件行为用组件/集成测试,关键用户流程用 E2E,视觉回归在锁定确定性之后再用于布局/像素问题;canvas/WebGL 纯图形场景的无障碍检查价值有限,除非暴露可访问的 DOM 覆盖层。测试应针对契约而非实现细节,优先消除不确定性而非依赖重试。

主要能力与用法:先定义一个冒烟流程(页面加载→用户可开始→关键动作可用),再选择运行器,推荐浏览器 E2E 与截图使用 Playwright,DOM 组件行为使用 Testing Library。在应用中添加“就绪”信号(DOM 标记、window 标志或游戏事件)并以 waitForFunction 等待,避免 sleep。将 console 错误与失败请求视为测试失败。通过固定随机种子、冻结时间、锁定视口与设备像素比、禁用动画、消除网络波动来实现稳定。Playwright 可在 window 上暴露小型稳定测试 API(只读状态加少量命令)作为测试缝隙;截图前需锁定视口、缩放、字体与动画时序。

调试与反模式:动态 UI 先侦察再操作,等待明确就绪信号而非 networkidle(websocket/轮询场景尤甚),捕获截图、console 错误与失败请求,优先使用 role/text/label 选择器。避免为纯逻辑写 E2E、断言实现细节、sleep 式等待、不受控随机、无确定性的像素快照、快照爆炸以及把重试当策略。

脚本:scripts/with_server.py 可先运行 --help,用于在测试命令前后启动、等待、停止一个或多个开发服务器,例如 python scripts/with_server.py --server "npm run dev" --port 5173 -- npm test;scripts/imgdiff.py 为轻量截图对比助手(需 pip install pillow)。

限制:本技能为方法论与辅助脚本集合,具体项目配置、CI 环境支持与工具版本兼容性暂未提供。