夯爆了,谷歌又一强大AI自动化开源神器,Appium慌了!

简介: 谷歌开源ARTEMIS:用自然语言操控安卓真机的AI自动化工具。告别Appium繁琐脚本,无需写定位、等待逻辑,跨App任务一语直达。支持无障碍+OCR+视觉双兜底,自绘界面(Flutter/Compose)也能操作。Flash秒级响应,Pro深度验证,已集成MCP/Python SDK,轻松接入CI与AI IDE。

做过 App 自动测试的朋友,Appium 这套流程应该都不陌生。

装环境,配驱动,起 Server,写 capability。uiautomatorviewer 抓元素,xpath 一层套一层,等待策略全靠拍脑袋。跑十条挂三条,改完再挂两条,脚本比业务代码还难维护。这一套流程,很多人从入行用到今天。

8 月 13 号,谷歌在 GitHub 上开源了一个项目,ARTEMIS。

这个项目的作用,用自然语言指挥 AI,去操作一台真实的安卓手机。你跟它讲「打开系统设置,找到电池选项,告诉我当前电量」,它会自己去看屏幕,自己找入口,自己点进去,把结果带回来告诉你。

ARTEMIS,谷歌的安卓自动化神器

这个项目开源,大家记住几个关键信息就可以了。

  • 谷歌官方开源,Apache-2.0 协议,Python 实现
  • 8 月 13 号放出,一个半月 star 破万

  • 谷歌研究院 AndroidWorld 基准 99%+ 任务完成率,官方榜单第一

  • 提供原生 MCP Server,可直接对接 Antigravity、Claude Code、Codex、Windsurf
  • 主流多模态模型都能接,比如Gemini、Claude、GPT、Qwen-VL

需要注意的是,它和 Appium 其实不是同一类定位。

  • Appium 是自动化框架,你写脚本,它负责执行。
  • ARTEMIS 是一个 agent 系统,你给目标,它自己看屏幕、理解界面、规划动作、执行操作、输出报告,全程不需要你写一行定位代码。

官方的演示 GIF 挺直观,一句指令,它自己打开 Google Maps 设置驾车路线算好全程耗时,再切到 YouTube 放了一首 Coldplay。两个 App,一句话,中间不用人管。

跨 App,是它和传统自动化工具的分界线

传统 UI 自动化由页面和元素组成。就拿开头那个查电量的任务,放到 Appium 框架中,写出来大概是这样。

from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 第一步,描述设备和被测应用
caps = UiAutomator2Options()
caps.platform_name = "Android"
caps.device_name = "test-phone"
caps.app_package = "com.android.settings"
caps.app_activity = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723", options=caps)
wait = WebDriverWait(driver, 15)

# 第二步,进到页面,用定位器把元素抠出来
battery = wait.until(EC.presence_of_element_located(
    (AppiumBy.XPATH, "//androidx.recyclerview.widget.RecyclerView/"
                     "android.widget.LinearLayout[2]/android.widget.RelativeLayout")
))

# 第三步,操作元素,取值断言
battery.click()
level = driver.find_element(AppiumBy.ID, "android:id/summary").text
assert "%" in level

driver.quit()

capability、定位器、等待、点击、断言,整段脚本从头到尾围着界面结构展开。

而ARTEMIS 则是由任务驱动。你说要干嘛,它自己决定去哪个页面、点什么、滚哪里。设置、地图、YouTube,一个任务横跨几个 App,它眼里没有 App 的边界,只有目标。

落到测试上,原来最费工的那部分活,场景编排,被绕过去了。你不用再写先启动 Activity、再等待、再点击这种流程了,把测试场景目标直接描述给它就行。

自绘控件,这次有兜底了

还有个对测试人很关键的细节。ARTEMIS 定位元素,优先走无障碍层级拿元素索引,拿不到,退到坐标和视觉模型识别。

做过移动端自动化的都懂这意味着什么。Canvas、Compose、Flutter 这类自绘界面,控件树里根本没有节点,uiautomatorviewer 抓出来一片空白,多少 UI 脚本就死在这类页面上。ARTEMIS 用 OCR 加视觉模型兜底,自绘界面不再是禁区。

先看成绩单

AndroidWorld 是谷歌研究院的安卓 agent 基准,覆盖 20 多个 App、100 多条多步任务,专门考 agent 在真机上完成真实任务的能力。ARTEMIS 在上面拿到 99%+ 的完成率。

官方对比图里,同样是 agent 方案,别家大多卡在五到七成,它一只手够到了天花板。

不过做测试的看到跑分都该冷静。榜单说明它看得准、点得稳,具体到你自己的 App 上灵不灵,还得拿自己的App来验一波。跑分是入场券,落地是另一回事。

Flash 和 Pro,两档执行策略

ARTEMIS 跑任务分两个档位。

档位 单步耗时 怎么干活 适合场景
Flash 3 到 5 秒 单模型边看边做的反应式循环 日常冒烟、确定性操作
Pro 15 到 40 秒 Planner、Operator、Checker 多角色协作 长流程、探索测试、要报告

Flash 快在历史压缩。跑过的步骤被压成摘要,旧截图折叠成视觉总结,上下文不会随任务变长无限膨胀,所以长任务也扛得住。

Pro 稳在执行前检查。每个动作发出去之前,先对着当前界面树和像素校验目标还在不在,动作被拦截就交回 Operator 换路子走。跑完还有 Checker 对照原始目标做终审,输出书面报告。

用测试行话说,Flash 是快速回归,Pro 是深度探索加验收测试。

整个系统的架构长这样。

底下设备层,ADB 加 scrcpy 管投屏和操控。中间感知层,无障碍层级、OCR、视觉模型三路取界面信息。往上执行层,Flash 和 Pro 两档。最顶上对外开出四个口子,Web 控制台、命令行、MCP、Python SDK。

快速上手

上手门槛非常低。一台开了 USB 调试的安卓真机,或者一个模拟器,然后 clone 下来跑一条脚本。

git clone https://github.com/google/artemis.git && cd artemis
./start.sh

start.sh 会自动装齐 ADB、scrcpy、FFmpeg、Python 运行时这些依赖,然后把 ARTEMIS 的 MCP 服务和一份移动端测试准则 rules.md 挂进你的 AI IDE。比如Cursor、Claude Code、Codex。

启动后浏览器会自动打开一个 Web 控制台。

左边真机投屏,中间是实时推理流,它点了哪里、坐标是多少、每步结论,全程可见。底下输入框用自然语言下发任务,右边看板管任务队列和历史回放。跑挂了想看现场,回放点开就是。

不想开浏览器,命令行直接跑。

uv run artemis run "打开系统设置,找到电池选项并告诉我当前电量" --profile flash

接进 AI 编程工具,才是它的完整形态

MCP 装好之后,你在 Claude Code 里可以直接这样说话。

把最新改动打成 APK,装到连着的设备上,用测试账号走完登录,验证登录后有没有意外弹窗,最后把页面截图给我。

它自己调构建,自己装机,自己操作,自己截图。

Bug 复现这个场景尤其顺。用户反馈一段操作路径,原样发给它,它在真机上原样走一遍,Logcat 日志和截图一并带回来。以前复现一个偶现 Bug 要人工反复点半天,现在让它挂着跑。

官方放了一组和 Antigravity 配合的完整工作流,从下指令到出报告四步。

第一步,在 IDE 里描述你要测什么。

第二步,它生成带里程碑的测试计划给你过目。

第三步,真机上自主执行,导航界面,采性能数据。

第四步,输出结构化的诊断报告,指标表格和原始数据集都在。

Python SDK,接进 CI

要在现有工程里用,它提供了零运行时依赖的 Python 客户端。

uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
from artemis_client import ArtemisClient

client = ArtemisClient(
    "http://artemis-host:8000",
    device_serial="emulator-5554",
    default_profile="flash",
)

result = await client.run(
    "Open Settings, go to Battery, verify battery percentage is displayed, and check for crash dialogs.",
)

assert result.succeeded, f"Test failed: {result.error or result.status}"

返回的是 Pydantic 强类型结果,断言直接写,pytest 工程和 CI 流水线都能接。

Appium 真的慌了吗

标题这话,一半当真,一半别当真。

当真的一半。ARTEMIS 干掉的是「写脚本」这个环节。定位器、等待策略、页面编排,Appium 脚本里最折磨人的三样东西,在自然语言驱动的模式里不存在了。探索测试、日常冒烟、Bug 复现,这些场景它今天就能顶上,比人手点快,比死脚本灵活。

别当真的一半。它的边界同样清楚。

  • 目前只支持 Android
  • 每一步都是模型调用,token 成本和耗时摆在那,几千条用例的回归矩阵,还是脚本便宜
  • 结论带概率属性。脚本断言非黑即白,模型报告讲把握大小,有些质量门禁要的就是那句死话
  • 靠无障碍服务读屏,你的 App 要是把无障碍支持阉割了,就得退到坐标和视觉兜底,稳定性打折

所以我的建议是,短期拿它和 Appium 进行搭档互补使用。

日常回归继续用脚本压缩执行成本,探索、冒烟、复现这些边角重活交给它,眼下这是最现实的分工。长期谁吃掉谁,一个半月的项目还看不出答案,但「写 Appium 脚本」这门手艺的溢价,确实在缩水。

我的几条建议

1、做 Android 测试的,这周就把它跑起来

上手成本已经低到两条命令。找台测试机,把你的冒烟场景用中文描述给它,Flash 档跑几遍,看成功率。这种几乎零成本的尝鲜,值得每个移动端测试人做一次。

2、做测试平台的,盯住 MCP 和 SDK 两个口子

ARTEMIS 的平台化意图很明显,MCP 接 IDE,SDK 接 CI。把它包成平台上的一个真机执行节点,用例收自然语言,结果回传结构化数据,这条路已经通了。

3、做 iOS 测试的,先围观,别走远

路线图上排着 iOS 支持、端侧轻量视觉模型、实时语音交互。这批能力落地的时候,移动端自动化的写法要重讲一遍。现在值得做的一件事,是把你们的测试场景整理成清晰的自然语言描述,这批描述往后就是新形态的用例资产。

写在最后

翻了下日历,ARTEMIS 开源到现在,才一个半月。

一个半月,一万多 star,谷歌官方出品,MCP 原生,AndroidWorld 榜首。这几件事凑在一起,基本可以确定,自然语言驱动真机这件事,接下来一年会有一大波跟进者。

被改写的先是入门路径。以前学 UI 自动化,先啃定位器,再啃等待,再啃框架 API,一套下来仨月。以后的第一行用例,可能就是一句中文的测试描述。

工具一直在换,怎么证明它是对的,这个活一直都在。被测对象从函数、接口,一路换到模型、Agent,现在轮到拿着自然语言跑真机的 agent,题面又换了一次,考点没变。你在软件测试里攒下的功力,这套新题里一样用得上。

ARTEMIS 的地址放这了👉 。

https://github.com/google/artemis

觉得有用欢迎转给团队里做移动端测试的同学。


我是狂师,公众号长期分享 AI 提效与测试开发技术干货。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

目录
相关文章
|
1月前
|
人工智能 测试技术
公司从零开始推自动化测试,如何落地?
本文深度剖析团队自动化转型的底层逻辑:指出失败主因常是目标错位与管理缺位,而非技术本身。强调“三分技术、七分管理”,主张先对齐业务目标、小步试点、建立闭环与规范,并结合AI提效——但须严控生成质量与维护闭环。核心是将自动化打造成可持续演进的测试资产。
295 1
公司从零开始推自动化测试,如何落地?
|
1月前
|
人工智能 自然语言处理 测试技术
Google 开源 ARTEMIS:AI Agent 如何接管 Android 真机测试?
Google开源的ARTEMIS是一款AI驱动的Android自动化测试框架,支持自然语言指令、跨App长流程操作、多模态控件识别(Accessibility+OCR+视觉模型),原生集成MCP协议,可无缝接入Antigravity等AI编程环境,实现“描述目标→自主规划→真机执行→结果分析”闭环,标志着移动端测试迈向AI Agent时代。
|
18天前
|
人工智能 自然语言处理 API
爆火!新一代e2e AI测试框架,单日狂揽1500 star
GitHub 热门新项目 `e2e`:TesterArmy 开源的 AI 增强型端到端测试框架(Web/移动端),TypeScript 编写,Apache-2.0 协议。创新采用「AI + 代码」混合模式——`agent.act()` 处理动态界面,传统断言保障稳定性;独创回放机制,UI 不变则零模型调用,大幅降本增稳。上线两月获 9000+ Star,npm 周下载 23.8 万。
389 2
爆火!新一代e2e AI测试框架,单日狂揽1500 star
|
3月前
|
人工智能 JavaScript 测试技术
推荐一款开源工具:让 AI Agent 替你做 iOS、Android 自动化测试,能平替 Appium?
Appium统治移动端自动化测试12年,但脚本复杂、维护成本高。新开源工具agent-device(Callstack出品)开启范式革命:专为AI Agent设计,通过语义化元素引用(@e1)、全链路证据采集、探索→回放机制,让AI“看懂”界面自主操作,非Appium替代品,而是下一代智能测试基础设施。
652 0
|
18天前
|
SQL 人工智能 JSON
淘宝 AI 购物助手:基于 LLM-as-a-Judge 的在线评测与质量归因实践
淘宝技术为AI购物助手构建了基于LLM-as-a-Judge的在线自动评测体系,通过生产会话清洗、分布式批量推理、六层Rubric标准及人工校准,实现购后服务多业务域的日级质量监控与故障归因,推动Agent质量持续改进。
|
小程序 JavaScript
最新微信小程序反编译工具,完美解决分包问题
看了很多反编译、找回微信小程序源码很多教程,各种问题导致都没法正常使用。微信版本升级后,会遇到各种报错, 以及无法获取到wxss分包无法反编译的问题。于是寻找资料,也买过别人的破解工具,最终解决文件缺失和分包问题,而且无意中发现还能获取小游戏的源码,于是和大家分享下。
最新微信小程序反编译工具,完美解决分包问题
|
17天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
1127 3
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
|
1月前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
3109 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
3月前
|
人工智能 NoSQL 测试技术
测试开发必备的 AI 技能库:推荐6 个让接口自动化测试效率翻倍的 Skills
本文详解接口自动化测试“执行与报告”阶段的6款AI Agent Skill:打标、执行、诊断、清理、报告、编排,覆盖脚本筛选→智能运行→失败自愈→数据净化→决策报告→全链路调度,实现真正智能化、流水线化的测试闭环。
594 1
测试开发必备的 AI 技能库:推荐6 个让接口自动化测试效率翻倍的 Skills
|
1月前
|
人工智能 前端开发 测试技术
AI越来越强了,为什么测试人反而越来越累!(为打工人发声)
本文揭示AI时代测试工程师“越忙越累”的真相:研发、产品等岗位因AI大幅提效,而测试却成瓶颈——AI擅长“迎合”,测试重在“挑刺”;产能翻倍导致被测物激增,验证环节却难以规模化。文章呼吁理性设定AI提效目标,尊重测试在质量兜底中的不可替代价值。
323 1