tester-army/e2e
开发工具用自然语言指挥智能体操作 Web 与移动应用完成端到端测试,动作可录制并回放,适合需要覆盖多端的测试团队。
项目定位
e2e 是一个面向 Web 与移动应用的端到端测试框架。它不需要你逐条编写 UI 操作脚本:用自然语言描述一个目标,智能体会驱动应用去达成,随后你可以用常规的定位器和断言在同一测试里校验结果。一个测试可以混用两种风格:
// tests/checkout.e2e.ts
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 agent.assert('the invoice preview shows a prorated amount');
await expect(screen.getByRole('status')).toContainText('Pro');
});
当智能体步骤后面跟着一条能验证它的断言时,这些动作会被记录;应用不变时,后续运行直接回放,不再调用模型。完全不含智能体步骤的测试则不需要模型。Web 端覆盖 Chromium、Firefox、WebKit(通过 Playwright),移动端覆盖 iOS 与 Android 模拟器、仿真器或真机。
快速开始
需要 Node.js 与 npm;只有包含智能体步骤的测试才需要配置模型提供方。在项目目录执行:
npx e2e init
init 会询问使用哪个引擎(Web 或移动端)以及哪个模型提供方,然后写入配置和一个示例测试。其余步骤见快速入门。如果想看一套与你的技术栈对应的完整配置,examples 目录里有 Vite、Next.js、Astro、Angular、Expo、SwiftUI、Jetpack Compose、Kotlin Multiplatform、Flutter 和 .NET MAUI 的独立项目,每个都带有可运行的测试套件。
运行与模型选择
Web 引擎由 @e2e-dev/web 提供,移动端引擎由 @e2e-dev/mobile 提供。模型自带:订阅、API Key 或本地模型均可。智能体步骤也可以通过 Agent Client Protocol 跑在你自己的编程智能体(Claude Code 或 Codex)上,对应包为 @e2e-dev/acp;@e2e-dev/decision 则提供有界语义动作与断言的执行器,以及一个跳过拉取请求不太可能影响到的测试的过滤器。
托管执行环境是独立的集成包:Kernel 托管浏览器、Lightpanda、smol 微虚拟机,以及移动端的 TestMu AI、BrowserStack、Limrun 和 EAS 模拟器;GitHub 拉取请求结果评论也是单独一个包。只有需要远程浏览器或真机时才需要引入。
使用约束
- 智能体步骤需要配置模型提供方;不含智能体步骤的测试不需要。
- 回放依赖录制时的应用状态,应用发生变化后该步骤会重新依赖模型。
- 项目尚未到 1.0:API 和配置在次版本之间仍可能变化。
- CLI 会发送匿名使用数据(命令、引擎、失败位置),但不包含测试内容、应用内容或凭据。可用
npx e2e telemetry disable或E2E_TELEMETRY_DISABLED=1关闭,遥测文档列出了全部字段。 - 许可证为 Apache-2.0。安全问题请按 SECURITY.md 私下报告,不要开公开 issue。
e2e包内自带完整文档(node_modules/e2e/docs),编程智能体可以离线阅读。
HotRepo 点评
HotRepo 没有记录到该仓库在全部语言日榜上的名次,但已有的日榜快照显示它在 2026 年 10 月初快速上涨:2026-10-04 为 2,624 Star,到 2026-10-08 达到 7,960,期间每日新增依次为 344、1,430、1,720、1,391 和 1,390。之后 2026-11-01 的 TypeScript 月榜快照记录 12,423 Star、当月新增 12,461,名次为第 17。2026-10-12 的 Show HN 帖子热度不高(9 分、2 条评论),讨论能提供的信息有限;其中用户 binsquare 在 2026-10-13 表示日常使用后测试效果和边缘用例发现都有改善(评论)。Star 曲线反映的是关注度,而不是它适配某个具体技术栈的证据——先看 examples 目录更可靠。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。