ARTICLE · 1141638
GitHub 每日一荐 066 | AI自动化测试工具爆火:一句话测试网页和App,失败还能自动定位
AI自动化测试工具爆火:一句话测试网页和App,失败还能自动定位
把“完成升级并检查账单”这种自然语言目标写进测试,Agent 自动操作页面;稳定后还能回放动作,减少重复调用模型。
传统端到端测试最费时间的地方,不是写一个点击,而是页面一改、选择器就碎,Web 与移动端还要维护两套工具。e2e 的思路是让 Agent 负责“怎么到达目标”,再用明确断言判断结果是否正确。
截至 2026 年 10 月 6 日,项目约 5.67K Star、约 244 Fork,并位于当天 GitHub Trending 前列。项目仍处于走向 1.0 的活跃开发阶段,接口和配置可能在小版本间变化。
它最值得学习的不是“AI 会点按钮”,而是把模糊任务和确定性验收分开:Agent 做探索,断言做最终裁判。
不要让 AI 判断一切:让它负责行动,让断言负责验收
一条实用测试应拆成两层:先用 agent.act 描述业务目标,例如“把工作区升级到 Pro”;再用 expect 或 agent.assert 检查账单、状态和页面文字。这样 AI 可以适应页面变化,但是否通过仍有清晰标准。
图 1:e2e 官方项目主视觉(来源:GitHub / tester-army/e2e;官方素材)
第一条测试,从 npx e2e init 开始
初始化命令会询问测试引擎、Web 或移动端,以及模型提供商,然后生成配置和示例。建议先选一个最短、可重复、不会产生真实费用的流程,例如登录测试账号、搜索固定内容、检查结果页,而不是上来就测试整套支付链路。
图 2:e2e 官方框架介绍图(来源:GitHub / tester-army/e2e;官方素材)
Web 端的正确做法:目标自然语言化,结果结构化
e2e 的 Web 引擎通过 Playwright 支持 Chromium、Firefox 和 WebKit。测试时把“用户真正想完成的事情”交给 Agent,把关键结果写成定位器和断言;页面布局变化时,Agent 可以重新找路,而业务结果没有变化就仍能通过。
图 3:官方 Next.js 示例应用截图(来源:GitHub / tester-army/e2e,examples/with-next;官方示例)
同一套思路也能覆盖 Android 和 iOS
移动端引擎通过模拟器或仿真器运行,官方仓库提供 Expo 与 SwiftUI 示例。适合验证注册、表单填写、页面跳转等主流程。真实设备权限、系统弹窗、推送和支付仍要单独设计测试,不应只靠一条自然语言指令。
图 4:官方 SwiftUI 成功示例(来源:GitHub / tester-army/e2e,examples/with-swiftui)
稳定步骤自动回放,失败时再让模型重新探索
项目会记录 Agent 已完成且被后续断言验证的动作;下次运行优先回放,应用变化时再调用模型重新探索。这能降低模型成本,也让测试速度更稳定。遇到失败时,先区分“产品真的坏了”“测试数据变化”和“Agent 走错路”三种情况。
图 5:官方 SwiftUI 错误状态示例(来源:GitHub / tester-army/e2e,examples/with-swiftui)
上手之前,先看清这些限制
1. 需要 Node.js 和相应浏览器或移动端模拟环境。
2. 模型可以使用自己的订阅、API Key 或本地模型,成本与效果取决于提供商。
3. CLI 默认发送匿名使用数据,但不包含测试内容、应用内容和凭据;可关闭遥测。
4. 项目仍在 1.0 之前,生产测试应锁定依赖版本并保留传统断言。