UI-TARS 做 Android 自动化测试:原理先行、最短上手与排坑

发布时间:2026/9/15 17:14:34
UI-TARS 做 Android 自动化测试:原理先行、最短上手与排坑 UI-TARS 做 Android 自动化测试原理先行、最短上手与排坑【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS回归用例一多最先失控的就是手写的元素定位。UI-TARS 是一个基于视觉语言模型的视觉智能体它从截图直接看懂界面你用自然语言下达指令全程不需要维护元素 ID。在 Android 自动化测试这条路上它的完整链路是截图 → 模型思考 → 动作坐标 → 可执行脚本。 先理解原理视觉智能体如何完成 Android 自动化测试先建立心智模型这条链路的输入是截图加自然语言任务描述输出是一组可执行的动作坐标。内部大致分三层感知层从截图读取界面元素与文字推理层在提示模板约束下产出Thought Action格式的输出执行层把动作字符串解析出来并按 factor 与原图宽高把坐标缩放回真实屏幕最终生成可执行代码。整体设计见下图。这套架构的关键是统一动作空间点击、长按、打开应用都表达为结构化动作在 Android 设备上对应 MOBILE_USE 模板里的一组指令桌面端则使用 COMPUTER_USE 模板互不混淆。 最短上手路径安装、连接设备、首次验证先装环境。ui-tars 这个 Python 包只提供解析与提示词逻辑模型本身需要另行部署步骤见仓库内的部署文档。pip install ui-tars再连设备启动 Android 模拟器或接入真机开启 adb 调试并记下屏幕实际宽高——后面的坐标缩放要用。最后跑一个最小示例验证解析 → 生成代码这条链路是否可用from ui_tars.action_parser import parse_action_to_structure_output as parse, parsing_response_to_pyautogui_code as to_code r Thought: Click the login button\nAction: click(start_box(100,200)) parsed parse(r, factor1000, origin_resized_height1080, origin_resized_width1920, model_typeqwen25vl) print(to_code(responsesparsed, image_height1080, image_width1920))只要打印出一段 pyautogui 脚本链路就算打通。 一个登录任务从头走到尾以自动登录应用为例拆成四步。第一步任务描述。把目标写成自然语言填入 MOBILE_USE 模板的 instruction 槽位instruction 1. 打开目标应用 2. 在用户名框输入 demo_user 3. 输入密码并点击登录 第二步模型输出。模型针对当前截图逐步生成 Thought 加 Action例如Action: type(contentdemo_user)思考过程可留档便于排查。第三步坐标解析。调用 parse_action_to_structure_output 时factor 固定为 1000再传入原截图宽高qwen25vl 系列使用绝对坐标宽高必须与截图严格一致否则会整体偏移。第四步执行。用 parsing_response_to_pyautogui_code 把动作序列转成脚本落盘后即可重放整条用例。上图是坐标处理的可视化示例截图上的标记点即模型识别出的交互坐标已缩放回原始屏幕分辨率。点击落点不准时先对照这类可视化定位问题再谈重试。 MOBILE_USE 指令速查指令作用典型用途open_app(app_name)打开目标应用用例首步启动入口click(point)点击指定坐标点按按钮、输入框long_press(point)长按指定位置触发上下文菜单type(content)输入文本末尾 \n 提交填写用户名密码scroll(point, direction)向指定方向滚动翻页浏览列表drag(start, end)从 A 点拖拽到 B 点拖拽、滑块press_home()回到主屏步骤之间复位环境press_back()系统返回键取消弹窗、退回上级wait()等待 5 秒并重新截图页面加载等待finished(content)结束任务并附结论标记用例完成模板定义在 codes/ui_tars/prompt.py模拟器与真机上的 GUI 任务统一选 MOBILE_USE 即可。 基准成绩与适用边界官方给出的成绩是UI-TARS 在 Android World 基准测试中得分 64.2。适用场景也比较明确——可由截图加自然语言驱动的用例、跨应用通用、不同分辨率只需在解析时更换宽高参数。边界同样需要说清楚流程拉长到十几步之后累计误差与页面时序问题会拉低稳定性对细小、堆叠或动态变化的元素识别失败率会高于普通大按钮。遇到这类情况建议把长用例拆成子步骤并在关键节点加重试。️ 排障清单常见现象与处理坐标点偏——解析时传入的比例或宽高与实际屏幕不一致传 factor1000 与原图宽高参照 README_coordinates.md 核对缩放过程。动态页面识别失败——页面还没加载完模型就做了决策在关键步骤插入 wait()失败后重试上限 3 次。某个元素始终不被识别——截图模糊或指令描述过泛重新截图并在指令中写明元素的位置与外观特征。换设备后脚本抖动——不同分辨率导致坐标漂移用坐标可视化核对识别点确认偏移量后固定测试分辨率。小图标或重叠元素识别不稳——模型对密集区域定位有限拆细操作步骤避免在高密度区域直接取点。收尾UI-TARS 把 Android 自动化测试的输入简化成截图加自然语言落地的关键在坐标缩放与步骤拆分。建议先按部署文档跑通最小示例再逐步迁移真实用例遇到偏差时先查坐标、再查时序。相关资源主文档README.md部署与推理README_deploy.md坐标处理说明README_coordinates.md测试消息示例data/test_messages.json核心源码codes/ui_tars/【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考