如果你也在写端到端测试,每次改一行断言就得跟着改一整套测试套件——那 GitHub 这个项目值得你花 10 分钟看看。tester-army/e2e 核心卖点只有一句话:用自然语言描述测试目标,AI Agent 自动驱动 Web、iOS、Android 全平台执行并验证。

为什么这件事值得关注
端到端测试(e2e)一直是个苦力活:写 Page Object、堆 Selector、维护 fixture、CI 上跑一次十几分钟。AI 浪潮之后大家都在问同一个问题——能不能让 AI 自己写、自己跑、自己断言?tester-army/e2e 给出了一个相当完整的答案:不是「让 AI 帮你生成代码」,而是让 AI 直接成为测试执行器。
它不是又一个「AI 测试代码生成器」,而是把 Agent 推到 Plan-Execute-Verify 闭环的最外层。
核心特性
1. 用自然语言代替代码写测试
最直观的变化:测试用例不再是一堆 await page.click('#submit'),而是一行 agent.act('upgrade the workspace to the Pro plan'):
test('a member upgrades to Pro', async ({ app, agent, screen }) => {
await app.open('/settings/billing');
// 用自然语言让 Agent 执行操作
await agent.act('upgrade the workspace to the Pro plan');
// 用自然语言让 Agent 验证结果
await agent.assert('the invoice preview shows a prorated amount');
await expect(screen.getByRole('status')).toContainText('Pro');
});
业务人员、QA、产品都能直接读懂测试用例,跨角色对齐成本骤降。
2. 智能重放(Smart Replay)
很多人担心"AI 跑测试"成本高、稳定性差。tester-army/e2e 的解法很务实:第一次跑用模型,之后直接重放。
- Agent 每一步操作都被记录
- 下次跑同一用例,UI 没变就直接重放,零 API 调用
- 只有应用界面真的改了,才重新调用模型
跑回归测试时,这能把成本压到接近传统 e2e 框架。
3. 一套 API 覆盖 Web + iOS + Android
| 平台 | 引擎 |
|---|---|
| Web | Chromium / Firefox / WebKit(基于 Playwright) |
| 移动端 | iOS / Android(基于 agent-device) |
| 托管浏览器 | @e2e-dev/kernel、@e2e-dev/eas |
统一的 app.open() / agent.act() / agent.assert() API,写一次测试覆盖三端,不用为移动端再集成一套 Appium。
4. 决策模型(Decision Models)
内置 @e2e-dev/decision 执行器,支持 bounded 语义动作和断言。你可以接入自定义决策模型——比如用企业内部微调的 LLM,或者在测试环境里用便宜的开源模型。
5. 零配置启动
npx e2e init
# 选择引擎(web / mobile)和模型提供商
# 自动生成配置和示例测试
5 分钟跑起来第一个测试。
技术架构
e2e(SDK + Runner + CLI)
├── @e2e-dev/web # 浏览器引擎(Playwright)
├── @e2e-dev/mobile # 移动引擎(agent-device)
├── @e2e-dev/github # PR 评论报告
├── @e2e-dev/kernel # 托管浏览器
├── @e2e-dev/eas # 托管 iOS / Android
└── @e2e-dev/decision # 决策模型执行器
分层清晰:SDK 只暴露 agent.act / agent.assert 这种稳定 API,底层引擎可替换。
与传统 e2e 框架对比
| 维度 | Selenium / Playwright | tester-army/e2e |
|---|---|---|
| 测试描述 | 代码 / DSL | 自然语言 |
| AI 驱动 | 无 | Agent 自动操作 |
| 回归运行 | 每次调用 API | 智能重放,零 API 调用 |
| 移动端 | 需额外集成 | 原生支持 |
| 学习成本 | 高(需编码) | 低(自然语言) |
| 跨角色可读性 | 仅工程师 | 业务 / QA / 产品都能读 |
它适合谁?什么时候用不上?
适合的场景:
- 业务迭代快、UI 经常变,传统 e2e 维护成本爆炸的团队
- 需要同时覆盖 Web + 移动端、但不想维护两套测试栈
- 想让非技术角色(QA、产品)直接参与测试用例设计
暂时不适合的场景:
- 强合规场景(金融、医疗),需要 100% 可审计的断言路径——自然语言断言目前还不够 deterministic
- 超大规模测试套件(>10k 用例),智能重放的存储开销需要评估
- 完全封闭的本地部署环境(LLM 调用受限制)
给开发者的几点启发
虽然不一定直接用 tester-army/e2e,但它的设计思路可以借鉴:
- Agent 作为测试执行器——把 AI 从「生成代码」推到「执行并验证」的闭环
- 录制 + 重放 + 模型兜底——智能缓存策略能用在很多 Agent 自动化场景(自动录用户操作、自动生成测试用例)
- 自然语言作为通用 DSL——降低工具使用门槛,业务侧能直接参与
- 跨端统一抽象——Web / iOS / Android 用同一套语义描述,避免重复实现
如果你正在做 AI Agent 工具的产品,这套「自然语言 + 智能重放 + 跨端统一」的设计组合拳值得研究。
快速上手
# 1. 初始化项目
npx e2e init
# 2. 写一个测试(spec 文件)
# test.spec.ts
import { test, expect } from 'e2e';
test('user can sign up', async ({ app, agent, screen }) => {
await app.open('/signup');
await agent.act('fill in email [email protected] and password Test1234!');
await agent.act('click the sign up button');
await agent.assert('a welcome message appears');
});
# 3. 跑起来
npx e2e test
第一次跑会调用模型,之后 UI 不变就直接重放,几乎零成本。
项目地址
| 链接 | 用途 |
|---|---|
| GitHub | https://github.com/tester-army/e2e |
| 官网 | https://tester.army/e2e |
| npm | https://www.npmjs.com/package/e2e |
| 协议 | Apache-2.0 |
构建方 TesterArmy 是一家专注 AI 测试的平台公司,已经商用化这套框架。如果你想在生产环境直接用,建议去官网看看他们托管的浏览器内核方案(@e2e-dev/kernel、@e2e-dev/eas),比自己部署省心很多。
💡 落地建议
- 先在小项目跑通——选 1-2 个非核心用例验证稳定性,再逐步扩大
- 配置好智能重放策略——明确「UI 变更后如何触发模型重新推理」,避免重放过期
- 决策模型分级——核心流程用更强模型,长尾用例用便宜开源模型,控制成本
- PR 评论集成——@e2e-dev/github 可以在 PR 上直接贴失败截图和回放链接,团队 review 效率翻倍
AI 不会让测试工程师失业,但用 AI 的测试工程师一定会让不会用 AI 的同行焦虑。tester-army/e2e 是这个趋势里走得比较前的一个项目——它的设计选择、它踩过的坑、它的开源节奏,都值得持续关注。