桃子桃子快讯
返回首页
工具

开源 AI 测试代理 Argus:用大模型像真人一样自动跑 UI 测试

Argus 是一个基于 Playwright 的开源 AI 测试代理,通过六阶段流水线让大模型自主探索 Web UI 并…

2026.08.28 · 周五4 分钟阅读

Argus 是一款近日在 Hacker News 上以「Show HN」形式发布的开源 AI 测试代理,主打「无需编写测试脚本、无需维护选择器」的视觉化 UI 测试体验。用户只需用自然语言描述「什么是正常工作」,再指向一个 HTTP(S) 页面,Argus 便会以隔离的 Playwright 浏览器上下文自主探索页面,自动记录运行时间线、截图引用与结构化报告,从而发现那些没有被显式写进测试用例的缺陷。

核心设计:六阶段 Agent 流水线

Argus 把一次测试运行拆成有边界的六个阶段,而不是一次性、不受约束地调用大模型:

  • Validator(校验器):在运行开始前检查目标 URL 与测试描述是否真的具备可测试性。
  • Comprehender(理解器):阅读测试描述,将其拆解为若干独立测试用例。
  • Explorer(探索器):先对应用做一次爬取,绘制出页面与可用操作的地图。
  • Strategist(策略器):将地图与用例转化为具体的逐步执行计划。
  • Executor(执行器):在真实浏览器中执行计划,包含导航、输入、点击与结果确认。
  • Critic(评审器):独立复核请求、执行过程与证据,再决定是否接受结论。

阶段之间通过经过校验的 JSON 契约传递结果。契约格式异常时只允许一次修复重试;只有当所有用例都通过、且每一项都引用了真实落盘的截图时,该次运行才会被判定为通过。

浏览器能力与安全机制

Argus 的 Go 端 Agent 对外暴露一套基于引用(reference)的语义化浏览器操作面,涵盖页面检查、导航、点击、输入、多字段填写、表单提交、下拉控件、键盘输入、滚动、视口缩放、有界等待、控制台与网络错误抓取,以及全页与实时视口截图。所有截图会直接返回给当前配置的模型提供商。

在安全边界上,模型调用永远拿不到任意的 CSS 选择器权限。每次检查都会生成「运行级局部」的元素引用,一旦发生导航或新一轮检查,旧引用即被作废。视觉点击则是在 Gemini 给出的坐标处解析真实 DOM 元素,再应用与普通点击相同的动作策略后执行。

多模型支持与本地部署

Argus 内置对多家模型的适配,并支持本地优先、SQLite 存储、无应用层遥测的部署方式。环境变量即可完成配置,关键项包括:

  • GEMINI_API_KEY / GEMINI_MODEL:默认 gemini-2.5-flash,用于真实执行与视觉定位。
  • OPENAI_API_KEY / OPENAI_MODEL:默认 gpt-4o,启用固定 GPT 视觉模型。
  • KIMI_API_KEY / KIMI_MODEL:默认 moonshot-v1-8k-vision-preview,可配置 KIMI_BASE_URL。
  • ZAI_API_KEY / GLM_MODEL:默认 glm-5.3-flash,可配置 ZAI_BASE_URL,启用 GLM-5.3 Flash 提供方。
  • ARGUS_RUN_TIMEOUT:默认 300 秒;ARGUS_DB_PATH:SQLite 存储路径,截图与元数据保存在同一目录。

运行要求为 Go 1.25+、Node.js 20.19+ 或 22.12+,以及上述任意一家提供方的 API Key。项目同时提供了托管平台 argustest.com,用户无需安装即可快速试用。

一个具体的测试示例

以 Y Combinator 官网为例,用户只需描述测试意图,例如「从首页进入 companies/startup 目录,搜索 Airbnb 并确认结果出现;按 Winter 2024 批次筛选,确认列表随之更新;打开一家公司详情页,确认名称、一句话介绍、批次与官网链接均正常渲染;切换至 375px 移动视口,确认导航折叠为移动菜单且目录列表可滚动无遮挡」。Argus 会像真人一样逐步点击、阅读页面、判定成败,并返回包含时间线、各步骤截图与推理说明的 pass/fail 报告。

总体来看,Argus 把大模型的视觉理解与 Playwright 的浏览器控制能力结合,给「自然语言驱动的 UI 回归测试」提供了一个可本地化、可源码阅读的开源实现,对中小团队的测试自动化流程具备一定参考价值。

信源