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),以處理認證會話。
相關
- 專案
- 專案
- 專案
- 專案
- 專案