使用 AI 智能体在真实浏览器中自动测试 Jira 任务
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
传统的端到端(E2E)自动化测试一直存在维护成本高昂的痛点。每当 UI 界面出现微小改动,Cypress 或 Selenium 脚本往往就会因为选择器失效或断言超时而挂掉。随着大语言模型(LLM)与多模态视觉能力的发展,基于 AI Agent 的自主测试框架提供了一种全新解法:只需向智能体提供 Jira 任务单号与测试环境 URL,智能体就能自主提取验收标准(Acceptance Criteria)、规划测试步骤、控制真实 Chrome 浏览器进行点击交互,并实时判断测试用例是否通过。
本文将手把手带你使用两个开源项目搭建这套 AI 驱动的自动化 QA 测试系统:
- Agent Factory:基于节点图(Node Graph)的 Agent 编排与调试工作流平台。
- BaaS (Browser as a Service):基于 Go 语言开发的浏览器服务化引擎,可通过 REST API 驱动本地或远程 Chrome 浏览器执行页面导航、元素点击、截图与状态等待。
在构建高频交互的 AI 智能体时,极速且稳定的模型调用至关重要。通过接入 n1n.ai 提供的统一 API 网关,我们可以灵活调度高吞吐的大模型服务,大幅降低端到端测试的等待延迟。
系统整体架构图
整个测试流程由一个多节点组成的有向无环图(DAG)驱动。下图描述了 Jira、Agent Factory、BaaS 引擎以及大语言模型之间的协同机制:
+------------------+ +-------------------------------+ +-----------------------+
| Jira Ticket | ------> | Agent Factory 编排引擎 | ------> | BaaS Chrome 驱动 |
| (SCRUM-165 需求) | | (工作流与 Prompt 节点) | | (有界面 Chrome 窗口) |
+------------------+ +-------------------------------+ +-----------------------+
| |
v v
+-----------------------+ +-------------------+
| 统一 LLM API 网关 | | DOM 状态与截图 |
| (n1n.ai 极速接口) | | 自动化断言 |
+-----------------------+ +-------------------+
智能体工作流节点拆解
- Jira 数据拉取节点:通过 Jira REST API 和 Base64 基础认证获取任务描述与验收条件。
- 步骤生成节点 (
llm-generate-steps):解析自然语言需求,分解为顺序排列的 QA 操作步骤。 - UI 布局适配节点 (
llm-0):结合浏览器最新截图,将逻辑步骤定位到页面具体的视觉元素上。 - BaaS 指令转换节点 (
llm-1):将操作意图翻译为 BaaS 浏览器脚本指令(如navigate()、click()、type()、waitReady())。 - 视觉断言评估节点 (
llm-2):对照预期结果分析页面渲染截图,给出PASS、FAIL或BROKEN判定报告。
方案对比:传统 E2E 测试 vs AI 浏览器智能体
| 特性维度 | 传统 E2E 测试 (Cypress / Playwright) | AI 测试智能体 (BaaS + Agent Factory) |
|---|---|---|
| 脚本维护成本 | 极高;前端元素 DOM 改动即导致脚本报错 | 极低;LLM 结合视觉与语义动态识别 UI 元素 |
| 用例输入源 | 必须由测试工程师编写代码测试集 | 直接读取 Jira 任务、PR 描述或用户文档 |
| 断言逻辑 | 硬编码 DOM 节点状态与属性判断 | 语义化与多模态视觉对比校验 |
| 环境搭建成本 | 需针对每个功能模块编写独立用例 | 零代码编写,仅需配置 Prompt 与通用规则 |
| 运行可视化 | 默认 Headless 无界面运行 | 实时呈现 Headful 有界面 Chrome 操作过程 |
环境准备与前置要求
在搭建前,请确保开发环境满足以下基础条件:
- 必须准备:
- 一个 GitHub 账号(用于拉取代码仓库)。
- 一个大语言模型 API Key(可使用 OpenAI、Anthropic,或通过 n1n.ai 统一获取)。
- 本地安装有 Google Chrome 浏览器。
- 推荐配置:
- Docker 和 Docker Compose(用于快速部署 Agent Factory UI 平台与数据库)。
- Go 1.20+ 开发环境(用于在本地以 Headful 带界面模式运行 BaaS 引擎)。
- 一个具备 API Token 生成权限的 Atlassian 账号。
步骤一:部署 Agent Factory 工作流平台
首先拉取 Agent Factory 项目代码,并使用 Docker 启动其后台服务与持久化数据库:
# 克隆 Agent Factory 部署仓库
git clone https://github.com/Ursa-Minor-Beta/agent-factory-docker-api-ui.git
cd agent-factory-docker-api-ui
# 复制环境变量配置文件
cp .env.example .env
# 编辑 .env 文件,设置管理员账号与密码
nano .env
# 带数据库 Profile 启动服务
docker-compose --profile with-db up --build -d
启动完成后,在浏览器中打开 http://localhost:8080,确认能够正常访问 Agent Factory 登录界面。
步骤二:本地运行 BaaS(浏览器即服务)引擎
为了能够实时直观地观察 AI 智能体在 Chrome 界面上的操作过程,建议在本地环境直接运行 BaaS 引擎:
# 进入 baas 引擎目录
cd baas
# 在后台启动 MongoDB 依赖容器
docker compose up -d mongodb
# 复制环境变量模板
cp .env.example .env
编辑 baas/.env 文件,更新配置参数:
API_KEY=设置你的BaaS接口密钥
# 配置本地 Google Chrome 可执行文件路径
# macOS 示例:
BROWSER_EXECUTABLE='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
# Linux 示例: BROWSER_EXECUTABLE='/usr/bin/google-chrome'
# Windows 示例: BROWSER_EXECUTABLE='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
BROWSER_HEADFUL=true
LLM_CLIENT=openai
OPENAI_TOKEN="你的LLM API Token"
OPENAI_ORGANIZATION=