Skip to content

Browser Automation Testing:给网页 Agent 和前端流程做验收 ​

这篇文章解决什么问题 ​

很多 AI Agent 项目有前端页面,但只测后端接口,不测真实用户流程。尤其是:

  • RAG 问答页面。
  • Agent 任务面板。
  • 工具审批弹窗。
  • 文件上传入库。
  • 数据分析图表。
  • Human Takeover 运营台。

Browser Automation Testing 的目标是用自动化浏览器验证“用户真的能完成关键流程”。

适合测什么 ​

流程验证点
登录权限和 session
文件上传上传、状态、错误提示
RAG 问答输入问题、显示答案、引用可见
Agent 任务状态推进、Trace 展示
工具审批参数展示、确认/拒绝
数据分析SQL 结果、图表渲染
反馈点赞/点踩/文本反馈
运营台接管队列、详情、处理动作

测试分层 ​

层级工具目的
unitvitest/jest组件逻辑
api smokepytest/httpx接口行为
e2e browserPlaywright用户流程
visual checkscreenshot布局和关键元素
synthetic monitor定时线上 smoke生产可用性

Browser 测试不替代单元测试,但能覆盖真实体验。

Playwright 测试结构 ​

text
tests/e2e/
  auth.spec.ts
  rag-chat.spec.ts
  upload-ingestion.spec.ts
  tool-approval.spec.ts
  operations-console.spec.ts

每个测试要有:

  • 准备数据。
  • 打开页面。
  • 执行用户动作。
  • 等待状态变化。
  • 断言关键元素。
  • 必要时截图。

AI Agent 页面怎么断言 ​

AI 输出不稳定,不能断言完整文本。可以断言:

  • 是否出现 answer container。
  • 是否有 citation。
  • 是否有 run_id。
  • 是否有 task status。
  • 是否有 tool call card。
  • 是否有 approval button。
  • 是否有 feedback button。
  • 是否无 console error。

对于内容质量,用后端 eval,不要在浏览器测试里硬断言长文本。

测试数据 ​

建议准备固定测试数据:

  • 小型 PDF。
  • 固定知识库文档。
  • mock LLM provider。
  • mock tool server。
  • 测试用户和角色。
  • 可重复清理的数据库。

不要让浏览器测试依赖真实模型随机输出。

常见坑 ​

1. 用 sleep 等待 ​

应该等待元素或 API 状态,而不是固定 sleep。

2. 断言完整 AI 文本 ​

AI 文本可能变。断言结构、引用和状态更稳定。

3. 不保存失败截图 ​

失败时应保存 screenshot、trace、console log。

4. 只测 happy path ​

还要测上传失败、无权限、审批拒绝、工具失败。

面试表达模板 ​

我会为 AI Agent 前端做 Browser Automation Testing,验证用户真实流程,而不是只测 API。比如 RAG 页面要测上传文档、入库状态、提问、答案卡片、引用和反馈;工具调用要测审批弹窗、参数展示、确认和拒绝;运营台要测接管队列和详情。由于模型输出不稳定,浏览器测试不会断言完整回答文本,而是断言结构化 UI 元素、run_id、citation、task status、tool call card 和无 console error。内容质量放在后端 eval 测试里验证。

项目落地清单 ​

  • [ ] 关键用户流程有 e2e 测试。
  • [ ] 使用 mock LLM / mock tool 保证稳定。
  • [ ] 不用固定 sleep。
  • [ ] AI 文本断言结构而非全文。
  • [ ] 失败保存 screenshot 和 trace。
  • [ ] 覆盖权限和失败场景。
  • [ ] e2e 结果纳入发布检查。

相关链接 ​