Appium 你用了多少年?

从 2013 年到现在12 年了。12 年里,移动端自动化测试的格局基本没变——Appium 统治一切。但说实话,Appium 不好用。写个测试脚本,要找元素 ID、写 XPath、处理弹窗、适配各种屏幕。脚本写完比业务代码还长,UI 一改全崩。

直到最近,我发现了一个开源项目——让我觉得移动端自动化测试的范式,可能真的要变了。

它叫 agent-device

Callstack 出品,MIT 开源,JPMorgan Chase、Expensify、Shopify 的团队都在用。一句话介绍:它是一款开源给 AI Agent 用的设备自动化 CLI,iOS、Android、TV、桌面全覆盖,目前在 GitHub 上 Star 数接近 4k。

安装方式很简单:

npm install -g agent-device@latest
agent-device doctor
agent-device --version

注意——它不是另一个 Appium

Appium 的逻辑:你写脚本,一步步告诉它怎么点、怎么填。agent-device 的逻辑完全不同:你把它交给 AI Agent(Codex、Claude Code),Agent 自己看屏幕、找按钮、做操作。

agent-device 只干一件事——当 Agent 的“眼睛”和“手”。

为什么我觉得它可能改变格局?

先说我的判断:不是技术比 Appium 更强,是思路根本不一样

Appium 时代,测试的核心能力是“写脚本”——你得会 XPath、懂定位策略、处理等待逻辑。agent-device 时代,测试的核心能力变成 “描述意图” ——你说“验证登录功能正常”,Agent 自己看屏幕、找元素、点按钮、判断结果。

这不是优化,是范式转移。就像从“手写汇编”到“用高级语言”——不是汇编不好,是抽象层变了。

三个我觉得很聪明的设计

第一,语义化引用。 agent-device 截取屏幕快照后,给每个可交互元素分配一个引用——@e1、@e2、@e3。Agent 不需要写 XPath,只需要说“点击 @e3”。

agent-device snapshot -i
# @e1 [heading] "Settings"
# @e2 [button] "Sign In"
# @e3 [text-field] "Email"
agent-device fill @e3 "test@example.com"

XPath 会因为 UI 改版而失效。但基于无障碍树的引用,稳定性高一个量级。

第二,证据收集不只是截图。 日志、网络流量、性能采样、崩溃上下文、React 渲染 profile——全自动收集。这意味着 Agent 不只是“操作完了”,还能自证清白。出了 bug 要复盘?证据链一条不少。

第三,探索变回放。 Agent 探索完一遍操作流程,自动录制成 .ad 脚本,之后 CI 反复跑。探索时靠 AI,回归时靠脚本——两个阶段各取所长。

但别急着吹,它也有短板

第一,需要 AI Agent 驱动。你得有 Codex 或 Claude Code。没有 Agent,它就是一个 CLI,价值砍半。

第二,吃 App 的无障碍标签。它依赖 accessibility tree。如果 App 没做无障碍适配,元素全标“button”,Agent 也抓瞎。

第三,生态还处在早期。虽然已经有大厂在用,但文档、教程、社区最佳实践还在积累。碰到坑,你得自己趟。

我的判断

它不会立刻替代 Appium——但代表了 Appium 之后的下一个时代。当 AI Agent 能自己看屏幕、自己点按钮、自己判断结果,测试工程师的工作从“写脚本”变成了“描述意图”和“验收结果”。

这个转变,比任何技术优化都更值得关注。

如果你正在做移动端自动化测试,不妨花 10 分钟装一下试试:

npm install -g agent-device@latest
agent-device doctor

让 AI 替你跑一次测试,感受一下“描述意图”和“写 XPath”之间的差距。