[测试工具] Playwright Test Agents 实战:Planner、Generator、Healer 到底能不能落地?
原创内容未获授权禁止转载、转发、抄袭。最近看了 Playwright 官方的 Test Agents 文档也顺手做了一轮本地实践。先说结论这套东西不是“AI 帮你随便写几条用例”而是把自动化测试拆成了计划、生成、修复三个环节。方向是对的但落地时一定要 review。官方文档地址https://playwright.dev/docs/test-agents三个 Agent 分别干什么Playwright Test Agents 里默认有三个角色Agent作用产物planner探索页面生成测试计划specs/*.mdgenerator根据测试计划生成 Playwright 用例tests/*.spec.tshealer分析失败用例尝试修复选择器、等待、断言等问题修复后的测试脚本我理解下来它真正有价值的地方不是“少写几行代码”而是把测试建设变成了一个更容易审核的链路测试目标 - 测试计划 - 自动化用例 - 执行失败 - 修复回归实践环境我本地用了一个很小的优惠券下单页面覆盖这些点默认金额展示有效优惠券无效优惠券切换商品和数量后重新计算提交订单展示最终金额旧选择器失败后的修复环境大概是Node.js: v22.17.1 Playwright: 1.60.0 浏览器: Chrome测试页面长这样第一步初始化 Test Agents执行命令npx playwright init-agents--loopclaude--prompts输出里可以看到它生成了三个 agent 定义文件生成后的核心文件大概是这些这里有个点要注意init-agents不是直接帮你跑测试它是给 Claude Code、VS Code、OpenCode 这类宿主生成 Agent 定义和 MCP 配置。目前我实测init-agents --help里没有codex选项可选的是claude, copilot, opencode, vscode, vscode-legacy所以在 Codex 里不能原样读取.claude/agents/*.md或.github/agents/*.agent.md。如果要在 Codex 里复用需要迁移成 Codex 的.codex/agents/*.toml同时把 Playwright MCP 配到.codex/config.toml。第二步Planner 先产出测试计划我没有直接让它生成代码而是先准备测试计划为优惠券下单模块生成测试计划重点覆盖金额计算、有效优惠券、无效优惠券、商品切换、订单提交反馈。最后整理出来的计划放在specs/order-coupon.md这一步很有必要。测试计划先落地后面生成用例才不会跑偏。我比较建议计划里至少写清楚前置入口比如tests/seed.spec.ts每个场景的操作步骤每个场景的明确断言哪些是正向哪些是异常场景第三步Generator 生成用例但不能不看根据测试计划生成了 Playwright 用例tests/order-coupon.spec.ts第一轮跑的时候我遇到一个很典型的问题getByLabel(商品) resolved to 2 elements原因是页面上既有“商品信息”区域又有“商品”下拉框getByLabel(商品)命中了多个元素。修复方式也很简单awaitpage.getByLabel(商品,{exact:true}).selectOption(course);这个例子说明Generator 可以提速但选择器和断言一定要人工 review。第四步Healer 更适合修选择器类问题我故意准备了一条旧脚本awaitpage.getByRole(button,{name:使用优惠券}).click();但页面真实按钮已经是应用优惠券执行后失败Playwright 的失败上下文里能看到当前页面快照按钮实际是“应用优惠券”。这种问题就很适合交给 Healer 处理。修复后代码变成awaitpage.getByRole(button,{name:应用优惠券}).click();最后全量回归结果7 passed如果想在 Codex 里用怎么处理这里要单独说一下。Playwright 官方现在没有npx playwright init-agents--loopcodex但 Codex 本身支持自定义 subagents 和 MCP所以可以换一种方式接入[mcp_servers.playwright-test] command npx args [playwright, run-test-mcp-server] startup_timeout_sec 20 tool_timeout_sec 120然后把 Playwright 生成的三个角色迁移成 Codex subagent.codex/agents/playwright-test-planner.toml .codex/agents/playwright-test-generator.toml .codex/agents/playwright-test-healer.toml在 Codex 里调用时提示词可以这样写请使用 playwright_test_planner 这个 subagent 基于 tests/seed.spec.ts 为优惠券下单模块生成测试计划 输出到 specs/order-coupon.md。这条路目前更像是“适配使用”不是 Playwright 官方原生支持 Codex期待后续对codex更好的支持吧。我的结论这套 Test Agents 值得测试同学关注尤其适合做模块级自动化覆盖。但不要把它当成“全自动测试工程师”。它更像一个分工明确的助手planner帮你把测试范围拉出来generator帮你把计划翻译成脚本healer帮你处理一部分失败用例真正需要测试人员把关的地方还是这些场景有没有漏断言是否有效选择器是否稳定失败修复有没有把真实缺陷掩盖掉生成的用例是否适合进 CI我个人会这样用MCP调试单条流程 Test Agents建设模块级回归集 Playwright Test执行和接入 CI Codex做测试计划评审、脚本修改和失败分析一句话Playwright Test Agents 能降低自动化建设的体力活但不能省掉测试设计的判断。