从0到1认识e2e开源AI测试框架的项目结构与代码导读【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2ee2e 是一个面向 Web 和移动端的开源 AI 端到端测试框架用一句自然语言描述测试目标AI Agent 就会驱动应用完成操作再配合传统的定位器locators和断言验证结果。本文带你从 0 到 1 认识这个仓库——不写一行代码也能看懂它的目录结构、核心包分工和阅读源码的最佳路线。 e2e 测试框架是什么先搞懂核心价值如果你用过传统 E2E 测试如基于选择器和等待脚本的方案大概都体会过UI 一改测试就坏修复成本极高。e2e 的解法很直接目标即测试用agent.act(升级工作区到 Pro 套餐)这样一句人话描述步骤Agent 自己找按钮、点输入框AI 与确定性混合同一条测试里既能写 AI 步骤也能写expect(...)精确断言各取所长缓存省成本被后续断言验证过的 AI 步骤会被录制下来下次运行直接回放不再调用模型又快又省钱一份测试多端运行同一个测试文件可以跑在 Chromium、iOS 模拟器、Android 模拟器上。项目入口介绍可以读 README.md更完整的产品叙事在 docs/index.mdx。️ 项目结构总览一个 monorepo 如何分工e2e 采用 pnpm monorepo 组织工作区定义见 pnpm-workspace.yaml。顶层目录各司其职目录角色一句话说明packages/ 发布到 npm 的包核心 SDKe2e Web/移动端引擎等apps/️ 内部自研应用测试靶场 Web/移动端基准套件examples/ 可运行的示例项目Vite、Next.js、Expo、SwiftUI 各一份docs/ 官方文档站Mintlify 搭建.mdx即页面skills/ AI 编码代理技能随包发布e2e init时自动安装一个很妙的设计apps/不是给用户看的而是框架自测。比如 apps/testbed/ 是一个刻意做满各种刁钻场景下载、弹窗、iframe、上传的靶场应用用来验证 runner 的每个特性apps/web-benchmark/ 和 apps/mobile-benchmark/ 则收集了 shadow DOM、canvas、原生弹窗等高难度 UI场景作为 AI 能力的考场。 核心包解读packages/ 里藏着什么包源码位置职责e2epackages/e2e/SDK、测试运行器runner、CLI项目的绝对核心e2e-dev/webpackages/web/浏览器引擎通过 Playwright 驱动 Chromium / Firefox / WebKite2e-dev/mobilepackages/mobile/移动端引擎iOS 模拟器 Android 模拟器e2e-dev/githubpackages/github/把测试结果以 PR 评论形式回贴的 Reportere2e-dev/kernelpackages/kernel/Kernel 托管浏览器集成e2e-dev/easpackages/eas/EAS 托管模拟器集成e2e-dev/decisionpackages/decision/有界语义动作/断言的决策模型执行器几个新手容易忽略的细节契约即代码。项目没有单独的 API 规格文档公共 API 由构建产物dist/index.d.ts锁定线格式wire format由 packages/e2e/schema/ 下的 JSON Schema 锁定每个 schema 都配了一对合法 非法测试样例。这条规则写在 AGENTS.md 的开头是读懂全仓的第一把钥匙。引擎是可插拔的。核心包刻意不认识 browser、page 这些词AGENTS.md里明令 grep 零命中Web 和移动端引擎都通过公开的e2e/engine契约接入理论上任何人都可以自己写一个引擎。 代码导读runner、agent 与 engine 三大模块如果你愿意打开源码packages/e2e/src/ 下的目录名就是最好的导读地图src/run/—— 运行器核心调度器、并发 worker、重试、会话管理。测试怎么跑起来都在这里src/agent/—— AI Agent 本体act.ts 负责干活完成目标配套的 judgment 方法负责看屏幕断言、等待、提取step-cache.ts 实现验证过的步骤下次回放的缓存机制详见 docs/cache.mdxsrc/locator/—— 定位器引擎把getByRole这类查询编译成 AST 再执行src/expect/—— 断言体系带自动重试的轮询式expectsrc/oauth/—— 各家模型订阅的登录/取 token 流程npx e2e login命令就出自这里。想理解AI 到底如何一步步操作建议从 packages/e2e/src/agent/index.ts 入手顺藤摸到 executor 和 prompts比从 runner 入手更贴近AI 测试这个主题。 示例项目examples/ 从 0 到 1 跑通第一个测试想快速建立它能跑起来的信心examples/ 是最佳起点——四个开箱即用的完整项目各配一份确定性测试和一份 AI 测试示例技术栈说明with-vite/Vite React最轻量的起步with-next/Next.js服务端渲染场景with-expo/Expo (React Native)Android / iOSwith-swiftui/SwiftUI原生 iOS以 Next.js 示例为例配置只有十几个字声明 Agent 用哪个模型、目标 URL 和启动命令见 e2e.config.ts。而 AI 测试长这样节选自 agent.e2e.ts// Agent 自己判断该填哪个输入框、点哪个按钮 await agent.act(get the app to greet {name}, { params: { name: Grace } }); // 每一步 AI 操作都配一个不依赖模型的确定性检查 await expect(screen.getByRole(status)).toHaveText(Hello, Grace!);对照着看界面就一目了然——这正是示例应用跑起来后的样子纯确定性的对照测试在同目录的 greeting.e2e.ts两个文件并读就能体会AI 步骤 精确断言的组合思路。 官方文档与进阶入口docs/目录是 Mintlify 文档站的源码每个.mdx就是一个页面新手建议按这个顺序读docs/quickstart.mdx —— 一条命令npx e2e init完成初始化最省事的入门docs/goals.mdx —— 如何用自然语言写测试步骤AI 测试的灵魂docs/locators.mdx —— 定位器查询语法确定性测试的基础docs/agents.mdx 与 docs/models.mdx —— Agent 配置与模型选型docs/debugging.mdx —— 报告与调试测试失败时看什么。另外skills/e2e/SKILL.md 是官方发布的AI 编码代理技能——把它交给 Claude Code、Cursor 等工具后帮我加一个结账流程测试这类指令就能直接执行这是 e2e 与 AI 工作流结合的一个亮点。 新手导读路线3 步读完这个项目第 1 步10 分钟读 README.md docs/quickstart.mdx在examples/with-vite/里跑通第一个测试建立整体印象第 2 步1 小时对照本文的目录分工表浏览packages/e2e/src/的目录名和文件头注释重点精读src/agent/理解目标 → 观察 → 行动 → 断言的循环第 3 步进阶翻开 AGENTS.md 和 CONTRIBUTING.md了解契约锁定方式、安全不变量和基准测试方法——这份文档本身就是理解该项目工程文化的最好材料。写在最后e2e 把AI 的灵活与断言的确定装进了同一个测试文件再用回放缓存把成本压到最低。从examples/跑起沿着packages/e2e/src/读下去你会发现一个 AI 测试框架的骨架其实和传统 runner 并无二致——变化的只是屏幕另一端多了一位会看屏幕的 Agent。【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?