开发者生态
morning
Show HN:Argus,针对编码代理移动速度比 QA 更快的团队的代理 QA
2026-08-19
1 阅读
约7分钟阅读
canergl
字号:
AI 代理可以像真实用户一样测试您的 UI — 无需编写脚本,无需维护选择器。 Argus 是一个可视化 UI 测试代理。描述一个测试,将其指向 HTTP(S) 页面,然后观察它在隔离的 Playwright 浏览器上下文中检查该页面。自动捕获运行、时间线、屏幕截图参考和结构化报告。 Argus 会发现您未编写测试的错误。将其指向一个页面,描述“工作”是什么样子,然后一个自主代理会像真实用户一样探索您的用户界面 - 单击、打字、滚动 - 然后为您提供带有屏幕截图和时间线的结构化报告。无需维护测试脚本,无需照顾脆弱的选择器。代理,非脚本化 — 代理对页面进行推理并进行调整,它不会重播固定脚本 适合您的堆栈 — 基于 Playwright 构建,适用于本地主机和专用网络应用程序 零设置仪式 — 在几分钟内开始测试 运行 Argus 的最快方式:无需安装,无需管理 API 密钥,无需自行托管。从 argustest.com 开始。运行不是单个模型调用 - 它是五个代理相互传递,您可以在实时运行视图中观看每个代理的工作: 验证器 - 在运行开始之前检查目标 URL 和测试描述实际上是否可测试。理解者——阅读测试描述并将其分解为不同的测试用例。资源管理器 - 首先抓取应用程序,绘制出页面以及每个页面上可用的操作。战略家——将地图和测试用例转化为具体的分步计划。执行器 - 在真实的浏览器中运行计划:导航、键入、单击并确认结果。黑匣子中什么也没有发生——每个代理在工作时都会流式传输其推理,直至单个操作,例如“导航到/公司”或“确认‘Airbnb’在页面上”,因此您可以看到应用程序被映射,计划被构建,测试被实时执行。测试只是意图的描述 - Argus 弄清楚如何与页面交互。例如,指向 Y Combinator 的站点: Target: https://www.ycombinator.com 测试启动目录。 1. 从主页导航至 Companies/startup 目录。 2. 按名称搜索知名 YC 公司(例如“Airbnb”)并确认其出现在结果中。 3. 按特定批次(例如“2024 年冬季”)过滤目录,并确认列出的公司更新以匹配。 4. 从结果中打开公司的资料,并确认其名称、一行描述、批次和网站链接均正确呈现。 5. 导航回目录并确认搜索/过滤状态的行为符合预期 — 保留或重置,无论页面设计的目的如何。 6. 将视口大小调整为 375 像素宽度,并确认导航折叠成移动菜单,并且目录列表保持可滚动和可用,没有重叠元素。如果已知公司未出现在搜索结果中、批处理过滤器实际上未过滤列表、公司简介缺少预期字段或者移动布局损坏,则测试失败。 Argus 像人一样运行——点击流程,阅读页面来判断成功或失败——并返回时间线、每一步的屏幕截图以及通过/失败报告及其背后的推理。 Argus 具有源可用且完全本地优先 — SQLite 存储,无需遥测,您的数据和屏幕截图永远不会离开您的计算机。更喜欢自托管?请按照以下步骤操作。 cp .env.example .env # 在 .env 中设置 GEMINI_API_KEY uvsync --dev uv run playwright install chromium cd frontend && npm install && npm run build && cd .. uv run uvicorn argus.app:app --reload --env-file .env 打开 http://localhost:8000 。对于前端热重载,请在 frontend/ 中与 Uvicorn 一起运行 npm run dev 并打开 http://localhost:5173 。配置仅限于环境: 变量 默认用途 GEMINI_API_KEY — 实际执行所需 GEMINI_MODEL gemini-2.5-flash Gemini REST 模型 ARGUS_DATA_DIR 数据 SQLite 和屏幕截图目录 ARGUS_HEADLESS true Playwright 浏览器模式 ARGUS_RUN_TIMEOUT 300 运行超时(以秒为单位) Argus 接受正常 HTTP(S) 目标,包括受信任的本地主机和专用网络应用程序。它拒绝目标 URL 中的凭据和敏感查询参数,并且从不存储提供者机密、键入的浏览器值或检查的页面内容。设置屏幕仅显示提供商配置是否存在。 cp .env.example .env # 在 .env 中设置 GEMINI_API_KEY docker compose up --build UI 位于 http://localhost:8000 ,持久数据写入 ./data 。 uv run pytest uv run ruff check argus测试 uv run Pyright argus测试 cd frontend && npm run typecheck && npm run lint && npm run build argus/runtime :提供者中立代理、消息、工具和会话边界 argus/providers/gemini.py :原始httpx Gemini REST/SSE适配器(无提供者SDK) argus/pipeline.py :规划,一个浏览器代理、证据捕获和报告 argus/store.py :SQLite 运行、事件、屏幕截图和报告 argus/app.py :REST API、reconn
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱