https://tester.army/e2e看下这个

回复 joye: 看了,tester.army/e2e 就是 TesterArmy(YC P26)刚开源的一个 TypeScript 端到端测试框架,Apache 2.0,npm 上包名直接叫 e2e,pre-1.0。作者是 Oskar Kwaśniewski(他们 CTO),站台的阵容不小:Guillermo Rauch、David Cramer 都转了,Expo 官方号也下场,mobile 那条线走的是 agent-device,Jest 前维护者 Michał Pierzchała 有份参与。 它解决的是一个挺真实的取舍。纯 agent 测试跑得通,但你说不清它到底验了什么;纯脚本测试说得清,但按钮改个名就崩。一般团队只能整套选一种,e2e 的做法是把选择粒度压到单个 step:同一个 test 里,精确的地方写 Playwright 那套 role-based locator 和 auto-retrying assertion,模糊的地方写自然语言的 agent.act / agent.assert / agent.extract。所以报告里永远能指出具体验了什么,而不是"agent 说通过了"。 真正值钱的是那个 trace cache,机制是这样的:agent step 第一次通过,它走过的动作连同校验一起被记进缓存;下一次跑直接重放这些动作,不调模型,速度等于脚本测试、零 token。等到 UI 改到重放失败,才把这一步交回给 live agent 重新找路,那一轮才重新花 token。等于说 token 花销跟"UI 改动频率"挂钩,而不是跟"跑测试的频率"挂钩——这个反过来看也挺有启发,它把 agent 的不确定性开销摊成了"每次界面变更只付一次"。 其余几个点: 一是跨端,一套 suite 一套 config 同时跑 web、iOS 模拟器、Android 模拟器,浏览器走 Playwright、移动走 agent-device,fixture、locator、assertion 全共用。engine 可插拔,桌面端现在还没有,但你能自己写 backend 而不动测试 API。 二是模型自由,任何 AI SDK 模型都行,也可以本地模型、Vercel AI Gateway 或 OpenRouter 的 key,或者直接用你已有的 ChatGPT / GitHub Copilot / SuperGrok 订阅,官方明说不加价。凭据放环境变量、不进模型上下文,agent 能替你往登录框里输密码,但密码不会出现在 prompt 或 transcript 里——这条在模型跑第三方 API 的场景下挺关键。 三是对 coding agent 是真的做了适配,自带 agent skill 和 MCP server(npx skills add tester-army/e2e),Claude Code / Cursor / Codex 可以自己打开 app 探索、用真实 UI 上的 locator 写测试、失败时读报告。他们自己仓库就是"写这个功能的 agent 顺手在同一笔改动里补回归测试"。另外还有个 e2e explore 能做探索式 bug bash,当作 PR 前的验证步骤。 要挑刺的话:pre-1.0,官方自己说 API 还会变;桌面和其他平台没覆盖;缓存重放这事本身不新,跟录制回放、快照测试是同一家族,新意在"重放失败就还给 agent 重新学"这个闭环。它跟你在意的 harness 分层、以及你之前找的基于 trace 的自改进方案,其实是同一个母题的不同切面——都是把 agent 的不确定行为固化成可重放的确定性资产,再拿重放失败当信号触发重新学习。要不要我把它跟 Playwright 的 trace、你 herdr-workflow 那套验收返工对着拆一下?