AI测试 基于 LangChain + LangGraph 的智能化、零代码 Web UI 自动化测试平台。

Lambert · 2026年06月18日 · 305 次阅读

由于 2026 年前离职到 6 月仍然没有找到工作,在此期间猛补 Agent 开发相关的技能,虽说之前做过 LLM +RAG 的本地知识库问答,但随着小龙虾横空出世,将 agent 场景使用具象化。趁着这段时间学习折腾,做了个 UI 自动化测试平台 Agent

基于 LangChain + LangGraph 的智能化、零代码 Web UI 自动化测试平台。

项目简介

自动化 UI 测试 Agent 是一款基于 FastAPI + Vue3 + LangChain/LangGraph 的企业级 Web UI 自动化测试平台,具有以下特点:

  • 零代码测试:只需输入 URL 即可自动生成测试用例
  • AI 驱动:基于大语言模型智能分析页面元素和需求文档
  • Agent 架构:标准的「大模型 + 思考决策逻辑 + 外部工具集」架构
  • 技能扩展:遵循企业级标准化技能目录规范,支持插件化扩展
  • 可视化管理:提供完整的任务、用例、执行和报告管理界面

🛠️ 技术栈

后端技术栈

技术 版本 说明
Python 3.11+ 编程语言
FastAPI 0.109.0 高性能 Web 框架
Uvicorn 0.27.0 ASGI 服务器
SQLAlchemy 2.0.25 异步 ORM 框架
LangChain 1.3.9 LLM 应用开发框架
LangGraph 1.2.5 状态机工作流引擎
langchain-openai 1.3.2 OpenAI 兼容接口
Playwright 1.41.0 自动化测试工具
SQLite 内置 轻量级数据库

前端技术栈

技术 版本 说明
Vue 3.4+ 前端框架
Element Plus 2.6+ UI 组件库
Pinia 2.1+ 状态管理
Vue Router 4.3+ 路由管理
ECharts 5.5+ 图表库
Vite 5.4+ 构建工具

🧠 Agent 架构设计

Agent = 大模型(LLM) + 思考决策逻辑(LangGraph) + 外部工具集(LangChain Tools) + 标准化SKILL

大模型配置

llm = ChatOpenAI(
    model="deepseek-chat",
    temperature=0.5,
    api_key=apikey,
    base_url=baseurl
)

工具调用机制

  • 使用 @tool 装饰器定义工具
  • LLM 通过语义自主匹配、智能调用
  • 告别关键词硬匹配

✨ 功能特性

核心功能

  1. 任务管理:创建、编辑、删除测试任务,支持 URL 和文档导入
  2. 页面解析:自动抓取页面元素,识别可交互元素(按钮、输入框、选择框等)
  3. 用例生成:基于页面元素和需求文档智能生成测试用例
  4. 测试执行:支持批量执行测试用例,实时显示进度(WebSocket 推送)
  5. 报告生成:自动生成详细的测试报告,包含统计图表和截图

扩展功能

  1. 技能管理:标准化技能目录规范,支持自定义技能扩展
  2. 大模型配置:支持多模型切换和 API 配置
  3. 自动技能发现:启动时自动扫描技能目录,动态注册工具

📁 标准化技能目录规范

遵循主流开源企业级 Agent 工程规范:

skills/
└── <skill_name>/           # 独立可插拔技能目录
    ├── SKILL.md           # 技能说明文档(场景、约束、风险提示)
    ├── metadata.yaml      # 技能元数据(入参规范、输出格式)
    ├── examples/          # 使用示例和错误案例
    ├── templates/         # 模板文件
    ├── resources/         # 资源文件(白名单、权限规则)
    └── scripts/
        └── run.py         # 核心执行逻辑

已实现的技能

技能名称 描述 工具名
页面解析器 抓取网页可交互元素 parse_page
文档解析器 解析 PDF/Word 需求文档 parse_document
用例生成器 智能生成测试用例 generate_cases
测试执行器 执行测试用例 execute_tests
报告生成器 生成测试报告 generate_report

添加新技能

只需创建符合规范的技能目录,系统启动时自动发现并注册:

  1. 创建目录 skills/your_skill/
  2. 添加 metadata.yaml 定义元数据
  3. 添加 scripts/run.py 实现核心逻辑
  4. 重启服务即可自动注册

📁 项目结构

ai_uitest_agent/
├── agent/                    # Agent核心模块
│   ├── __init__.py
│   ├── core.py               # 代理核心逻辑
│   └── langgraph_agent.py    # LangGraph状态机代理
├── api/                      # API接口模块
│   ├── __init__.py
│   ├── routes.py             # REST API路由
│   ├── schemas.py            # 数据模型定义
│   ├── websocket.py          # WebSocket处理
│   └── websocket_manager.py  # WebSocket连接管理
├── skills/                   # 技能模块(标准化结构)
│   ├── __init__.py
│   ├── langchain_tools.py    # LangChain工具注册
│   ├── page_parser/          # 页面解析器技能
│   │   ├── SKILL.md
│   │   ├── metadata.yaml
│   │   └── scripts/run.py
│   ├── document_parser/      # 文档解析器技能
│   │   ├── SKILL.md
│   │   ├── metadata.yaml
│   │   └── scripts/run.py
│   ├── case_generator/       # 用例生成器技能
│   │   ├── SKILL.md
│   │   ├── metadata.yaml
│   │   └── scripts/run.py
│   ├── test_executor/        # 测试执行器技能
│   │   ├── SKILL.md
│   │   ├── metadata.yaml
│   │   └── scripts/run.py
│   └── report_generator/     # 报告生成器技能
│       ├── SKILL.md
│       ├── metadata.yaml
│       └── scripts/run.py
├── tools/                    # 工具模块
│   ├── __init__.py
│   ├── browser.py            # 浏览器操作工具
│   ├── config.py             # 配置管理
│   ├── database.py           # 数据库操作
│   ├── document_parser.py    # 文档解析工具
│   └── logger.py             # 日志管理
├── ui/                       # 前端模块
│   ├── src/
│   │   ├── api/              # API调用封装
│   │   ├── router/           # 路由配置
│   │   ├── stores/           # 状态管理
│   │   ├── views/            # 页面组件
│   │   ├── App.vue           # 根组件
│   │   └── main.js           # 入口文件
│   ├── index.html
│   ├── package.json
│   └── vite.config.js
├── .env                      # 环境变量配置
├── main.py                   # 应用入口
├── requirements.txt          # Python依赖
└── uitest_agent.db           # SQLite数据库文件

开源地址

https://gitee.com/fxlysm/ai_uitest_agent.git

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册