SuperAPI AI 工具集

playwright-e2e-test

测试与质量

查看项目

更新于 10-15 10:04

技能介绍

用途

Playwright E2E Test 的核心用途是让智能体在真实浏览器中验证自己的改动。只阅读代码的智能体无法确认改动是否真正可用,而一个 Playwright 测试会实际运行用户流程,并返回明确的结论:绿(通过)或红(失败)。该技能为某一条关键用户流程编写并运行一份端到端测试,作为一种“最小安全网”,而不是完整的 QA 测试计划。

主要能力

  • 针对单条关键流程(如结账、预约、注册)编写一份 Playwright 端到端测试。
  • 在真实浏览器中运行该流程并给出通过或失败的事实结论。
  • 遵循一系列不可妥协的规则:先计划后编码;绝不为让测试通过而削弱测试(不修改断言去迁就错误行为、不用 test.skip、不用 test.fixme、不增加重试、不靠延长超时掩盖失败);测试失败时由人决定修复应用还是测试;永远只在本地或预发布环境运行,绝不针对生产环境。

使用方式

技能按步骤推进:

  1. 理解流程:确认要覆盖的流程(每次运行只覆盖一条流程),阅读实现该流程的代码(页面、组件、调用的 API)以及项目文档(CLAUDE.md、README、PRD),找出用户可见的成功结果,作为最终断言。
  2. 提出计划并暂停:用平实语言给出流程名称、起始 URL、步骤、最终断言(含确切文案)、测试数据、spec 文件路径,等待用户确认或调整,在此之前不写代码。
  3. 按需安装 Playwright:若项目已有 playwright.config.* 则复用并按现有约定编写;否则安装最小依赖 npm install -D @playwright/test 与 npx playwright install chromium。Linux 或 WSL 还需系统库,需用户用 sudo 运行 sudo npx playwright install-deps chromium。并创建只包含必要项的 playwright.config.js(若项目用 TypeScript 则为 .ts)。
  4. 编写测试:用用户视角的定位器(getByRole、getByLabel、getByText、getByPlaceholder),仅在无可识别可见元素时才用 getByTestId;不使用 CSS 类或 XPath。不做手动等待(不用 waitForTimeout、networkidle),依赖 Playwright 自动等待与 web-first 断言。至少对最终可见结果做一条断言;测试数据需可重复运行,避免冲突。
  5. 只运行该 spec:npx playwright test <path-to-spec> --reporter=list,除非用户要求,不运行整个测试套件。
  6. 证明测试能失败:测试通过后,临时对应用做一处小改动破坏预期结果,再次运行应如预期变红,然后还原并用 git diff 确认只剩测试文件被修改。
  7. 报告:给出流程、spec 路径、结果、能否失败的证明、运行命令。若失败,补充失败步骤与断言、证据(截图、error-context.md、trace 路径)、诊断(应用 bug / 测试过时 / 环境问题)与建议修复。

适用场景

适用于需要智能体验证自身改动是否真的可用的场景,尤其是涉及单一关键用户流程的验证,例如结账、预约、注册。适合作为最小安全网引入,而非替代完整 QA 计划。

限制

  • 每次运行只覆盖一条流程。
  • 产出是一份测试,不是完整 QA 方案。
  • 绝不针对生产环境运行;若流程会写入真实数据库,必须在首次运行前说明。
  • 测试失败时不由智能体擅自决定,需由用户决定修复应用还是测试。
  • 安装 Playwright 系统依赖需要 sudo,须由用户执行,智能体不得尝试获取密码。
  • 关于价格、收费、平台支持范围、实际效果等信息,资料暂未提供。