>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
TypeScript

如何教会 AI 智能体独立测试移动应用

熟悉的场景:你让 Cursor 或 Claude 这样的 AI 助手为移动应用编写一个功能,它生成一堆代码,你复制过来,然后……你打开模拟器,手动点击每个屏幕来检查布局是否被破坏。那一刻,你感觉自动化在某个地方走错了路。AI 能写代码,但对文本编辑器之外的真实界面却是"视而不见"的。

Callstack 团队通过发布 agent-device 解决了这个问题。这是一款 CLI 工具,将 AI 智能体从理论家转变为实践者。现在智能体可以在 iOS 模拟器或 Android 仿真器上打开应用,查看屏幕元素,并点击正确的按钮。

既然已有 Appium 或 Maestro,何必多此一举

看起来移动自动化工具已经很多了。但问题在于:Appium 和 Maestro 是为人类设计的。AI 智能体不需要编写复杂的 YAML 场景或处理 XML 树中的选择器。它需要一种快速、廉价且直接的方式来与硬件交互。

agent-device 的工作方式不同。它不仅将截图作为图像捕获,还将其作为结构化无障碍树。与其将大量截图发送给多模态模型并消耗大量 token,不如让智能体获得带有简短引用的元素文本描述,如 @e1@e2。这既降低成本又加快速度。

这个工具能做什么

该工具将自己定位为智能体的"双手和双眼"。以下是吸引我注意的主要功能:

  1. 智能截图。 snapshot -i 命令只返回可交互元素。智能体看到列表:@e1 [button] "Sign In"@e2 [text-field] "Email"。无需猜测该点击哪里。
  2. 开箱即用的跨平台支持。 同一工作流程适用于 iOS、Android、TV(tvOS 和 Android TV),甚至 macOS 和 Linux 上的桌面应用。
  3. 证据收集。 如果出现问题,智能体可以自行启动视频录制、捕获日志或提取网络流量。这对于调试仅在运行时才能复现的 bug 非常有价值。
  4. React Native 集成。 由于 Callstack 是这个项目的幕后推手,它提供了深度的 RN 支持:你可以检查组件树和分析渲染性能。

实际使用体验

想象一下,你正在为 AI 智能体设置 MCP 服务器(Model Context Protocol)。现在它可以直接在终端中执行命令。

首先,我们检查环境:

agent-device doctor

如果一切正常,智能体可以启动应用:

agent-device open "MyApp" --platform ios

然后它环顾四周:

agent-device snapshot -i

一旦获得元素列表,它只需模拟用户操作:

agent-device fill @e3 "[email protected]"
agent-device tap @e2

就这样。无需等待编译或手动切换窗口。

技术原理

该工具不会在已有标准的地方重复造轮子。对于 iOS,它使用 XCTest;对于 Android,则是 ADB 配合自定义截图辅助工具。对于 Web,底层运行的是 Playwright(具体是 vercel/agent-browser 的逻辑)。

有趣的是,agent-device 可以将其会话转换为 Maestro 格式。这意味着智能体可以在"探索"应用时起草测试,然后你可以将其保存为完整的 E2E 测试用于 CI。

谁应该尝试

我看到几个能真正节省时间的场景:

  • React Native 和 Expo 开发者。 如果你正在使用 Cursor 或 Windsurf,请将 agent-device 文档添加到上下文中。智能体可以自行验证更改,不会打扰你。
  • QA 工程师。 你可以将基本的冒烟测试编写工作委托给 AI。它会自己找到按钮并验证过渡是否正常工作。
  • 从事 TV 平台开发的团队。 TV 自动化一直是个难题,而这里它被打包在一起了。

该项目正在积极开发中,虽然文档在某些地方仍在完善中,但主要的 CLI 运行稳定。如果你相信 Agentic Workflows 的概念,这个工具绝对值得你花一个晚上来体验。

你可以从他们的官方文档开始,其中详细介绍了如何将 CLI 与流行的 AI 智能体集成。

相关项目