告别手动操作:UI-TARS让Android自动化测试像搭积木一样简单
你还在为重复的Android应用测试感到头疼吗?还在为编写复杂的自动化脚本而烦恼?本文将带你快速掌握UI-TARS的移动应用自动化能力,无需编程基础也能轻松实现Android应用的自动化操作,让你从此告别繁琐的手动测试,效率提升10倍!
读完本文,你将学会:
- 如何快速搭建UI-TARS移动自动化环境
- 使用MOBILE_USE模板创建自动化任务
- 解析模型输出并生成可执行的自动化脚本
- 实战演示:自动完成Android应用的登录流程
- 常见问题解决与高级技巧
什么是UI-TARS?
UI-TARS是一个开源的多模态智能体,基于强大的视觉语言模型构建,能够在虚拟环境中执行各种任务。特别是在移动应用自动化方面,UI-TARS表现出色,在Android World benchmark上达到了64.2的高分,远超之前的SOTA模型。
UI-TARS-1.5版本通过强化学习增强了推理能力,能够在采取行动前进行思考推理,显著提高了性能和适应性。其核心优势在于能够理解GUI界面并生成相应的操作指令,实现真正的端到端自动化。
环境准备:5分钟上手
安装UI-TARS Python包
UI-TARS提供了便捷的Python包,只需一行命令即可完成安装:
pip install ui-tars
# 或使用uv加速安装
uv pip install ui-tars
准备Android测试环境
- 安装Android Studio并配置SDK
- 启动Android模拟器或连接真实设备
- 确保adb调试已启用
详细的部署指南可参考官方部署文档。
MOBILE_USE模板:专为移动自动化设计
UI-TARS提供了三种提示模板,其中MOBILE_USE专为移动设备或Android模拟器设计,包含了移动特有的操作指令。
MOBILE_USE主要特性
- 支持移动特有操作:
long_press(长按)、open_app(打开应用)、press_home(Home键)、press_back(返回键) - 优化的坐标系统,适配移动设备屏幕
- 支持滑动、输入、导航等常见移动操作
模板定义位于codes/ui_tars/prompt.py文件中,你可以根据需要进行自定义修改。
实战演示:自动登录Android应用
下面我们通过一个实际案例来演示如何使用UI-TARS实现Android应用的自动登录。
步骤1:准备测试用例
首先,我们需要准备一个包含测试步骤的消息文件。项目中提供了示例文件data/test_messages.json,你可以参考其格式创建自己的测试用例。
步骤2:使用MOBILE_USE模板调用模型
from ui_tars.prompt import get_prompt_template
# 获取MOBILE_USE模板
prompt_template = get_prompt_template("MOBILE_USE")
# 构建测试指令
test_instruction = """
任务:自动登录"示例应用"
步骤:
1. 打开应用
2. 输入用户名:testuser
3. 输入密码:testpass
4. 点击登录按钮
"""
# 生成完整提示
prompt = prompt_template.format(instruction=test_instruction)
步骤3:解析模型输出
模型输出包含思考过程和动作指令,我们需要使用action_parser模块将其解析为结构化数据:
from ui_tars.action_parser import parse_action_to_structure_output
# 假设response是模型返回的字符串
response = """Thought: 我需要先打开应用...
Action: open_app(package_name='com.example.app')
Thought: 现在需要输入用户名...
Action: click(start_box='(300, 400)')
Action: type(text='testuser')
..."""
# 解析响应
original_image_width, original_image_height = 1080, 1920 # 根据设备分辨率调整
parsed_dict = parse_action_to_structure_output(
response,
factor=1000,
origin_resized_height=original_image_height,
origin_resized_width=original_image_width,
model_type="qwen25vl"
)
步骤4:生成自动化脚本
解析后的结构化数据可以直接转换为pyautogui脚本:
from ui_tars.action_parser import parsing_response_to_pyautogui_code
# 生成pyautogui代码
pyautogui_code = parsing_response_to_pyautogui_code(
responses=parsed_dict,
image_height=original_image_height,
image_width=original_image_width
)
print(pyautogui_code)
生成的代码将包含完整的自动化步骤,可直接执行或保存为.py文件。
坐标可视化
为了帮助理解坐标处理过程,UI-TARS提供了坐标可视化工具。你可以通过以下代码将模型识别的坐标点绘制在截图上:
from PIL import Image, ImageDraw
import numpy as np
import matplotlib.pyplot as plt
# 加载截图
image = Image.open("screenshot.png")
# 获取解析后的坐标
start_box = parsed_dict[0]["action_inputs"]["start_box"]
coordinates = eval(start_box)
x1 = int(coordinates[0] * original_image_width)
y1 = int(coordinates[1] * original_image_height)
# 绘制坐标点
draw = ImageDraw.Draw(image)
radius = 5
draw.ellipse((x1 - radius, y1 - radius, x1 + radius, y1 + radius), fill="red", outline="red")
# 显示结果
plt.imshow(np.array(image))
plt.axis("off")
plt.show()
更详细的坐标处理指南可参考坐标处理说明。
性能对比:UI-TARS vs 传统自动化工具
UI-TARS相比传统的自动化工具(如Appium、Espresso)有哪些优势?让我们通过数据来直观感受:
| 评估指标 | UI-TARS | Appium | Espresso |
|---|---|---|---|
| 学习曲线 | 低(无需编程) | 中 | 高 |
| 界面变化适应性 | 高(视觉理解) | 低(依赖元素ID) | 低(依赖元素ID) |
| 跨应用兼容性 | 高 | 中 | 低 |
| 非标准控件支持 | 高 | 低 | 低 |
| 部署复杂度 | 低 | 中 | 高 |
UI-TARS在Android World benchmark上的表现也证明了其强大的能力:
常见问题与解决方案
Q: 如何处理不同分辨率的设备?
A: UI-TARS会自动处理坐标缩放,只需在解析时提供原始图像的宽高即可:
parsed_dict = parse_action_to_structure_output(
response,
factor=1000,
origin_resized_height=1920, # 原始图像高度
origin_resized_width=1080, # 原始图像宽度
model_type="qwen25vl"
)
Q: 模型无法识别某些UI元素怎么办?
A: 可以尝试以下方法:
- 提供更高质量的截图
- 在提示中更详细地描述元素位置和外观
- 使用
GROUNDING模板专门优化元素定位
Q: 如何提高自动化脚本的稳定性?
A: 建议:
- 在关键步骤之间添加适当的延迟
- 增加错误检查和重试机制
- 使用更具体的指令描述
总结与展望
UI-TARS为Android应用自动化提供了一种全新的方式,通过视觉理解和自然语言指令,大大降低了自动化测试的门槛。无论是普通用户还是测试工程师,都能快速上手并创建复杂的自动化任务。
随着UI-TARS-2的发布,我们可以期待更多令人兴奋的功能,如增强的GUI理解能力、游戏自动化、代码生成和工具使用等。UI-TARS正朝着"全能智能体"的方向发展,为复杂任务提供无缝的多能力集成。
如果你觉得本文对你有帮助,请点赞、收藏并关注我们,以便获取最新的UI-TARS使用技巧和最佳实践!下期我们将介绍如何使用UI-TARS实现移动应用的自动化测试报告生成,敬请期待!
参考资料
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00

