开始使用:桌面端 · Vitest · 模型 API Key
本页是在桌面端上使用 Vitest、通过模型 API Key 接入模型的配置步骤。如需其他组合,请修改下方的选择,或查看全部配置路径。
第 1 步
安装 Node.js
安装 Node.js ^20.19.0 || ^22.12.0 || >=24.0.0,并确认终端中可以执行 node -v。
下文命令使用 pnpm。如果尚未安装,请运行 npm install -g pnpm。
第 2 步
授予桌面系统权限
- macOS:需要为启动 Playground 或运行脚本的终端 / IDE(如 Terminal、iTerm2、VS Code、Cursor、WebStorm 等)授予两项独立的系统权限:
- 辅助功能权限(用于控制鼠标与键盘):前往「系统设置 > 隐私与安全性 > 辅助功能」开启对应应用的开关(详见 nut.js macOS 配置说明)。
- 屏幕录制权限(用于截取桌面画面):前往「系统设置 > 隐私与安全性 > 屏幕录制」开启对应应用的开关。授权后请完全退出并重启该终端或 IDE,再启动 Playground。
- Windows:操作常规权限的桌面程序无需额外配置。但受 Windows 用户界面特权隔离(UIPI)机制限制,未提权的普通进程无法向「以管理员身份运行」的高权限窗口注入鼠标点击或按键事件(光标仍能移动到目标位置,但点击和按键会被系统静默丢弃)。建议优先以普通权限启动被测程序;若被测程序必须以管理员身份运行,请同样以管理员身份启动运行 Midscene 的终端或 Node.js 进程(详见下方常见问题)。
- Linux(图形桌面):需安装 ImageMagick 以提供截图能力。
- Linux(无头服务器 / CI 环境):在没有物理显示器的 Linux 服务器(如 GitHub Actions)上运行时,需安装 Xvfb 与 ImageMagick,并开启无头(Headless)模式自动创建虚拟显示器:
使用 Xvfb 时,请确保被测应用同样启动在该虚拟显示器环境中(本机带有物理显示器时无需开启此项)。
如需通过 RDP 控制远程 Windows 桌面,请参阅桌面端环境配置。
第 3 步
配置模型
在下方选择一个模型,它的配置包含四项。点击获取 API Key到服务商创建 API Key,再用它替换 MIDSCENE_MODEL_API_KEY 中的 ......。
其他版本与使用说明请参阅豆包 Seed 系列。
各模型的差异请参阅模型选择指南。UI-TARS 等兼容模型请参阅使用模型 API Key。
在项目目录中,把这四项配置写入 .env 文件。如果还没有项目,请先新建一个目录并在其中运行 pnpm init。
第 4 步
搭建项目
在 .env 所在的项目目录中,验证模型配置:
如果验证失败,请参阅验证模型连接。
安装依赖
配置 Vitest
新建 vitest.config.ts。如果项目已在使用 Vitest,可以将设备测试配置单独保存为 vitest.device.config.ts,运行时通过 --config vitest.device.config.ts 指定,以免影响现有的单元测试配置。
由于模型调用和设备连接耗时较长,请根据实际用例适当调大 testTimeout 与 hookTimeout。在共享同一台设备时,需关闭文件级并行(fileParallelism: false)并保持用例串行执行(sequence.concurrent: false),同时避免在代码中调用 test.concurrent 或 describe.concurrent。相关配置项详见 Vitest 的 fileParallelism、testTimeout 和 hookTimeout 文档。
第 5 步
编写测试
新建 e2e/settings.test.ts,在 beforeEach 中为每个用例创建新的 Agent,并在 afterEach 中销毁:
运行前,打开系统设置应用,将可滚动的设置页面置于前台,并在测试期间保持可见。权限和连接参数详见桌面端 SDK 文档。
dotenv/config 用于从项目的 .env 文件加载模型配置(Playground 中的配置不会自动同步到测试进程)。
当 aiAssert 的断言未通过时,会直接抛出错误,Vitest 随即将其所在用例标记为失败,并继续执行 afterEach 销毁 Agent。你也可以用 aiQuery 等方法提取界面数据,再交给 Vitest 的 expect 进行校验。更多交互与提取方法见 Agent API 参考。
第 6 步

