Appium 好用不好用?大家可能第一反应是:用习惯了!当我们真正再次认真的去思考“是否好用”这个问题时,就会发现,这个统治了移动端自动化测试12年的工具,其实在某些方面是需要优化改进的:
例如:
-
写个测试脚本,要找元素 ID、写 XPath、处理弹窗、适配各种屏幕; -
脚本写完比业务代码还长,UI 一改全崩。
今天,给大家推荐一款开源移动端自动化测试工具–agent-device,它不是技术比 Appium 更强,是思路根本不一样。一文带你详细了解👇
一、什么是agent-device?
agent-device简介
agent-device 是由Callstack 出品,MIT 开源的一款给 AI Agent 用的设备自动化 CLI,iOS、Android、TV、桌面全覆盖,目前在Github上,该项目star数接近4k。JPMorgan Chase、Expensify、Shopify 的团队都在用。
官网:
https://agent-device.dev
GitHub仓库:
https://github.com/callstack/agent-device
适合人群
它最适合三类人:
-
React Native / Expo 开发者; -
负责移动端 QA 的小团队; -
已经在用 Codex/Claude Code/Cursor 改 App 代码的人。
和Appium的区别
Appium的工作原理:是基于客户端-服务器架构,通过WebDriver协议将测试脚本的指令转换为移动端设备可执行的操作,说白了就是需要你写脚本,告诉它怎么一步一步操作;
agent-device逻辑完全不同:更像给 Agent 的“眼睛和手”,它不是传统 E2E 测试框架的完整替代品,而是会承认 Agent 会探索、会走错、会需要证据,而不是假装第一次就能写出完美测试。你只需要把需求交给agent-device,它就会自己探索。
|
|
|
|
|
|
|---|---|---|---|---|
| 设计目标 |
|
|
|
|
| Token 效率 |
|
|
|
|
| 跨平台 |
|
|
|
|
| 选择器策略 |
|
|
|
|
| 录制回放 |
|
|
|
|
| 证据收集 |
|
|
|
|
| MCP 支持 |
|
|
|
|
| Agent Skill |
|
|
|
|
| 许可 |
|
|
|
|
核心差异 : Appium/Maestro/Detox 是给人用的测试框架, agent-device 是给 AI Agent 用的操控层。前者需要人写脚本,后者 Agent 自己看屏幕自己操作。
二、agent-device的核心优势?
设计原理
agent-device与Appium等传统自动化测试框架的根本区别在于:它不再是让开发者编写脚本告诉设备每一步如何操作,而是让AI 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 改版而失效。但基于无障碍树的引用, 稳定性高一个量级 。
第二,证据收集: 9 种类型
截图、视频、日志、 trace 、网络流量、音频探测、性能采样、崩溃上下文、 React Profile 。不是全都要——按需采集, Agent 判断什么时候需要截图留证。
第三,录制回放 + 自动修复
agent-device open MyApp --platform ios --session e2e --save-script
agent-device replay ~/.agent-device/sessions/e2e-run.ad
agent-device replay -u ~/.agent-device/sessions/e2e-run.ad
探索性测试 → 录制 → 回放 → CI 集成,一条龙。还能导出 Maestro YAML 。
第四. MCP 原生支持
agent-device 同时提供 CLI + MCP Server 。 Codex 、 Claude Code 、 Cursor 、 Windsurf 都能直接调用。还提供官方 Skill 包:
npx skills add callstackincubator/agent-device
装了 Skill 的 Agent 知道什么时候该 snapshot 、什么时候该截图、什么时候该录制——不用从零学。
第五. Cloud 远程设备
本地跑模拟器, Cloud 跑真机。 Agent Device Cloud 提供远程设备池, Linux runner 也能测 iOS 。对 CI/CD 集成很关键——GitHub Actions 不需要 macOS runner 也能跑 iOS 测试。
三、agent-device的实操建议?
1、先装工具和确认版本
在本机执行npm install -g agent-device@latest,然后跑agent-device --version和agent-device help workflow。如果只是临时看一眼,也可以用npx agent-device --version,但团队固定使用时最好锁版本。
2、让模拟器或设备处于干净状态
必要时用agent-device boot --platform ios或Android的boot命令启动目标,再用agent-device apps --platform ios / agent-device apps --platform android找准app id,别让Agent靠猜。
3、打开目标 App 并抓第一屏
执行agent-device open SampleApp --platform ios,再跑agent-device snapshot -i。这里的@e2、@e3这类ref,就是Agent后续点击和填写的锚点。
4、只让 Agent 完成一个目标
例如“打开设置页,把通知开关打开,截图保存为settings-on.png,最后用agent-device get text @e1或新一轮snapshot说明结果”。中间每点一步都重新snapshot -i,不要拿旧 ref 硬点。
5、跑通后再沉淀 replay
把稳定步骤保存成.ad,后面用replay复跑。失败时保留截图、结构差异和日志,别只留一句“测试失败”。
四、总结
agent-device 是一个理念非常先进的工具,它填补了“AI智能体与真实移动应用交互”这一关键空白。它特别适合使用AI编码助手进行移动应用开发、调试和验证的开发者。
不过,它目前仍是一个较新的工具,使用时需要您具备一定的移动开发环境配置基础,并可能遇到一些初期问题(如您遇到的ADB错误)。对于追求稳定、大规模传统自动化测试的团队,成熟框架可能仍是首选;但对于希望将AI Agent能力延伸到真实设备交互的探索者和创新者来说,它非常有价值。
五、话题讨论
讨论1:这种转变对测试人员技能要求、测试用例维护成本带来哪些影响?
讨论2:测试工程师是否还需要精通XPath和UI定位器?还是说,未来更重要的能力是“清晰地描述业务场景”?
以上话题,任选其一,欢迎评论区留言,小编会在下下周一(2026年8月10日)下午,选取1位“关注+点赞+留言”的幸运用户,送出《Claude Code实战–Harness工程至道》1本,快来评论区互动吧~


