ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Midscene 视觉驱动测试实战:与 Playwright 的对比和落地成本

Midscene 视觉驱动测试实战:与 Playwright 的对比和落地成本 Midscene 视觉驱动测试实战与 Playwright 的对比和落地成本【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene一个一百二十条用例的电商回归套件半天内通过率从 98% 掉到 54%。团队排查两天发现原因一次前端重构改了一组类名套件里几十个 DOM 选择器全部失明。这类失败的卡点在元素定位——正是视觉驱动测试要解的核心问题。本文拆解 Midscene 仅凭截图定位元素并执行断言的机制并与选择器驱动方案对比、核算落地成本。 它到底怎么工作的无选择器元素定位的完整调用链核心变化一句话元素坐标不再由人写死而由模型算出来这就是无选择器元素定位的原理。一条指令的调用链分三段。输入与处理截图进模型坐标出来你用一句话描述步骤例如在搜索框输入关键词并回车。Midscene 截取当前页面连同指令发给配置的多模态模型Qwen、Doubao、DeepSeek 等模型返回目标元素的包围盒坐标和一组操作。复合指令由aiAct以执行 → 观察 → 重规划循环推进默认上限 30 轮某一步失败时会重新观察截图并修正剩余步骤。输出Playwright 执行坐标报告记录过程坐标交给底层 Playwright 完成真实点击与输入交互后默认等待页面网络空闲waitForNetworkIdleTimeout默认 2000ms避免操作半加载的 DOM。每一步的截图、耗时与 token 消耗写入单文件 HTML 报告失败时不用翻日志直接看第几步的截图。仓库自带的 Playground 可以快速验证这条链路启动本地服务浏览器打开目标页面在左侧面板输入Click the search bar这类指令并点 Run即可看到页面逐步响应并生成报告。缓存重复执行不再调模型同一指令重复执行时Midscene 会把 AI 规划结果和元素 XPath仅 Web写入./midscene_run/cache下次命中即跳过模型失效时透明回退到模型并清掉旧缓存。官方文档给的样例单条指令耗时从 51 秒降到 28 秒。注意查询类断言aiQuery/aiAssert永不缓存详见 caching.mdx。⚖️ 横向对比把 Playwright AI 集成放进同一张表看维度纯 PlaywrightSeleniumAppium移动原生Midscene Playwright元素定位依据DOM 选择器DOM 选择器无障碍树截图 自然语言纯图标按钮 / canvas 元素需自写逻辑需自写逻辑部分可以可定位覆盖平台WebWebAndroid / iOSWeb Android / iOS / HarmonyOS / 桌面单次执行模型调用成本000按次计费见下方数据来源失败诊断产物文本日志文本日志文本日志 截图步骤级截图 HTML 报告成本数据来源项目官方 AppControlBench 报告60 个 iOS 任务Midscene 1.12.02026-08 执行Doubao Seed 2.1 Turbo 全程共 $1.56、单任务均值 52 秒Pass1 为 96.67%。怎么选如果页面结构稳定、只追求回归速度纯 Playwright 选择器足够不必引入模型依赖如果 UI 动态内容多、要操作 canvas 或纯图标按钮Playwright AI 集成的价值才会体现如果还要覆盖 Android / iOS 原生应用Midscene 用同一套 API 可达但要预留移动端桥接scrcpy / WDA的环境配置时间。 落地成本从自然语言用例到 CI 流水线先说要付出的学习曲线需要重新建立aiAct操作、aiQuery取数、aiAssert断言三类指令的心智模型并配置模型服务的 API Key。CI 改动量加一个midscene/web依赖、一个 fixture 扩展、一个 reporter超时要放宽官方示例直接设到 90 秒因为一条指令的模型往返天然慢于选择器。存量资产兼容不必整体重写稳定选择器断言原样保留只把 flaky 步骤换成自然语言用例步骤官方 integrate-with-playwright.mdx 也是这个策略。运行成本每次执行产生模型调用需计入 CI 预算——AppControlBench 样本里 60 个任务总花费 $1.56。再说要省的。以下数字为内部压测数据基于 3 人团队 / 40 个用例的回归集且被测 UI 变更频繁项目Before选择器驱动AfterMidscene 视觉驱动单用例编写时间约 4 小时约 40 分钟单失败调试时间1–2 小时靠手工重放截图约 20 分钟报告自带步骤级截图40 用例回归周期约 1 小时 人工分拣 flaky约 30 分钟缓存命中时最小可行落地路径配好模型 Key跑通官方 Playwright 示例挑一个 flaky 用例改写关键步骤为 aiAct开启只读缓存CI 里连跑三轮接入报告 reporter归档步骤截图观察一周再决定是否扩大范围 演进路线它现在能做什么还做不到什么它现在能做什么Web、Android、iOS、HarmonyOS、桌面端的纯视觉定位Playwright / Puppeteer 集成与独立 YAML 脚本执行缓存加速步骤级报告Bridge 模式让本地脚本附着到桌面 Chrome复用它的 cookies 与登录态适合需要登录环境的测试。它还做不到什么XPath 元素缓存仅限 Web 场景移动端每次仍依赖模型定位。新版 Test Runnermidscene/test与 Gherkin BDD 均为 Beta协议未稳定存在 breaking change 的可能。MCP server 包已下线最后一个支持版本是 1.9.8存量 MCP 集成需锁定版本或改用 Skills / CLI。执行速度受模型推理限制AppControlBench 样本中单任务均值 52–86 秒秒级回归场景不适用。社区在往哪走按最近三个 release 的 changelog 可验证v1.12 支持 DeepSeek V4 视觉模型、发布新版 Test RunnerBeta、报告增加耗时汇总v1.11 修复 HarmonyOS 启动目标解析、移动端清空输入等稳定性问题v1.10 新增 Gherkin BDD 脚本并正式下线 MCP。另外官方 changelog 已声明 Studio 桌面端的录制 → 脚本 → 回放工作流将在后续版本陆续开放。如果你的测试栈已有 Playwright 且 UI 变更频繁值得花一个下午按 fixture aiAct 跑通一次视觉驱动测试 POC如果页面以静态为主且选择器约定成熟先观望新版 Test Runner 的 1–2 个版本再说。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表