端到端测试工具集
tester-army/e2e
访问 GitHub ↗
一句话简介
tester-army/e2e 是一个基于 TypeScript 的端到端测试项目,提供简洁易用的测试框架与工具,帮助开发者高效编写和运行端到端测试用例。
标签
适用应用场景
- Web应用端到端测试
- API集成测试
- CI/CD流水线自动化测试
- 回归测试验证
README 中文摘要
项目概述
e2e 是 TesterArmy 开源的端到端测试框架,面向 Web 与移动应用。开发者使用自然语言描述测试目标,由 AI 智能体驱动应用完成操作;随后用定位器(locator)和断言(assertion)校验结果。两种方式写在同一个测试文件中,既能享受智能体的灵活性,又能保留断言的确定性。
核心特性
- 自然语言驱动:调用
agent.act()描述意图,调用agent.assert()验证状态。 - 录制回放:智能体步骤的执行轨迹会被记录,下次重放时无需再次调用模型,直至应用发生变更。
- 零模型开销:纯断言测试完全不涉及模型调用。
- 模型无关:可接入自备订阅、API Key 或本地模型。
示例代码
// tests/checkout.e2e.ts
import { test, expect } from 'e2e';
test('用户升级到 Pro 套餐', async ({ app, agent, screen }) => {
await app.open('/settings/billing');
// 由智能体执行自然语言动作
await agent.act('将工作区升级到 Pro 套餐');
// 由智能体校验语义结果
await agent.assert('发票预览显示按比例计算的金额');
// 使用定位器进行确定性断言
await expect(screen.getByRole('status')).toContainText('Pro');
});
快速上手
执行初始化命令:
npx e2e init
交互式问答会询问引擎类型(Web 或 Mobile)和模型供应商,然后生成配置文件和示例测试。官方 quickstart 文档 涵盖后续步骤。
examples/ 目录提供了可直接运行的完整项目:Vite、Next.js、Astro、Expo、SwiftUI、Jetpack Compose、Kotlin Multiplatform、Flutter,每个项目都附带通过测试套件。
包结构
| 包名 | 职责 |
|---|---|
e2e |
SDK、Runner 和 CLI |
@e2e-dev/web |
浏览器引擎,基于 Playwright 支持 Chromium、Firefox、WebKit |
@e2e-dev/mobile |
iOS 与 Android 引擎,通过 agent-device 连接模拟器 |
@e2e-dev/github |
Reporter,将结果以 PR 评论形式发布 |
@e2e-dev/kernel |
Kernel 托管浏览器,为 web 引擎提供运行环境 |
@e2e-dev/limrun |
Limrun 托管 iOS 模拟器和 Android 模拟器 |
@e2e-dev/eas |
EAS Simulators 托管 iOS 模拟器和 Android 模拟器 |
@e2e-dev/smol |
smol machines 浏览器,默认每次尝试在 Chromium microVM 中分支 |
@e2e-dev/decision |
决策模型执行器,用于有界语义动作与断言 |
文档
完整文档位于 e2e.tester.army/docs。e2e 包自带文档副本,位于 node_modules/e2e/docs,便于编码智能体离线阅读。
遥测
CLI 默认发送匿名使用数据,包括运行的命令、引擎、失败位置,不含测试内容、应用内容或凭据。可通过以下方式关闭:
npx e2e telemetry disable
或设置环境变量 E2E_TELEMETRY_DISABLED=1。
状态说明
e2e 正在积极开发中,尚未达到 1.0 版本。API 与配置仍可能在 minor 版本之间发生变更。
摘要更新于 2026-10-13 01:16:21
· 原文 5170 字符
· md5 4cd8d690102b…