news 2026/9/12 12:28:14

Midscene.js:基于视觉大模型的跨端 UI 自动化测试框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Midscene.js:基于视觉大模型的跨端 UI 自动化测试框架

Midscene.js:基于视觉大模型的跨端 UI 自动化测试框架

【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene

Midscene.js 是面向 E2E 测试的GUI Agent框架:它不解析 DOM,而是通过视觉大模型读取界面截图,用自然语言完成点击、输入等 UI 自动化操作,并提供断言、数据提取与可交互 HTML 报告。同一套 Agent API 覆盖 Web、Android、iOS、HarmonyOS 与桌面应用,适合把 UI 回归测试从选择器维护中解耦,或接入现有 Playwright 测试流水线。

快速跑通

最短路径是把 Midscene 挂到已有的 Playwright 页面上,三步以内跑起来:

  1. 安装依赖并配置模型。模型用环境变量指定,指向任一多模态模型服务即可:
npm i @midscene/web playwright
  1. 在已有的 Playwrightpage上创建 Agent,执行一条流程:
import { PlaywrightAgent } from '@midscene/web/playwright'; const agent = new PlaywrightAgent(page); await agent.aiAct('搜索耳机,并把结果过滤到 100 美元以下'); await agent.aiWaitFor('过滤后的搜索结果已展示'); await agent.aiAssert('搜索结果中每件商品的价格都低于 100 美元');
  1. 预期输出:aiAct把自然语言流程拆成具体动作自动执行,aiWaitFor等待界面状态出现,aiAssert在断言不成立时抛出错误。以MIDSCENE_REPORT=true运行时会在本地生成 HTML 报告,浏览器打开即可逐步查看截图、动作序列与断言结果。

能力边界

能做

  • 以截图外观与位置定位元素,不依赖选择器:纯图标按钮、canvas 绘制区域、跨域 iframe 内部元素都能直接操作。
  • 同一套 Agent API(aiActaiTapaiInputaiQueryaiAssert)覆盖 Web、Android、iOS、HarmonyOS 与桌面端,跨端迁移只换设备对象。
  • 自然语言断言与结构化数据提取:aiAssert校验视觉呈现,aiQuery按 schema 提取页面信息。
  • 可作为 Playwright / Puppeteer 的补充层接入现有测试框架,也支持用 YAML 编写用例。

暂时做不好

  • 每一步都经过视觉模型推理,单步延迟和 API 成本无法消除;离线场景只能自托管开源模型,效果通常弱于云端旗舰模型。
  • 非结构化界面(低分辨率远程画面、复杂 Canvas 游戏、频繁变化的动态广告位)识别准确率下降,需要配合等待与重试。
  • 视觉断言只覆盖屏幕上可见的部分,接口与后端状态的正确性仍要靠传统断言兜底。
  • 超长流程一次给完容易漂移,拆成多个短aiAct更稳定。

典型工作流

前端重构后的 UI 回归。背景:电商搜索、筛选、加购等流程每次发版都要回归,选择器脚本随重构频繁失效。思路:用aiAct以自然语言描述完整购物流程,断言点写成"价格区间、选中态高亮"这类视觉预期,挂到现有 Playwright fixture 上;失败时打开 HTML 报告核对 AI 每一步看到的截图,判断是识别问题还是真实缺陷。验证点:一次 UI 调整后,修改一条指令即可恢复,不需要批量修选择器。

桌面与远程屏幕操作。背景:部分桌面应用或 RDP 远程会话没有可访问的 DOM,传统工具只能录制坐标,维护困难。思路:走桌面平台适配层,以屏幕截图为唯一输入,把"打开设置、切换开关"等操作写成自然语言指令;敏感操作保留人工确认环节。验证点:远程画面上操作可闭环完成,报告中每一步截图可复核。

跨端一致性验证。背景:同一业务流程在 Web 与 Android 上分别实现,需要确认视觉与数据表现一致。思路:同一组指令分别在PlaywrightAgentAndroidAgent上执行,用aiQuery按同一 schema 提取关键数据做比对;端上差异(输入法、安全页面、截图策略)作为显式失败项记录。验证点:两端提取的数据一致,差异能被报告定位到具体步骤。

内部协作机制

核心推理循环位于 packages/core/src/agent/:Agent 截图后交给视觉模型做规划,把规划结果映射为点击、输入等动作,再对执行结果做断言,循环直至流程完成;报告生成与元素缓存也挂在这一层。各平台适配层只负责提供"截图 + 执行动作"两类能力,例如 packages/web-integration/src/ 基于 Playwright / Puppeteer 页面对象实现该契约,Android、iOS 与桌面包则分别以 adb、WDA、系统输入通道实现同样的接口。平台层不感知模型细节,core 层也不感知平台差异,新端接入只需补齐截图与动作能力。

生产落地要点

  1. 稳定性兜底:在aiAssert/aiWaitFor外层加有限次重试;对加载中的页面先用aiWaitFor等待目标状态再执行断言,避免把渲染未完成误判为失败。
  2. 模型选型:从一个模型起步;对成本或数据出境敏感的项目自托管开源多模态模型,精度要求高的关键步骤再考虑更强模型,按步骤拆分而不是全局切换。
  3. CI 集成:把 Midscene 作为 Playwright 的一个测试步骤运行,MIDSCENE_REPORT=true开启报告,将 HTML 报告归档为构建产物,断言异常直接作为流水线失败信号。
  4. 缓存与耗时:开启MIDSCENE_CACHE后,相同界面状态下可复用已识别的元素位置,重复执行耗时明显下降;缓存以界面状态为键,UI 变更后自动失效,不需要手工清理。

相关资源

  • 中文文档:apps/site/docs/zh/(快速开始、平台接入、API 参考)
  • 英文文档:apps/site/docs/en/
  • 核心推理与报告实现:packages/core/src/
  • Web 平台适配(Playwright / Puppeteer / 桥接模式):packages/web-integration/src/
  • 社区渠道:Discord 与飞书交流群,入口说明见 README.md 的 Community 部分

【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 12:26:33

5分钟跑通视觉小说翻译:LunaTranslator 从克隆到翻译首句

5分钟跑通视觉小说翻译:LunaTranslator 从克隆到翻译首句 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator 打开一款日版视觉小说,满屏的假名和汉字…

作者头像 李华
网站建设 2026/9/12 12:26:21

AI无痕文字替换:Python实现智能图片文字修改

1. 项目概述:当图片文字修改遇上AI大模型最近在帮朋友处理一份产品说明书时遇到个棘手问题——PDF文档里的技术参数需要更新,但原始设计文件早已丢失。传统PS修图不仅效率低下,边缘还总留有修补痕迹。这让我开始思考:在AI大模型技…

作者头像 李华
网站建设 2026/9/12 12:25:43

Upscayl批量放大完整指南:设置、参数与常见问题

Upscayl批量放大完整指南:设置、参数与常见问题 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl Upscayl是一款跨L…

作者头像 李华
网站建设 2026/9/12 12:24:53

AI辅助LaTeX写作工具评测与使用技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 12:23:41

AI降重与学术写作优化:从学生腔到专业表达

1. 从"学生腔"到"学术范":AI降重与语言质量提升的双重挑战 学术写作是每个研究者必须掌握的核心技能,但许多人在从学生向学者转型的过程中,常常陷入"学生腔"的表达困境。所谓"学生腔",通…

作者头像 李华