SuperAPI AI 工具集

vitest-midscene-e2e

测试与质量

查看项目

更新于 10-16 07:22

技能介绍

用途:把 Vitest 与 Midscene 结合,用 AI 驱动的自然语言方式做跨平台 UI 端到端测试。Vitest 负责 describe/it/expect/hooks 等测试组织、断言与生命周期;Midscene 负责 UI 自动化,通过自然语言与界面元素交互,避免脆弱的 CSS 选择器。

支持平台:Web 使用 WebTest(Playwright Chromium),提供 ctx.agent 与 ctx.page;Android 使用 AndroidTest(ADB + scrcpy),仅提供 ctx.agent;iOS 使用 IOSTest(WebDriverAgent),仅提供 ctx.agent。

主要能力与用法:先运行 bash scripts/clone-boilerplate.sh 克隆样板工程,样板位于 ~/.midscene/boilerplate/vitest-all-platforms-demo/,作为项目结构、配置、平台上下文类与测试约定的参考。对比当前项目,若缺失内容,先询问用户需要哪些平台,再按样板补齐,只包含所需平台文件,不覆盖已有配置;若 .env 不存在,从样板复制 .env.example 为 .env 并提示用户填写环境变量。写测试前需阅读 Midscene Agent API 规则。

核心 API 为 aiAct(taskPrompt, opt?),所有方法返回 Promise。强制规则:用户用自然语言描述 UI 操作或状态确认时,必须直接用 aiAct 实现,不要拆解为 aiTap/aiInput/aiAssert 等细粒度 API;断言、数据提取与等待也通过 aiAct 完成。任务提示过长或跨多个阶段时,按页面或阶段边界拆成多次 aiAct 调用。Web 端提示涉及上传文件时,需显式传入 fileChooserAllowedDir,并指向包含该用例夹具的最小目录,提示中按相对路径引用文件。aiAction 已废弃,应改用 aiAct 或 ai。

配置:可通过 setup() 的 agentOptions.aiActionContext 传入系统提示,定义 AI 角色与专长,例如“You are a Web UI testing expert.”;具体操作指令应写在 aiAct 中,而非 aiActionContext。

常见错误:定位描述含糊(如只说 button),应写明位置与外观;使用已废弃的 aiAction;多元素目标未指定行或位置。

限制与排查:运行测试前需安装依赖并配置 .env;调试失败可查看 troubleshooting.md。更多 API 可查阅 node_modules/@midscene/web、@midscene/android、@midscene/ios 的类型定义与源码,或下载 https://midscenejs.com/llms.txt 后用 grep 搜索。