尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Midscene 完全指南:用自然语言做 E2E 测试,Web、安卓、iOS 一套 API 通吃

Midscene 完全指南:用自然语言做 E2E 测试,Web、安卓、iOS 一套 API 通吃 Midscene 完全指南用自然语言做 E2E 测试Web、安卓、iOS 一套 API 通吃【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene 是一个面向 E2E 测试的 GUI Agent你用自然语言描述操作目标它仅凭截图定位元素并执行点击、输入、断言覆盖 Web、Android、iOS、HarmonyOS 与桌面端。适合想摆脱选择器维护、又不想为每个平台重写测试的开发者和测试工程师。Midscene 长什么样只看截图不碰 DOM大多数 UI 自动化包括读 DOM 或无障碍树的 AI 工具都依赖页面结构而结构是脆弱的重构一改选择器就失效纯图标按钮、自定义控件、canvas对它不可见跨域 iframe 也够不着。Midscene 换了条路线——只拿截图给多模态模型看你说点击登录按钮它就在像素层面找到按钮并点下去。这带来四个实际好处UI 变了不用追着改选择器元素只要还看起来是那个按钮用例就能继续跑人眼能看到的它都能点无语义标注的元素、canvas、原生 App 都可以定位能断言视觉结果颜色、高亮、布局对不对都可以校验而不只是节点存在一次编写多平台复用同一套aiAct/aiQuery/aiAssertAPI浏览器和手机通吃Chrome 插件 Playground打开页面后第一次运行指令最快的上手路径是 Chrome 插件它是 Midscene 的 Web Playground零代码就能看到效果。在 Chrome 应用商店安装Midscene插件安装后浏览器右侧会出现 Midscene 侧边栏点击侧边栏设置图标把一套多模态模型配置含 API 地址、Key、模型名粘贴进去并保存打开任意网页在侧边栏输入自然语言指令并点击 Run侧边栏有三个入口对应三类能力Action规划并交互、Query提取结构化数据、Assert检查界面。比如输入点击登录按钮Midscene 会先截图理解页面再规划步骤、定位元素、完成点击整个过程你可以在页面上实时看到执行位置。再比如输入页面中的商品{name: string, price: number}[]它会直接把商品列表抽成结构化数据返回。从安装到第一次运行 YAML 脚本插件里验证过指令之后真正的自动化交给 CLI YAML 脚本。全局安装需要 Node.js 20.19 / 22.12 / 24npm i -g midscene/cli建一个bing-search.yaml每一步就是一句中文page: url: https://www.bing.com tasks: - name: 搜索天气 flow: - ai: 搜索 今日天气 - sleep: 3000 - aiAssert: 结果显示天气信息然后一条命令跑完midscene ./bing-search.yaml命令行会输出执行进度结束后在输出目录生成每步的可视化 HTML 报告——失败时打开报告能看到每一步的截图、规划和定位框而不是只看一行报错。场景一UI 频繁重构的 Web 测试遇到什么问题前端一周重构三次data-testid和 CSS 选择器跟着一起挂回归用例的维护成本比写用例还高。怎么解把用例写成用户视角。操作类步骤用aiAct如搜索耳机将第一件商品加入购物车并确认购物车数量变为 1Agent 会根据最新的界面状态自己决定步骤需要校验视觉效果时用aiAssert比如购物车中有一件商品并且页面显示了小计金额——连金额是否渲染出来都能断言。某次重构改掉了图标样式只要人眼还能认出是购物车用例不用动。场景二一条命令驱动真机跑安卓流程遇到什么问题App 测试想覆盖真机而不是模拟器又嫌 Appium 那套配置重。怎么解手机开 USB 调试、adb devices拿到设备号YAML 里换一下目标就行android: deviceId: s4ey59 tasks: - name: 地图导航 flow: - ai: 打开地图应用 - ai: 在搜索栏输入 杭州西湖然后点击搜索按钮 - ai: 点击第一个搜索结果进入详情页 - ai: 点击 路线 按钮进入路线规划页面 - ai: 点击 开始 按钮开始导航iOSWebDriverAgent、HarmonyOS、桌面端也是同样的写法只改脚本开头的 target 段。场景三批量回归时稳住偶发失败遇到什么问题大模型输出有波动单条脚本偶发失败几十个脚本串行跑一个挂全批次报废。怎么解CLI 把批量行为做成了参数常用组合midscene --files ./scripts/search-*.yaml --concurrent 4 --retry 2 --continue-on-error--retry 2表示失败脚本最多额外重试 2 次只重试失败的--continue-on-error让某个脚本挂了也继续跑后面的--concurrent 4控制并发。跑完看输出目录的index.json总结报告失败项一目了然。进阶模型配置与批量调优 ⚙️模型配置走.env文件放在 CLI 运行目录下不是 YAML 所在目录dotenv 约定不带export前缀MIDSCENE_MODEL_BASE_URLhttps://替换为你的模型服务地址/v1 MIDSCENE_MODEL_API_KEY替换为你的 API Key MIDSCENE_MODEL_NAME替换为你的模型名称 MIDSCENE_MODEL_FAMILY替换为你的模型系列其他两个对普通用户最有用的点脚本里引用环境变量${topic}语法可以在 YAML 正文里注入动态值同一份脚本不同环境跑不同数据配置文件化把files、concurrent、retry等写进 YAML 配置用midscene --config ./config.yaml跑CI 里不用拼长命令行和 Playwright、Puppeteer 一起用Midscene 不要求你换测试框架。把它装进现有 Playwright / Vitest / Puppeteer 工程创建 Agent 后就能混用——Playwright 负责稳定的导航和定位agent.aiAct(完成结账表单在下单前停止)处理那些结构多变、语义复杂的步骤。集成方式见仓库文档 apps/site/docs/zh/integrate-with-playwright.mdx。此外还有两个扩展方向Test RunnerBeta提供自然语言驱动的测试生命周期管理和并发隔离社区侧有 Python、Java SDK 和桥接模式复用桌面 Chrome 的登录态、插件与 Cookies 来跑脚本让人机协同式的自动化也能落地。去装上试一次回到开头那条路装插件 → 配模型 → 输一句点击登录按钮两分钟就能看到 Agent 在你眼前操作页面。跑通第一个 YAML 脚本后你会收获一份可以逐步回放的报告——下面是它回放一次 eBay 搜索流程时的样子【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表