端到端测试工具集

tester-army/e2e 访问 GitHub ↗
🔤 TypeScript ★ 10499 ⑂ 0 weekly #6 (+3505) 抓取 2026-10-15

一句话简介

tester-army/e2e 是一个基于 TypeScript 的端到端测试项目,提供简洁易用的测试框架与工具,帮助开发者高效编写和运行端到端测试用例。

标签

  • 端到端测试
  • TypeScript
  • 测试自动化
  • QA工具
  • 开源框架

适用应用场景

  • 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…