mcpField
T
testa

testa

本地服务
github.com开发工具33 周前更新

关于 testa

Testa 是用于 iOS Simulator 应用测试的 MCP 服务和命令行工具,面向 AI Agent 与开发者。它提供屏幕读取和真实触控操作,还能将 Agent 测试过程录制为流程文件,在 CI 中无需模型即可重放。

主要功能

  1. 01以精简文本读取屏幕
  2. 02点击、输入、滑动及手势操作
  3. 03控制模拟器设备功能
  4. 04录制并重放流程文件
  5. 05在 CI 中重放并生成 JUnit 输出

适用场景

  1. 01让 Agent 检查应用欢迎界面
  2. 02无需添加 testID 即可测试界面
  3. 03录制流程并在 CI 中重放

MCP 相关

Testa 向 MCP 客户端提供 iOS Simulator 屏幕观察和交互能力。`testa setup` 会为 Claude Code 注册服务,其他客户端可配置 `testa mcp`。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"valewnrt-testa": {
"command": "npx",
"args": [
"-y",
"@valewnrt/testa-mcp"
],
"env": {
"TESTA_MCP_FULL": "<TESTA_MCP_FULL>",
"TESTA_UDID": "<TESTA_UDID>"
}
}
}
}
启动命令npx -y @valewnrt/testa-mcp
需要配置的环境变量
TESTA_MCP_FULLSet to 1 to expose all 40 tools instead of the 13-tool token-lean default.
TESTA_UDIDTarget a specific simulator UDID instead of the booted one.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@valewnrt/testa-mcp0.2.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Testa

让 AI Agent 测试你的 iOS 应用。

CI Xcode beta Release License: MIT

Testa 让 Claude Code、Codex、Cursor 或任何 MCP 客户端都能在 iOS Simulator 中看见并操作应用。它会将屏幕内容读取为精简文本,通过真实触摸事件进行点击、输入和滑动,并检查结果。它适用于 React Native、Expo 和 SwiftUI 应用,无需添加任何 testID。Agent 完成后,可将运行过程保存为流程文件,并在 CI 中无需模型即可重放。

终端运行 testa tap、pinch、rotate、dragdrop、typein、tapocr 和 assert 命令,旁边的 iOS Simulator 会对每条命令作出响应

安装

需要运行 Xcode 26(iOS 26 模拟器)的 macOS。

brew tap valewnrt/testa
brew install testa
testa setup        # installs the Claude Code skill and registers the MCP server

也可以从源代码构建:git clone https://github.com/valewnrt/testa && cd testa && ./install.sh。

连接你的 Agent

testa setup 已配置好 Claude Code。对于其他 Agent:

codex mcp add testa -- testa mcp      # Codex
{ "mcpServers": { "testa": { "command": "testa", "args": ["mcp"] } } }

将 JSON 放入 Cursor 的 .cursor/mcp.json 或其他 MCP 客户端配置中。 然后向 Agent 提出类似这样的要求:“在模拟器中启动应用,使用测试账号注册,并确认欢迎界面是否显示。” 更多信息请参阅 docs/agents.md。

亲自试试

Testa 是一个简单的 CLI,因此你也可以手动操作:

$ testa boot "iPhone 17 Pro"
$ testa install ./MyApp.app && testa launch com.example.myapp

$ testa ui
19 elements (on screen)
e2 StaticText "ready" #status @201,89
e5 Button "Tap me" #tapButton @102,171
e18 TextField #textInput =type here @201,601
…

$ testa tap "Tap me"
tapped e5 Button Tap me
-- ui changes --
~ e2 StaticText "tap:1" #status @201,89
~ e6 StaticText "count: 1" #tapCount @41,208

$ testa assert "#status" label=tap:1
PASS label tap:1

第一条命令会启动后台守护进程(只需几秒,且只启动一次)。之后,每条命令大约需要 60 ms。

与众不同之处

  • 无需修改应用。 Testa 会读取无障碍树;对于其中没有的内容,则使用设备端 OCR(Apple Vision)作为后备方案,包括系统弹窗、画布绘制的界面、游戏和 WebView。了解更多 →
  • 专为 Token 预算设计。 每个界面元素占一行,一个屏幕约需 200 个 Token,而截图约需 1,500 个;每次操作只返回发生变化的内容。基准测试 →
  • 录制一次,在 CI 中重放。 testa flow record 会将 Agent 执行的操作转换为纯文本流程文件。testa flow run 会重放该文件,并生成 JUnit 输出和失败产物;此外还提供 GitHub Action。了解更多 →
  • 真实手势与设备控制。 支持点击、长按、滑动、拖放、捏合、旋转、多点触控和硬件按钮,还支持推送通知、位置、Face ID、深色模式、动态字体等。
  • 单个本地二进制文件,无依赖。 Testa 直接调用 Apple 的模拟器框架:无需 Node、Python 或 WebDriver 服务。无网络连接,无遥测数据。工作原理 →

状态

Testa 尚未达到 1.0 版本,已用于测试真实的生产应用。它依赖 Apple 的私有框架,因此新版 Xcode 可能会导致其无法正常运行;每周运行的任务会针对 Xcode 测试版运行测试套件,以便尽早发现问题。已在配备 iOS 26.4 模拟器的 Xcode 26.4 上验证。仅支持 iOS Simulator:不支持真实设备和 Android(原因)。

文档

贡献

欢迎提交 Bug 报告、Xcode 兼容性报告和拉取请求。请先阅读 CONTRIBUTING.md;问题和想法请前往 讨论区。更改记录见 CHANGELOG。

致谢

Testa 的 HID 和辅助功能工作借鉴了对 Meta 的 idb(MIT)的研究;未链接或捆绑任何 idb 代码。 感谢所有贡献者。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。