测试流程一长,手写步骤确实累;全交给 AI 吧,每轮又得重新观察、规划、调用模型。有没有折中的办法?
TesterArmy 的 e2e 让 Agent 按业务目标操作,再用断言验证。通过检查的动作可以记录,下次满足条件时直接回放。这篇讲清它的分工与边界。"抄作业"抄的是已验证的动作,不是缓存一个通过答案。它仍在迈向 1.0,不能当作免写断言、永久免模型的万能测试机。

端到端测试就是像用户一样走完业务流程,再检查结果。比如添加商品后,确认购物车数量真的变了。操作做没做,和业务对不对,是两道题。
e2e 允许把自然语言 Agent 步骤和定位器、断言写进同一个 TypeScript 测试。Web 引擎底层使用 Playwright,不是另起炉灶把传统检查全部扔掉。

02 自然语言负责找路,断言负责验收
下面是官方缓存文档里的小例子:
import { expect, test } from 'e2e';
test('adds an item', async ({ app, agent, screen }) => {
await app.open('/cart');
await agent.act('add one item to the cart');
await expect(screen.getByRole('status')).toHaveText('1 item');
});
agent.act() 描述目标;expect() 检查状态。例子要求应用有对应页面和元素,不能原样贴到任意网站。
复杂操作可以让 AI 找路,关键结果仍用明确规则守住。如果没有 Agent 步骤,普通测试本身不需要配置模型。
项目也有自然语言断言 agent.assert(),但"模型判断对了"和"精确匹配预期文本"不是同一种验证,选哪种要看业务风险。
03 真正有意思的,是验证后的动作回放
在可写缓存模式下,agent.act() 的操作得到后续有效检查确认后,框架才可能保存动作记录。仅仅读了一段文字、或者测试函数跑完,并不都算有效确认。

后续运行会检查起始页面、目标控件和结束状态。匹配时按记录操作,不必再让模型为这个操作步骤重新规划;不匹配时,默认交还 Agent 从当前页面继续。
| 情况 |
是否可能需要实时模型调用 |
| 已记录的 act 完整回放成功 |
这个步骤不调用模型 |
| 新步骤、未命中或回放接管 |
通常需要,具体看模式 |
| agent.assert / waitFor / extract |
始终实时运行 |
复用动作,不等于整个测试永久免模型。缓存文档[2]
04 Web 和移动端,用相近的测试语言
Web 通过 Playwright 覆盖 Chromium、Firefox、WebKit;移动端通过 agent-device 对接 iOS 模拟器、Android 仿真器。
这里说的移动测试,不等于任意真机插上就能测。对应 App、模拟器环境、启动方式和页面结构仍要配置,跨端也不代表所有测试文件原封不动通用。
仓库有多技术栈例子、PR 报告与托管设备扩展,也提供 Skill、MCP 辅助探索应用和写测例。
想试用,可从官方 npx e2e init 向导开始。按当前文档,需 Node 24.8+,或 22 系列的 22.22.3+;Windows 使用 WSL,移动端还需对应工具链。快速开始[3]
05 自动适应变化,有时也要踩刹车
假设你要检查的是"这个入口有没有坏",而 AI 发现另一条路线也能完成任务,最后全绿,不代表原来的入口没问题。这是自适应执行必须考虑的验收边界。

| 你要的测试 |
更值得关注什么 |
| 探索能否完成业务目标 |
Agent 灵活性与最终结果 |
| 固定关键路径的回归 |
明确路径检查、精确断言 |
| 不希望旧记录悄悄被修复 |
评估 strict-cache 模式 |
--strict-cache 可以让过期记录报错,而不是自动交还 Agent。但新步骤、部分不可回放操作等仍有实时执行例外,不是加个参数就从此零调用。
短小流程用定位器就能写清,不必全部"AI 化"。先挑维护麻烦、又能明确验收的一条试点。
06 测试账号、缓存和费用,先管好
运行会访问应用和你配置的模型服务。模型可读取指令、页面控件树及按需截图;框架提供 Secret 机制,但普通字符串密码不能想当然地视作秘密。
缓存中普通输入值可能原样保存,分享记录前要审查。视频、应用日志等也有脱敏边界,更不能把这个框架当作系统沙箱:测试代码和相关工具按你的系统权限运行。安全说明[4]
CLI 默认还有匿名使用统计,可用 E2E_TELEMETRY_DISABLED=1 关闭。模型、订阅入口或云浏览器/设备的成本另算,不因框架开源就自动免费。
它目前还没到 1.0,升级时注意 API 与配置变化。Apache-2.0 复用也要保留适用的许可、版权和通知。
下一篇拆购物车回归:验证回放,再改坏入口,看看断言能否拦住。这类 AI 测试工具的实战拆解,也会同步在 云栈社区 跟大家继续聊。
项目地址
https://github.com/tester-army/e2e