如何在e2e测试中混合AI智能体与确定性断言3步搞定完整指南【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2ee2e是一个面向 Web 与移动端的下一代端到端测试框架用自然语言描述测试目标AI 智能体自动驱动应用完成操作再在同一测试里用传统定位器断言验证结果。本文将带你掌握混合 e2e 测试的最佳实践——既享受 AI 智能体的灵活性又保留确定性断言的稳定性与零成本。为什么要把两者混在一个测试里纯 AI 测试和纯脚本测试各有一半短板方案优点短板只用 AI 智能体界面改版后仍能用每次运行都要调模型贵且偶发抖动只用定位器断言快、稳、零成本UI 一改动脚本就大面积失败e2e 的设计思路是分工协作agent.act(目标)—— 把怎么做交给模型适合复杂、易变的多步操作登录、结账、填表expect(screen.getByRole(...))—— 把结果对不对交给定位器完全不经过模型毫秒级且结果确定agent.assert(描述)—— 只读判断型断言适合布局正常没有遮挡这类无法用精确文本表达的检查。官方文档一句话概括了这个原则docs/goals.mdx —— A test can freely mix both一个测试可以自由混用两者。核心玩法agent 负责做断言负责验以仓库自带的 Vite 示例项目为例整个流程只有 3 步。下面是官方示例 examples/with-vite/tests/agent.e2e.ts 的核心片段test(the agent gets a greeting, { skip }, async ({ app, agent, screen }) { await app.open(/); // ① AI 智能体自己判断该填哪个输入框、点哪个按钮 await agent.act(get the app to greet {name}, { params: { name: Grace } }); // ② 确定性断言精确文本检查不调用任何模型 await expect(screen.getByRole(status)).toHaveText(Hello, Grace!); // ③ AI 断言可选用人的眼光再确认一次 await agent.assert(the app greets Grace by name); });对应的演示应用页面长这样三个角色各司其职agent.act只描述目标让应用问候 Grace具体操作顺序由模型决定。输入值通过params传入避免把测试数据拼进指令文本expect定位器断言检查精确值如Hello, Grace!它自动重试直到通过或超时且不产生任何模型调用agent.assert作为兜底语义层验证那些难以写成精确匹配的结果比如整体观感、错误提示是否友好。 小贴士官方建议在每个agent.act后面紧跟一次验证见 docs/cache.mdxFollow each act with a check of its outcome这不仅是好习惯还直接决定缓存是否生效下一节。稳定性与成本回放缓存是关键加分项混合写法的隐藏福利是replay cache回放缓存某个agent.act步骤执行成功后若其后紧跟的断言通过了验证运行器会把这步的完整操作序列记录下来下次运行时直接回放这些操作零模型调用成本和速度等同于纯脚本测试一旦 UI 变了控件找不到或终态不匹配智能体会从当前屏幕自动接管跑完后再重新录制。运行报告里会给出直观统计AI 4.1k tokens · 2 model calls · anthropic/claude-sonnet-4.5 Cache 4 replayed · 1 handed off · 1 missed也就是说首跑用 AI之后绝大多数运行像确定性测试一样跑而 UI 漂移时 AI 又随时补位。断言类调用assert/waitFor/extract则始终实时运行保证验证永不走缓存。如果想在 CI 上更严格地防止陈旧录制被静默跳过可以加上--strict-cache参数录制失效的步骤会直接以REPLAY_STALE失败而不是悄悄付费重跑模型。实战建议清单✅每个act只给一个目标——界面内的操作顺序交给模型目标之间的顺序由你控制 ✅指令像说话一样写优先使用界面上的原始文案 ✅精确值检查一律用expect把模型调用留给真正模糊的判断 ✅密码等敏感值用Secret参数传入模型永远看不到明文安全模型见 docs/agent-steps.mdx ✅每步act后紧跟一次验证断言让回放缓存有验收依据 ✅ 快速上手用npx e2e init生成配置和示例测试完整教程见 docs/quickstart.mdx。延伸阅读混合策略入门docs/goals.mdxagent.act 与目标化写法断言全家桶docs/assertions.mdxassert/waitFor/extract与定位器断言智能体步骤原理docs/agent-steps.mdx模型看到什么、步骤如何结束、成本构成回放缓存详解docs/cache.mdx可运行示例Vite 版 examples/with-vite/tests/agent.e2e.ts、Next.js 版 examples/with-next/tests/greeting.e2e.ts一句话总结让 AI 智能体负责像人一样操作让确定性断言负责像测试一样验证再配合回放缓存把成本压到最低——这就是 e2e 混合测试的核心配方。【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考