e2e本地模型测试实战:免费用本地大模型跑AI E2E测试
【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e
e2e 本地模型测试指南来了:e2e 是面向 Web 和移动端的下一代 AI E2E 测试框架,你用一句自然语言描述目标,Agent 就能自动驱动应用完成操作,再用断言校验结果。本文带你免费接入本地大模型(如 Ollama),无需 API Key,就能完整跑通 AI E2E 测试,数据全程不出内网。
为什么选择本地大模型跑 E2E 测试?
用云端 API 跑 AI 测试要花钱、要传数据、还依赖网络。改用本地大模型后:
- 💰免费:模型跑在自己机器上,零调用费用,适合 CI 高频跑测
- 🔒隐私:截图、页面内容等测试数据不离开本机,满足合规要求
- ⚡离线:无网络也能跑,断网环境照样调试
e2e 的模型接入基于 AI SDK,官方支持三类方式:订阅、API Key、本地服务器,配置见 docs/models.mdx。没有 Agent 步骤的测试则完全不需要模型。
一键初始化:5分钟搭好测试项目
在你的应用目录下执行初始化命令,向导会帮你写好配置和示例测试:
npx e2e init选择引擎(Web 或 Mobile)和模型提供方后,框架自动生成e2e.config.ts和示例用例。完整步骤参考 docs/quickstart.mdx,仓库里还有 Vite、Next.js、Expo、SwiftUI 四个可直接运行的完整示例,位于 examples/ 目录。
下面这个 Vite 示例应用包含 3 个定位器测试和 2 个 Agent 测试,非常适合拿来练手:
其配置文件 examples/with-vite/e2e.config.ts 中agents.default.model就是模型挂载点,稍后我们把它替换成本地模型。
三种方式接入本地大模型
方式一:Ollama(推荐新手)
先在本机启动 Ollama 并拉取一个支持工具调用的模型,然后在配置中引入官方推荐的ollama-ai-provider-v2:
import { ollama } from 'ollama-ai-provider-v2'; const agent = { model: ollama('qwen3:4b') };将agent赋给agents.default即可,Ollama 默认端口无需额外配置。
方式二:任意 OpenAI 兼容端点
本地跑 vLLM、llama-server、LiteLLM 等服务时,用@ai-sdk/openai-compatible指到/v1/chat/completions端点:
import { createOpenAICompatible } from '@ai-sdk/openai-compatible'; const local = createOpenAICompatible({ name: 'local', baseURL: 'http://127.0.0.1:11434/v1', }); const agent = { model: local.chatModel('your-model-id') };方式三:LM Studio
图形化管理本地模型的 LM Studio 同样走 OpenAI 兼容协议,把baseURL指向http://localhost:1234/v1即可。
三种方式的完整代码片段都收录在 docs/models.mdx 的"Local or self-hosted"一节,以及 docs/snippets/model-provider.jsx 中。
用本地模型跑一个 Agent 测试
测试代码就是一句自然语言目标加一次断言:
test('visitor signs up for a trial', async ({ app, agent, screen }) => { await app.open('/'); await agent.act('sign up for a free trial as Ada Lovelace'); await expect(screen.getByRole('status')).toContainText('Welcome'); });运行npx e2e run后有两点值得注意:
- 回放缓存:Agent 步骤成功后会记录操作序列,下次运行直接回放,不再调用模型——本地模型只在首次或应用变化时工作,成本进一步降低
- 模型要求:内置 Agent 要求模型支持工具调用和图像,请在 Ollama 中选择具备这两种能力的小模型(4B 以上更稳)
进阶:用决策模型跑低配本地环境
如果机器配置有限,可以试试 packages/decision/ 包提供的决策模型执行器:它用"选择题"代替自由生成,每步只问模型"该点哪个元素",由一个小文本模型负责填写字段内容。两个模型都可以指向本地服务,适合用 1B~4B 的小模型驱动有界操作和断言,详见 docs/decision-models.mdx。
排坑清单:本地模型常见问题
| 现象 | 排查建议 |
|---|---|
MODEL_PROVIDER_FAILED | 确认 Ollama/服务已启动,端口可访问 |
MODEL_UNAVAILABLE | 检查是否安装了ai包,agents.default.model是否为模型实例 |
INVALID_CONFIG | model必须是模型实例,不能是字符串 |
| 步骤超时 | 本地模型较慢时,调小agents.<name>.maxObservationBytes缩小屏幕观测,或换更快的模型 |
错误码对照表完整收录在 docs/models.mdx 的"What fails, and where"小节;模型调用主流程源码可浏览 packages/e2e/src/agent/model/ 了解细节。
总结
e2e 本地模型测试的核心路径非常短:npx e2e init初始化 → 把agents.default.model换成 Ollama 或 OpenAI 兼容端点 →npx e2e run。配合回放缓存机制,本地小模型足以承担日常回归测试,费用为零、数据不出网。想动手试试,克隆仓库即可开始:
git clone https://gitcode.com/GitHub_Trending/e2e6/e2e更多最佳实践参见 docs/quickstart.mdx、docs/models.mdx 与 docs/debugging.mdx。
【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考