SuperAPI AI 工具集

e2e-test-hardener

测试与质量

查看项目

更新于 10-15 21:02

技能介绍

用途:把刚由 codegen 或 AI 代理生成的 Playwright E2E 测试,在合并前打磨成健壮可合并的测试。核心不是 CLI 语法,而是 harness 思维:测什么、mock 什么、何时验证稳定性。适用于测试偶发失败、各测试重复走登录/同意条款等公共前置、或混入无法控制的外部调用(认证、税务、证书、外部应用、支付 PG、外部 OAuth)的场景。不适用于纯单元测试、一次性浏览器自动化脚本或真正的契约测试。

三条原则按顺序执行:A 测试独立性——每个测试从所验证分支的起点出发,公共前置用测试专用 API 或 storage state 预置,测试之间不依赖执行顺序或共享状态。B 外部依赖 mock——只测可控部分;先判断调用位置:浏览器端调用用 page.route 拦截,服务器端(SSR/BFF/route handler)调用需用 E2E 专用环境变量返回固定响应,可用 playwright-cli 技能中 request-mocking.md、storage-state.md、test-generation.md 参考。C flaky 预防——禁止 waitForTimeout/sleep 等硬等待,改用条件式 web-first 等待;选择器用 role+name 等语义方式而非 CSS 类名或 DOM 结构;变更测试用 --repeat-each 做 burn-in,如 npx playwright test path/to/changed.spec.ts --repeat-each=10,可加 --workers=1 暴露顺序依赖。

完成后按检查清单核验:无公共前置 UI 重复、无顺序/共享状态依赖、外部调用均已 mock 且 mock 位置正确、硬等待为 0、选择器语义化、burn-in 无一次失败,并简要报告修改内容与 burn-in 结果。细节可查阅 references/ 下 independence.md、external-mocking.md、flaky-prevention.md、hardening-checklist.md。