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

资讯详情

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

Maestro AI 功能完全解析:3 个核心能力与实战示例

Maestro AI 功能完全解析:3 个核心能力与实战示例 Maestro AI 功能完全解析3 个核心能力与实战示例【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro发版前逐屏目检 UI靠人眼找错位、找截断动态生成的金额、订单号又没法用固定文本断言。这两类问题都绕不开看屏幕这件事。Maestro 的 AI 能力把看交给视觉大模型提供 UI 缺陷自动检测、自然语言 AI 断言、AI 文本提取三个核心能力直接写进 YAML 脚本即可。能力全景三个能力共享同一条链路截屏 → 上传视觉模型 → 返回结构化结论区别只在问什么、拿什么。能力YAML 命令输入输出典型用途UI 缺陷检测assertNoDefectsWithAI屏幕截图缺陷列表类别理由发版前视觉回归自然语言断言assertWithAI截图一句判断是否成立理由无法定位元素的模糊校验AI 文本提取extractTextWithAI截图查询一段文本抓动态金额/单号边界先说清三者都走云端视觉模型依赖网络与密钥不适合完全离线或强隐私环境。密钥分两类——flow 引擎用MAESTRO_CLOUD_API_KEYmaestro-ai 演示程序用MAESTRO_CLI_AI_KEY。UI 缺陷自动检测让 AI 当挑错的眼睛它是怎么工作的数据流很短Orchestra.kt 里assertNoDefectsWithAICommand先takeScreenshot(compressedfalse)拿到原始字节再交给 IAPredictionEngine.kt 定义的findDefects接口。该接口委托给CloudAIPredictionEngine最终由 Prediction.kt 打包成请求经 ApiClient.kt 发到/v2/find-defects端点。返回的Defect只有两个字段category缺陷类别与reasoning判定理由。只要列表非空引擎就抛AssertionFailure把理由写进调试产物。什么时候该用它发版前对关键页面做视觉回归替代人工逐屏比对换机型、换分辨率后检查布局错位、文本截断检查深色模式、多语言下的排版是否破版作为流水线最后一道视觉闸门发现缺陷即失败最小可跑示例# 启动并等动画结束让 AI 检查当前屏是否有视觉缺陷 - launchApp: com.example.app - waitForAnimationToEnd - assertNoDefectsWithAI: optional: false # 发现缺陷即判定失败便于 CI 阻断 label: 首页视觉检查自然语言 AI 断言给说不清的判断一个出口它是怎么工作的与缺陷检测共用同一个端点只是多传一句assertion。Orchestra.kt 的assertWithAICommand截屏后调用performAssertion模型据此判断这句话是否成立不成立时返回的Defect.reasoning会作为失败原因抛出。它的价值在于不依赖元素树、不依赖文本定位直接把这页面对不对交给模型判断。什么时候该用它目标元素没有稳定文本或 id传统tapOn写不出断言校验整体语义例如列表不为空按钮处于可点击状态快速兜底先用 AI 断言占位再逐步换成精确断言覆盖第三方 SDK 页面等拿不到视图层信息的场景最小可跑示例# 用一句自然语言判断当前屏幕免去脆弱的元素定位 - launchApp: com.example.app - tapOn: 我的 - assertWithAI: 当前页面展示已登录用户的头像与昵称AI 文本提取把动态内容变成可断言的变量它是怎么工作的extractTextWithAICommand截屏后调用AIPredictionEngine.extractText(screen, query)模型按查询从图中抽出一段文本ApiClient走/v2/extract-text端点。关键在于 Orchestra.kt 拿到结果后执行jsEngine.putEnv(outputVariable, text)——文本被写进脚本变量后续步骤就能像引用{{var}}一样引用它从而对动态生成、无法预知的内容做确定断言。什么时候该用它抓取金额、订单号、验证码等运行时才知道的文本把抽出的值再喂给assert/tapOn组成二次校验校验国际化文案里嵌入的动态数字从图表、图片中读出嵌入的文字最小可跑示例# AI 从截图提取应付金额存为变量后再做断言 - launchApp: com.example.app - extractTextWithAI: query: 提取页面展示的应付金额 outputVariable: payAmount - assert: 应付金额 {{payAmount}}接入现有工作流放进 CI 的完整小例子AI 能力不需要改测试框架写进 flow 脚本即可随 CI 跑。前置做状态清理中置叠上三个 AI 命令后置截图留档供报告引用appId: com.example.app --- # 前置启动并清状态保证页面干净可复现 - launchApp - clearState - waitForAnimationToEnd # 中置缺陷检测 提取变量 自然语言断言 - assertNoDefectsWithAI: label: 结算页视觉检查 - extractTextWithAI: query: 提取应付金额 outputVariable: payAmount - assertWithAI: 结算页展示的金额应为 {{payAmount}} # 后置截图留档供 CI 报告引用 - takeScreenshot: path: settle_check.pnglabel让报告里每条 AI 步骤有可读名称optional默认true单条失败不阻断整条 flow关键校验请显式置false。调优清单控制截图尺寸再送检分辨率越高越准但上传与推理耗时也越大关键页用原图、其余页可缩图。超时留足余量ApiClient默认连接 10s、读/请求各 60s见 ApiClient.kt弱网或大图场景按需上调避免误判超时。串行调用、集中收尾视觉请求是网络 I/O批量页面对时把 AI 步骤放到流程末尾减少中途抖动。断言措辞要具体assertWithAI的句子越可判定reasoning越可复核模糊描述会放大误判。用optional分级探索期设true收集问题稳定后再对关键页切false硬性阻断。收尾Maestro 的 AI 能力把看屏幕从人眼和脆弱定位里解放出来缺陷检测守住视觉回归自然语言断言兜住说不清的判断文本提取让动态内容可断言三者都落在 YAML 一行命令内接进 CI 几乎零改造。后续可关注的方向缺陷定位从页面级细化到元素级、支持私有化模型以满足隐私约束、以及把多语言 UI 校验纳入统一断言体系。更多安装方式与演示参数见 maestro-ai/README.md。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表