编程 Playwright Test Agents深度解析:三个AI Agent帮你全自动写测试

2026-04-28 16:25:24 +0800 CST views 4

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 会:

  1. 重新回放失败的测试步骤
  2. 查看当前 UI,找到对应的元素或流程
  3. 提出修复方案(更新选择器、调整等待、修改数据)
  4. 重新跑测试,直到通过

如果跑了几次还是不行,它会把这个测试标记为 skip,并注明原因(可能是功能本身有问题)。

和 MCP、CLI 的区别

这是三件不同的事:MCP 是感知工具,CLI 是执行工具,Agent 是自主系统

MCPCLITest 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(执行工具)
复制全文 生成海报 Playwright AI 测试 自动化 Agent

推荐文章

MySQL数据库的36条军规
2024-11-18 16:46:25 +0800 CST
mysql时间对比
2024-11-18 14:35:19 +0800 CST
如何将TypeScript与Vue3结合使用
2024-11-19 01:47:20 +0800 CST
动态渐变背景
2024-11-19 01:49:50 +0800 CST
npm速度过慢的解决办法
2024-11-19 10:10:39 +0800 CST
html一些比较人使用的技巧和代码
2024-11-17 05:05:01 +0800 CST
PHP 8.4 中的新数组函数
2024-11-19 08:33:52 +0800 CST
Vue3中如何进行错误处理?
2024-11-18 05:17:47 +0800 CST
HTML和CSS创建的弹性菜单
2024-11-19 10:09:04 +0800 CST
markdown语法
2024-11-18 18:38:43 +0800 CST
`Blob` 与 `File` 的关系
2025-05-11 23:45:58 +0800 CST
css模拟了MacBook的外观
2024-11-18 14:07:40 +0800 CST
地图标注管理系统
2024-11-19 09:14:52 +0800 CST
回到上次阅读位置技术实践
2025-04-19 09:47:31 +0800 CST
程序员茄子在线接单