ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Maestro AI 的 3 个截图命令:为什么你的断言该开始“看“界面了?

Maestro AI 的 3 个截图命令:为什么你的断言该开始“看“界面了? Maestro AI 的 3 个截图命令为什么你的断言该开始看界面了【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro传统移动端自动化测试的断言只盯三样东西元素文本、坐标、控件状态。一旦问题出在布局错位、对比度不足、文字被截断这些看得见但查不到的层面你只能人工翻截图。Maestro AI 用 UI 缺陷检测、自然语言断言和文本提取三个能力把这类截图断言自动化了本文按AI 到底在看什么到怎么塞进现有流水线的顺序讲清楚顺带给出离线验证模型效果的办法。1 分钟搞懂 Maestro AI 解决了什么先划范围它管不了元素找不到的问题那是选择器的事它管的是元素都在但界面不对劲。典型三类跨机型布局错乱控件换行、溢出多语言截断文案超长被省略号吞掉动态内容验证验证码、订单号只能读图对应地它提供三个入口分别对应查毛病下判断读文本后文逐个拆。AI 到底在看什么findDefects 的两个维度入口是一个只有三个方法的接口 AIPredictionEngine位于maestro-ai模块interface AIPredictionEngine { suspend fun findDefects(screen: ByteArray): ListDefect suspend fun performAssertion(screen: ByteArray, assertion: String): Defect? suspend fun extractText(screen: ByteArray, query: String): String }默认实现是CloudAIPredictionEngine接收截图字节数组经ApiClientPOST 到 Maestro 云端的v2/find-defects带 Bearer API 认证。注意返回结构Defect只有两个字段——category枚举值仅layout布局类和localization本地化类和reasoning判定理由文本。没有像素级坐标所以定位要配合截图人工复核别指望它直接给 bounding box。实践中有两条经验。第一findDefects是找茬模式它会把所有可疑点都列出来噪音偏多我们内部的做法是先用performAssertion带明确断言去验证最该失败的那一条确认命中后再放findDefects跑全量排查。第二它不挑平台iOS、Android、Web 的截图都是普通ByteArray同一套逻辑通吃。extractText 比传统 OCR 多走了哪一步传统 OCR 是无差别转录把画面里所有字符都打出来剩下语义筛选靠你自己写正则。extractText(screen, query)多走的一步是query 直接以自然语言表达你要什么订单总金额、当前定位城市模型理解问题后只返回答案。它走的是云端v2/extract-text接口响应就是一个text字符串。在maestro-orchestra的执行层里对应命令会把结果写入outputVariable之后可以拿来做正则断言或落报告。对页面上没有可访问性文本、只有渲染出来的内容的场景——WebView 渲染的动态数据、图表里的数字——这是目前唯一可自动化的读法。3 步接入现有流水线YAML 写法三个能力在 YAML 层都是实验命令见 CHANGELOG用法如下- launchApp: com.example.app - assertNoDefectsWithAI: optional: false - assertWithAI: assertion: 页面顶部的标题完整可见且未截断 - extractTextWithAI: query: 当前订单的总金额 outputVariable: order_total - assert: that: order_total matches [0-9]\\.[0-9]{2}三步接入配置密钥环境变量MAESTRO_CLI_AI_KEY模型可用MAESTRO_CLI_AI_MODEL覆盖写进用例如上三条命令目录结构参考e2e/workspaces先软后硬三个命令默认optional: true失败不中断流程稳定前保持默认观察日志误报率可接受了再改optional: false一个容易踩的坑云端调用在ApiClient里设了 60 秒超时页面复杂或网络差时偶发超时会报 Failed to complete request to Maestro Cloud重试一次通常能过但别把它和检测出缺陷混在同一个失败分析里。接之前先跑一次离线验证AI 截图断言最大的变量是模型本身的稳定性直接压进流水线容易半夜被误报吵醒。仓库里自带了一个离线评估工具 maestro-ai-demo把一批截图按{app}_{编号}_{good|bad}.png命名丢给它它会逐张跑检测并输出 PASS/FAIL支持--show-prompts、--show-raw-response看完整提示词和模型原始响应用来校准预期非常顺手。建议流程是先用 demo 在你自己业务的截图上跑一轮确认category和reasoning的输出符合团队对缺陷的定义再接入 CI。云端实现、提示词 schemaaskForDefects_schema.json和评估工具都在maestro-ai模块想深挖提示词工程从这里入手即可。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表