ByteNoteByteNote
用自然语言写 e2e 测试,agent 自己找路点过去
字

字节笔记本

2026年10月4日 · 约 3 分钟读完

用自然语言写 e2e 测试,agent 自己找路点过去

API中转
¥120

端到端测试最痛的部分从来不是断言,而是把「用户会怎么走」翻译成一串选择器。GitHub 日榜新科第一 tester-army/e2e 给出的方案是把找路这件事交给 agent:你用自然语言描述目标,agent 驱动应用走到那里,断言仍用标准的定位器与 expect 写法。仓库 2.5k stars(日增 344),Apache 2.0 协议,TypeScript 单仓多包。

e2e 仓库卡片

机制:开路一次,回放无数次

它最聪明的设计是录制与回放:agent 第一次执行目标时把动作记录下来,之后每次运行直接重放,完全不调用模型;直到应用改版、重放失败,才让 agent 重新找路。纯断言、不含 agent 步骤的测试则从头到尾不需要模型。模型完全自便,订阅、API key、本地模型都行。Web 引擎基于 Playwright 的 Chromium、Firefox、WebKit 三内核,移动端接 iOS 与安卓模拟器。

代码长什么样

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.act 接自然语言,标准断言接定位器,两种范式在同一个测试里各司其职。初始化只要 npx e2e init。

agent 开路与回放机制图解

生态与现状

包体系拆得细:e2e 主包带 SDK、运行器与 CLI,@e2e-dev/web 与 mobile 是两个引擎,github 包做 PR 评论报告,kernel 与 eas 提供托管浏览器和托管模拟器,decision 包接决策模型执行器。文档随 npm 包离线分发,coding agent 断网也能查。要如实提醒:项目 pre-1.0,官方明说次版本之间 API 与配置还会变,现在上生产要做好锁版本的心理准备。与站内刚写过的 ARTEMIS 对照着看很有意思:一个让 agent 操作真机做移动端验证,一个让 agent 在 Web 与跨端测试里找路,测试自动化这条线正在被 agent 从两头改写。

相关文章

分享: