AI 实现的 UI 自动化测试项目,基于大语言模型驱动的智能 UI 测试工具。
VisioBot 是一个基于 AI 技术的 UI 自动化测试平台,通过大语言模型理解测试需求,自动生成测试用例并执行,支持多平台设备管理和测试报告生成。
- 🤖 AI 驱动测试:基于大语言模型自动理解需求、生成测试用例
- 📱 多设备管理:支持 Android 设备的连接、监控和管理
- 🎯 智能定位:自动识别 UI 元素,无需手动编写定位表达式
- 📊 实时测试报告:生成详细的测试执行报告和截图
- 🌐 Web 界面:提供直观的 Web 管理界面
- 🔄 自动化执行:支持测试任务的自动调度和执行
- 💬 自然语言交互:支持通过自然语言描述测试需求
- 语言:Go 1.23.0
- 框架:Gin Web 框架
- 数据库:GORM + SQLite
- AI 集成:langchaingo (LLM 调用)
- 设备通信:ADB (Android Debug Bridge)
- 日志:Zap + Zerolog
- WebSocket:实时通信
- 框架:Vue.js
- 构建工具:Vite
- Android:ADB + UiAutomator2
VisioBot/
├── executor/ # 后端执行引擎
│ ├── ai/ # AI 相关功能
│ ├── config/ # 配置管理
│ ├── core/ # 核心服务
│ ├── global/ # 全局变量
│ ├── initialize/ # 初始化逻辑
│ ├── langchaingo/ # LLM 集成
│ ├── llm/ # 大模型工具
│ ├── middleware/ # 中间件
│ ├── model/ # 数据模型
│ ├── router/ # API 路由
│ ├── service/ # 业务服务
│ ├── uiagent/ # UI 代理
│ ├── utils/ # 工具函数
│ ├── websocket/ # WebSocket 处理
│ └── main.go # 入口文件
├── web/ # 前端应用
│ ├── public/ # 静态资源
│ └── src/ # 源代码
├── apk/ # 测试用 APK 文件
├── adb/ # ADB 相关文档
├── new/ # 技术对比文档
└── README.md # 项目说明
- Go:1.23.0 及以上
- Node.js:16.0.0 及以上
- npm/yarn:最新版本
- ADB:Android Debug Bridge,用于连接 Android 设备
git clone <repository-url>
cd VisioBot# 进入执行引擎目录
cd executor
# 安装依赖
go mod tidy
# 启动服务
go run main.go# 返回项目根目录
cd ..
# 进入前端目录
cd web
# 安装依赖
npm install
# 启动开发服务器
npm run dev打开浏览器访问:http://localhost:5173
基于 langchaingo 实现大语言模型调用,用于:
- 理解自然语言测试需求
- 生成测试用例和执行步骤
- 解析 UI 元素和上下文
- 智能决策测试执行路径
- 自动发现和连接 Android 设备
- 实时监控设备状态
- 支持设备分组和管理
- 提供设备操作 API
- 基于 ADB 和 UiAutomator2 实现 UI 操作
- 支持点击、输入、滑动等常用操作
- 自动截图和元素识别
- 支持多应用切换
- 支持多种测试执行模式
- 实时记录测试过程
- 生成详细测试报告
- 支持测试用例管理
- 确保设备已开启开发者模式和 USB 调试
- 通过 USB 连接设备到服务器
- 在 Web 界面中查看已连接设备
- 在 Web 界面中点击「创建任务」
- 输入测试需求(支持自然语言描述)
- 选择目标设备和应用
- 点击「开始测试」
- 在测试任务列表中查看任务状态
- 点击任务查看详细执行报告
- 查看测试截图和日志
- 导出测试报告
配置文件位于 executor/config/config.go,主要配置项包括:
ADB.Path:ADB 工具路径LLM:大模型调用配置Server:服务器端口和地址Log:日志配置
配置文件位于 web/src/config,主要配置项包括:
API_BASE_URL:后端 API 地址WEBSOCKET_URL:WebSocket 连接地址
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web 前端 │────▶│ 后端服务 │────▶│ AI 引擎 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ ▲
▼ │
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 设备管理 │◀────│ 测试执行器 │◀────│ 测试用例生成 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌─────────────────┐
│ 测试报告 │◀────│ 数据存储 │
└─────────────────┘ └─────────────────┘
- 需求输入:用户通过 Web 界面输入测试需求
- AI 分析:大语言模型理解需求,生成测试用例
- 任务调度:后端服务调度测试任务到目标设备
- 设备执行:测试执行器在设备上执行测试用例
- 结果收集:实时收集测试结果和截图
- 报告生成:生成详细的测试报告
- VisioBot 使用指南 - 详细的用户使用手册
- 后端 Go 代码遵循 Go 官方规范
- 前端代码遵循 Vue 最佳实践
- 提交代码前请运行 lint 检查
# 后端构建
cd executor
go build -o visiobot main.go
# 前端构建
cd web
npm run build
# 后端测试
cd executor
go test ./...
# 前端测试
cd web
npm run test- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
MIT License
- 增强 AI 引擎能力,优化测试用例生成逻辑
- 完善设备管理功能,支持更多设备操作
- 优化 UI 自动化执行效率
- 改进前端界面,提升用户体验
- 修复已知 bug,增强系统稳定性
详细版本说明:VisioBot v0.1.4
- 实现基础的设备管理功能
- 支持 AI 测试用例生成
- 实现 Web 管理界面
- 支持 Android 设备测试
感谢所有为项目做出贡献的开发者们!
VisioBot - AI 驱动的下一代 UI 自动化测试平台
