
Harness 是一个原生 macOS 开发者工具,用 AI agent 来做用户测试。它不是写一组固定断言的 UI 自动化测试,而是让 LLM 像真实用户一样看屏幕、点击、输入、滚动,尝试完成你用自然语言写下的目标,然后告诉你哪里卡住、哪里模糊、哪里让人想放弃。
项目当前在 GitHub 上约 249 stars,MIT 许可证,主语言是 Swift,版本标注为 v0.5.0,支持 macOS 14+。它可以驱动三类目标:iOS Simulator、macOS app 和 Web app。你给它一个目标,比如“注册并创建第一份清单”或“删除我的账户”,再给一个 persona,比如“第一次使用、从没见过这个 App 的用户”,Harness 就会启动目标应用并执行测试。
比脚本更接近真实用户
传统 UI 测试擅长验证“按钮还能不能点”,但不擅长发现“这个标签是不是让用户误解”。Harness 的输出更偏 UX 诊断:每次 run 会给出目标是否完成、一路经过了哪些屏幕和动作,以及 agent 在什么时候标记了 friction。对于 onboarding、登录、支付、设置页、删除账户这类容易出现体验死角的流程,这种测试方式很有意思。
技术上,它针对不同平台走不同驱动:iOS 侧用 xcodebuild、simctl 和 WebDriverAgent;macOS app 用 NSWorkspace、CGEvent 和窗口截图;Web app 用内置 WKWebView。v0.5.0 的重点之一是 Set-of-Mark targeting:在 iOS、macOS 和 Web 上都给可交互元素编号,让 agent 调用 tap_mark(id),尽量减少猜像素坐标带来的误点。
Harness 也支持本地模型路径。README 里提到可以通过 Ollama 在本机跑 Qwen3-VL 8B、Gemma 4 Vision 9B、Llama 3.2 Vision 11B 等视觉模型,也可以使用 Anthropic、OpenAI、Google 的云模型。本地模型的好处是截图不出机器、成本为 0、可离线;代价是单步速度更慢,friction 质量通常低于云端大模型。
它仍处于 alpha 阶段,需要屏幕录制和辅助功能权限,Web 目前是 WebKit-only,Chrome CDP 还在路线图上。但如果你在做 iOS、Mac 或 Web 产品,又想用 AI 批量跑“像人一样”的探索式用户测试,Harness 是一个值得关注的开源实验。
项目地址
官网:https://awizemann.github.io/harness/
项目地址:https://github.com/awizemann/harness
原创文章,如若转载,请注明出处:https://wefound.cc/p/3568.html