awizemann/harness

AI-driven user testing for iOS Simulator, macOS apps, and web apps. Write a goal in plain language; an LLM agent drives the UI and reports friction. macOS 14+, Swift 6.

解决的问题

Harness 用 AI 驱动的用户模拟替代了传统的脚本化 UI 测试。开发者无需编写在 UI 元素移动时就会失效的僵化测试脚本,而是可以用自然语言定义目标和用户角色,让 AI 代理自动导航应用,识别现实世界中的 UX 摩擦、死胡同和无响应控件。

工作原理

Harness 使用一个 LLM 代理,通过读取截图并利用「Set-of-Mark」系统(交互元素上的编号叠加层)与目标应用交互。该代理根据应用的视觉状态执行点击、输入、滚动等操作。支持三种目标环境:

  • iOS 模拟器: 通过 xcodebuild 和 WebDriverAgent 驱动。
  • macOS 应用: 通过 AX 操作和 CGEvent 实现内部输入,使用 CGWindowListCreateImage 捕获窗口。
  • Web 应用: 通过嵌入的 WKWebView 使用 JS 合成事件和快照驱动。

该系统支持基于云的 LLM(Anthropic、OpenAI、Google)以及通过 Ollama 实现的本地推理(例如 Qwen3-VL、Llama 3.2 Vision)。

适用人群

专为希望在 iOS、macOS 或 Web 应用上进行自动化用户测试和 UX 审计,但无需编写手动测试脚本的 macOS 开发者设计。

特色亮点

  • 多平台支持: 支持 iOS 模拟器、原生 macOS 应用和 Web 应用。
  • Set-of-Mark 定位: 代理通过 ID 而非像素进行点击,提升可靠性。
  • 本地与云端 AI: 兼容通过 Ollama 运行的本地视觉模型及主流云服务提供商。
  • MCP Server 集成: 支持外部代理驱动工具,实现自主运行或逐步骤 UI 会话。
  • 会话状态管理: 支持注入和导出 Web 会话状态(cookies/localStorage),以处理认证会话。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目