Playwright Test Agents 深度解析:三个 AI Agent 帮你全自动写测试
写 Playwright 测试这件事,业界经历了三个阶段:
- 第一阶段:你写代码,机器跑。手动写断言,手动维护。
- 第二阶段:你用 MCP,AI 帮你写代码。你指挥,AI 执行。
- 第三阶段:你给目标,AI 自己搞定全程。
Playwright 官方最新推出的 Test Agents,就是这个第三阶段的产物——三个专门为测试这件事训练的 AI Agent,你告诉它测什么,它自己探索、自己写代码、跑失败了还能自己修。
三个 Agent 各司其职
Test Agents 包含三个角色,分工明确:
| Agent | 职责 | 产出 |
|---|---|---|
| Planner | 探索应用,规划测试范围 | Markdown 测试计划文件 |
| Generator | 把计划翻译成可执行代码 | .spec.ts 测试文件 |
| Healer | 跑失败的测试,自动修复 | 修好的测试代码 |
三个 Agent 可以单独用,也可以串成一个完整循环——你下达任务,它们全程自己转。
五分钟上手
第一步:初始化 Agent 定义文件
npx playwright init-agents
默认生成 VS Code 模式。如果用 Claude Code:
npx playwright init-agents --loop=claude
这条命令在 .github/ 目录下生成 Agent 的"说明书"——告诉 AI 有哪些工具可以用、怎么配合。
⚠️ 重要:Playwright 版本更新后要重新跑一次,定义文件不会自动同步。
第二步:写好 seed.spec.ts(关键)
这是整个流程的基础。seed.spec.ts 处理"进门"的事——登录、初始化数据、设置 fixture。
// seed.spec.ts 示例
import { test, expect } from './fixtures';
test('seed', async ({ page }) => {
// 在这里处理登录、初始化等准备工作
// 这个测试本身不需要有断言
});
Planner 会先跑这个 seed 测试把环境配置好,然后用它作为后续生成的风格样本。
第三步:串起三个 Agent
1. seed.spec.ts 准备就绪
↓
2. Planner:"给购物车模块生成测试计划"
↓
3. 检查 specs/cart-operations.md(可选,觉得OK就放行)
↓
4. Generator:"把这个计划生成为测试代码"
↓
5. 测试跑起来,有失败的?Healer 去修
↓
6. 全部通过,合并进代码仓库
整个过程你主要在审核,不在执行。
三个 Agent 详解
Planner:先探路,再规划
Planner 干的事情是理解你的应用,规划测试范围。
输入:
- 一个清晰的任务描述(如"给访客结账流程生成测试计划")
seed.spec.ts(必须)- 可选:产品需求文档(PRD)
输出:
specs/basic-operations.md——人类可读的测试计划,包含每个测试场景、步骤、预期结果
这个 Markdown 计划文件是整个流程中最有价值的一环——你可以不碰代码,直接检查 AI 生成的测试覆盖范围是否完整、有没有遗漏。
Generator:把计划变成能跑的代码
输入:specs/ 目录下的 Markdown 计划文件
输出:tests/ 目录下的测试文件
Generator 在生成过程中会实时验证——真的操作浏览器,确认选择器是否有效、断言是否合理。生成完就是能跑的代码(大部分情况)。
提示语非常简单:
把 specs/basic-operations.md 里的测试计划生成为测试代码
Healer:测试挂了,让它修
测试跑失败了——前端改了 DOM、等待时间不够、数据对不上——以前要自己看报错、找元素、改代码、重新跑。
现在:
帮我修复 tests/add-valid-todo.spec.ts 里失败的测试
Healer 会:
- 重新回放失败的测试步骤
- 查看当前 UI,找到对应的元素或流程
- 提出修复方案(更新选择器、调整等待、修改数据)
- 重新跑测试,直到通过
如果跑了几次还是不行,它会把这个测试标记为 skip,并注明原因(可能是功能本身有问题)。
和 MCP、CLI 的区别
这是三件不同的事:MCP 是感知工具,CLI 是执行工具,Agent 是自主系统。
| MCP | CLI | Test Agents | |
|---|---|---|---|
| 本质 | 给 AI 装了一双"眼睛" | 给 AI 提供命令行接口 | 专门为测试设计的自主 AI 系统 |
| 控制权 | 你指挥,AI 执行 | AI 自主执行命令 | AI 自主完成目标 |
| 交互方式 | 对话式,逐步 | 命令式,可批量 | 目标式,自主规划 |
| Token 消耗 | 高(页面快照) | 低(结构化命令) | 中(有中间产物) |
| 适合粒度 | 单个测试/操作 | 批量操作/流程节点 | 模块级/项目级 |
| 人工介入 | 全程在场 | 不需要介入 | 关键节点审核 |
| 典型用途 | 边调试边写测试 | CI 自动化、AI 流程 | 测试覆盖建设 |
选择逻辑:写单个测试找 MCP,搭自动化流程用 CLI,建整体测试覆盖上 Agents。
实际使用注意事项
1. Seed 文件一定要写好
这是整个 Agent 流程的基础。如果你的应用需要登录,seed 里没处理,Planner 探索时会撞墙。不复杂,但要认真写。
2. Agent 定义文件要跟着 Playwright 版本走
每次升级 Playwright 后,npx playwright init-agents 重新跑一遍。
3. Healer 不是万能的
选择器大范围改动、功能逻辑变了、接口 schema 变了——这些靠 Healer 修不了。它处理的是"能跑、跑失败了",不处理"需求变了"。
4. 生成的代码要过一遍眼
断言的力度是否合适、边界情况有没有覆盖、测试之间有没有依赖——这些仍然需要人判断。AI 能生成代码,但业务逻辑判断还是人更准。
总结
Test Agents 的本质是 Playwright 在 AI 时代对"测试自动化"的重新定义:以前是你写代码让机器自动跑,现在是你说需求让 AI 自动生成代码再自动跑。
三个 Agent 接力,Planner 探索 → Generator 生成代码 → Healer 修复失败,你主要在关键节点审核,而不是逐步执行。对于需要快速建立测试覆盖的项目来说,这是一个显著提升效率的工具。
参考链接
- Playwright 官方文档:playwright.dev
- Test Agents 介绍:
npx playwright init-agents --help - 相关:Playwright MCP(感知工具)、Playwright CLI(执行工具)