e2e:用自然语言驱动智能体的网页与移动端测试框架
TesterArmy 开源的端到端测试框架:一个测试里既写自然语言步骤,也写 Playwright 风格断言,通过的步骤回放时不再调用模型。
项目资料
GitHub Ecosystem- 许可证
- Apache-2.0
- 主语言
- TypeScript
- 星标
- 6,324
- 核查时间
- 2026-10-07
以上快照资料以核查当日为准,可能随版本或运营策略变化。
写端到端测试的人大多卡在同一个取舍上:脚本写死选择器,页面一改就红;全交给智能体去”自己点”,测试通过了却说不清到底验证了什么。e2e 是 AI 测试平台 TesterArmy 在 10 月 1 日开源的 TypeScript 测试框架,让两种写法活在同一个测试里:想描述目标的地方写一句自然语言,需要精确的地方写角色定位器和断言。仓库 7 月 22 日创建,现在有 6,324 星;视频号「表格流电商」10 月 6 日那条说它单日新增 1,430 星,这个数字我们没有独立核实。
核心功能
- 智能体步骤与精确断言同台:
agent.act()执行你描述的目标,agent.assert()用自然语言检查条件,agent.extract()从屏幕读数据;其余照旧用 Playwright 风格的定位器和会自动重试的断言,报告里能分清哪些是精确验证的。 - 记录与回放:一个智能体步骤被后面的断言验证通过后,它的操作会被缓存,下次运行不调用模型,速度和脚本测试一样;页面变到回放失败时,才交回智能体重新找路径。
- 一套 API 跑网页和移动端:浏览器走 Playwright,iOS 模拟器和 Android 模拟器走 agent-device,夹具、定位器、断言在各平台一致。
- 用你已有的模型:支持任何 AI SDK 模型,包括本地模型;也能直接用 ChatGPT Plus 或 Pro、GitHub Copilot、SuperGrok 的订阅登录,官方称不在 token 上加价。
- 给编码智能体用:自带 agent skill 和 MCP 服务器,Claude Code、Cursor、Codex 可以探索你的应用并写出带真实定位器的测试。还有
e2e explore,在提交 PR 前跑一轮探索式找 bug。 - 迁移指南:文档里有从 Playwright、Cypress、Selenium、Detox、Maestro 迁移的说明。
典型使用场景
- 已有 Playwright 套件的团队:原样搬过去,再只在容易因改版而碎掉的流程(结账、设置页)上换成智能体步骤。
- 没人写测试的移动应用:iOS 和 Android 共用一套测试,不用分别学两套自动化工具。
- 用编码智能体写代码的人:让智能体顺手生成并维护测试,PR 里用
@e2e-dev/github报告器把结果贴成评论。
快速上手
需要 Node.js 24.8 以上(Node 22 要 22.22.3 以上),Windows 需在 WSL 里运行。移动端测试还要 Xcode 的 iOS 模拟器或 Android SDK 的模拟器。以下命令和示例来自官方 README:
npx e2e init
npx e2e run
init 会问你选 Web(Playwright)还是移动端,再选订阅或模型提供商(也可以选”无 AI”),然后写好配置和一个示例测试。run 会下载浏览器或启动模拟器,检查应用能打开,并写出 .e2e/report.json,这一步不调用模型。一个带智能体步骤的测试长这样:
import { test, expect } from 'e2e';
test('a member upgrades to Pro', async ({ app, agent, screen }) => {
await app.open('/settings/billing');
await agent.act('upgrade the workspace to the Pro plan');
await expect(screen.getByRole('status')).toContainText('Pro');
});
examples/ 目录里有 Vite、Next.js、Expo 和 SwiftUI 的完整示例。
小结
适合已经在写 Playwright 或移动端自动化、想给最易碎的几条流程减少维护量的团队,协议是 Apache-2.0,语言是 TypeScript。几点要先知道:
- 还没到 1.0:官方 README 写明 API 和配置在小版本之间还可能变。
- 遥测默认开启:CLI 会发匿名使用数据(命令、引擎、失败位置),不含测试内容和凭据,用
npx e2e telemetry disable或设置E2E_TELEMETRY_DISABLED=1关闭。 - 首次运行要花模型调用:缓存回放省的是后面的运行,第一次让智能体走通一个流程仍要消耗模型额度。
- 背后是商业公司:e2e 是 TesterArmy 商业平台的开源底座,官方博客说它将成为 TesterArmy 的开放基础,托管浏览器和托管模拟器的包(Kernel、EAS)属于外部集成。
- 云端运行:第三方 TestMu AI(原 LambdaTest)的文章说,网页引擎可以通过 CDP 连到它们的云浏览器,这是对方自己的说法,我们没验证。