e2e
e2e 是一个面向 Web 和移动应用的端到端(e2e)测试框架。用自然语言描述一个目标,agent 会驱动应用达成它,并在同一个测试中用 locator 和断言检查结果。
// 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');
});
会被后续断言验证的 agent 步骤会记录其操作,下一次运行时无需调用模型即可回放这些操作,直到应用发生变化。不含 agent 步骤的测试无需任何模型。可自带订阅、API key 或本地模型。
快速开始
npx e2e init
init 会询问引擎(web 或 mobile)以及模型提供商,然后生成一份配置和一个示例测试。其余内容请参阅快速入门。
要查看在您的技术栈中已完成的完整配置,请打开 examples/:Vite、Next.js、Expo 和 SwiftUI,每个都是独立项目,且测试套件全部通过。
包
| 包 | 功能 |
|---|---|
e2e | SDK、运行器和 CLI。 |
@e2e-dev/web | 浏览器引擎:通过 Playwright 支持 Chromium、Firefox 和 WebKit。 |
@e2e-dev/mobile | iOS 和 Android 引擎:通过 agent-device 支持模拟器和仿真器。 |
@e2e-dev/github | 将结果以 pull request 评论形式发布的报告器。 |
@e2e-dev/kernel | 为 web 引擎提供 Kernel 托管浏览器。 |
@e2e-dev/eas | 为移动引擎提供 EAS Simulators 托管的 iOS 模拟器和 Android 仿真器。 |
@e2e-dev/decision | 用于有界语义操作和断言的决策模型执行器。 |
文档
e2e.tester.army/docs。e2e 包随附全部文档页面,编码 agent 可以在 node_modules/e2e/docs 中离线阅读。
参与贡献
参见 CONTRIBUTING.md。有问题请前往 Discord。
安全
请勿为安全漏洞创建公开 issue。请遵循 SECURITY.md 并报告至 security@tester.army。
遥测
CLI 会发送匿名使用数据,例如运行了哪些命令和引擎、运行在何处失败,但不会包含测试内容、应用内容或凭据。可通过 npx e2e telemetry disable 或 E2E_TELEMETRY_DISABLED=1 关闭遥测。遥测文档列出了所有字段。
状态
[!NOTE] e2e 正处于迈向 1.0 的积极开发阶段。API 和配置在次版本之间仍可能变化。
由 TesterArmy 打造
e2e 由 TesterArmy 构建,这是一个 agentic 测试平台,可在每次 pull request 或按计划对 Web 和移动应用运行自然语言测试。
Apache-2.0。
