# testhub_platform
**Repository Path**: yinzhuoqun/testhub_platform
## Basic Information
- **Project Name**: testhub_platform
- **Description**: TestHub 是一个功能强大的智能测试管理平台,集成了 AI 需求分析、测试用例管理、API 测试、UI 自动化测试 等多个模块,旨在提升测试效率和质量。平台采用 Django + Vue3 技术栈,提供现代化的用户界面和丰富的功能特性。
https://github.com/chenjigang4167/testhub_platform
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: https://github.com/chenjigang4167/testhub_platform
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 1
- **Created**: 2026-01-14
- **Last Updated**: 2026-01-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TestHub 智能测试管理平台
**基于 AI 驱动的全栈测试管理平台**
[](https://www.python.org/)
[](https://www.djangoproject.com/)
[](https://vuejs.org/)
[](LICENSE)
## 📖 项目简介
TestHub 是一个功能强大的智能测试管理平台,集成了 **AI 需求分析**、**测试用例管理**、**API 测试**、**UI 自动化测试** 等多个模块,旨在提升测试效率和质量。平台采用 Django + Vue3 技术栈,提供现代化的用户界面和丰富的功能特性。
## ✨ 核心特性
### 🤖 AI 智能化能力
- **AI 需求分析**: 自动解析需求文档(PDF/Word/TXT),智能提取业务需求
- **智能测试用例生成**: 基于需求自动生成测试用例,支持多种测试类型
- **智能助手**: 集成 Dify AI 助手,提供测试咨询和问题解答
- **多模型支持**: 支持 DeepSeek、通义千问、硅基流动等多种 AI 模型
- **AI 智能模式**: 基于 Browser-use 的智能浏览器自动化,AI 理解页面并自动完成测试
### 🔐 安全机制
- **JWT 认证**: 采用企业级 JWT 双 Token 安全机制
- **自动刷新**: Access Token 过期前自动刷新,无感续期
- **Token 黑名单**: 登出时自动将 Token 加入黑名单,防止重放攻击
- **请求队列**: Token 刷新期间请求自动排队等待,确保请求不丢失
### ⚙️ 统一配置中心
- **环境检测**: 自动检测系统浏览器和 Playwright 环境
- **驱动管理**: 一键安装和更新浏览器驱动
- **AI 模型配置**: 统一管理多种 AI 模型的 API 配置
- **连接测试**: 支持 AI 模型连接测试和验证
### 📋 测试用例管理
- **完整的用例生命周期管理**: 创建、编辑、版本控制、归档
- **灵活的用例组织**: 支持项目、版本、标签等多维度分类
- **详细的用例步骤**: 支持步骤化用例设计,包含前置条件、操作步骤、预期结果
- **附件和评论**: 支持用例附件上传和团队协作评论
### 🔍 测试用例评审
- **评审流程管理**: 支持多人评审、评审模板、检查清单
- **评审状态跟踪**: 待评审、评审中、已通过、已拒绝等状态管理
- **评审意见记录**: 支持整体意见、用例意见、步骤意见等多层级反馈
- **评审模板**: 可自定义评审检查清单和默认评审人
### 🌐 API 测试
- **项目和集合管理**: 支持 HTTP/WebSocket 协议,树形结构组织 API
- **请求管理**: 支持 GET/POST/PUT/DELETE/PATCH 等多种 HTTP 方法
- **环境变量**: 全局和局部环境变量管理,支持变量替换
- **测试套件**: 批量执行 API 请求,支持断言和执行顺序配置
- **请求历史**: 完整的请求执行历史记录和结果追踪
- **定时任务**: 支持定时执行测试套件,邮件/Webhook 通知
- **测试报告**: 自动生成 Allure 测试报告
### 🖥️ UI 自动化测试
- **双引擎支持**: 支持 Selenium 和 Playwright 两种自动化引擎
- **元素管理**: 元素库管理,支持多种定位策略(ID、XPath、CSS 等)
- **页面对象模式**: 支持 POM 设计模式,提高脚本可维护性
- **测试脚本**: 可视化脚本编辑器,支持步骤录制和回放
- **测试套件**: 批量执行测试脚本,支持多浏览器(Chrome/Firefox/Edge)
- **执行记录**: 详细的执行日志、截图、视频录制
- **定时任务**: 支持 Cron 表达式、固定间隔、单次执行
- **AI 智能模式**:
- 基于 Browser-use 框架的智能浏览器自动化
- AI 理解页面结构并自动完成测试任务
- 支持文本模式(基于 DOM 解析)和视觉模式(基于截图识别)
- 支持多种 AI 模型:OpenAI、Anthropic、Google Gemini、DeepSeek、硅基流动等
- 智能任务规划和步骤自动生成
### 📊 测试执行与报告
- **测试计划**: 创建测试计划,关联项目、版本和测试用例
- **测试执行**: 手动和自动化测试执行,实时记录测试结果
- **执行历史**: 完整的执行历史追踪和结果对比
- **测试报告**: 多维度数据统计和可视化图表
- **Allure 集成**: 支持生成专业的 Allure 测试报告
### 👥 项目与团队管理
- **项目管理**: 多项目支持,项目成员和角色管理
- **版本管理**: 版本规划和测试用例关联
- **权限控制**: 基于项目的成员角色权限管理
- **用户配置**: 个性化用户设置和偏好配置
## 🏗️ 技术架构
### 后端技术栈
- **框架**: Django 4.2 + Django REST Framework
- **数据库**: MySQL 8.0+ (PyMySQL)
- **API 文档**: drf-spectacular (Swagger/ReDoc)
- **安全认证**: JWT (rest_framework_simplejwt) + Token 黑名单
- **AI 集成**:
- browser-use: AI 驱动的浏览器自动化
- langchain-openai: LLM 集成框架
- 多模型支持:OpenAI、Anthropic、Google Gemini、DeepSeek、硅基流动等
- **自动化测试**: Selenium, Playwright, Allure
- **HTTP 客户端**: httpx (异步 HTTP)
- **定时任务**: Django APScheduler
### 前端技术栈
- **框架**: Vue 3.3 + Composition API
- **构建工具**: Vite 4.4
- **UI 组件**: Element Plus 2.3
- **状态管理**: Pinia 2.1
- **路由**: Vue Router 4.2
- **HTTP 客户端**: Axios 1.5
- **数据可视化**: ECharts 5.4
- **代码编辑器**: Monaco Editor
- **其他**: vuedraggable (拖拽), xlsx (Excel), dayjs (日期)
## 📁 项目结构
```
testhub_platform/
├── apps/ # Django 应用模块
│ ├── users/ # 用户管理
│ ├── projects/ # 项目管理
│ ├── testcases/ # 测试用例管理
│ ├── testsuites/ # 测试套件管理
│ ├── executions/ # 测试执行管理
│ ├── reports/ # 测试报告
│ ├── reviews/ # 用例评审管理
│ ├── versions/ # 版本管理
│ ├── core/ # 核心功能模块
│ │ ├── models.py # 统一通知配置模型
│ │ ├── views.py # 核心功能视图
│ │ └── management/commands/ # 管理命令
│ │ ├── run_all_scheduled_tasks.py # 统一定时任务调度器
│ │ ├── init_locator_strategies.py # 初始化元素定位策略
│ │ └── download_webdrivers.py # 下载浏览器驱动
│ ├── requirement_analysis/ # AI 需求分析
│ ├── assistant/ # 智能助手
│ ├── api_testing/ # API 测试
│ └── ui_automation/ # UI 自动化测试
├── backend/ # Django 项目配置
│ ├── settings.py # 项目设置
│ ├── urls.py # URL 路由
│ └── middleware.py # 中间件
├── frontend/ # Vue3 前端
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── components/ # 公共组件
│ │ ├── views/ # 页面视图
│ │ │ ├── auth/ # 登录注册
│ │ │ ├── projects/ # 项目管理
│ │ │ ├── testcases/ # 测试用例
│ │ │ ├── reviews/ # 用例评审
│ │ │ ├── requirement-analysis/ # 需求分析
│ │ │ ├── assistant/ # 智能助手
│ │ │ ├── api-testing/ # API 测试
│ │ │ ├── ui-automation/ # UI 自动化
│ │ │ │ ├── ai/ # AI 智能模式
│ │ │ │ ├── config/ # 配置管理
│ │ │ │ └── suites/ # 测试套件
│ │ │ └── configuration/ # 统一配置中心
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── router/ # 路由配置
│ │ ├── utils/ # 工具函数
│ │ └── assets/ # 静态资源
│ └── package.json
├── media/ # 媒体文件(上传文件、截图等)
├── logs/ # 日志文件
│ └── scheduler.log # 统一调度器日志
├── allure/ # Allure 测试报告
├── requirements.txt # Python 依赖
└── manage.py # Django 管理脚本
```
## 🚀 快速开始
### 环境要求
- **Python**: 推荐Python3.12,其他版本可能会存在兼容性问题
- **Node.js**: 18+
- **MySQL**: 8.0+
- **浏览器驱动**: ChromeDriver / GeckoDriver (用于 UI 自动化,建议提前下载好)
### 后端部署
1. **克隆项目**
```bash
git clone
cd testhub_platform
```
2. **创建虚拟环境**
```bash
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
```
3. **安装依赖**
```bash
pip install -r requirements.txt
```
4. **配置环境变量**
创建 `.env` 文件:
```env
# 数据库配置
DB_NAME=testhub
DB_USER=root
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=3306
# Django 配置
SECRET_KEY=your-secret-key-here
DEBUG=True
# 邮件配置(可选)
EMAIL_HOST=smtp.163.com
EMAIL_PORT=465
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@gmail.com
EMAIL_HOST_PASSWORD=your_email_password
DEFAULT_FROM_EMAIL=your_email@gmail.com
```
5. **初始化数据库**
```bash
# 创建数据库
mysql -u root -p
CREATE DATABASE testhub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
# 创建 migrations 目录(如果不存在)
mkdir -p apps/testcases/migrations
echo "# This file is intentionally left empty" > apps/testcases/migrations/__init__.py
# 执行迁移
python manage.py makemigrations
python manage.py migrate
# 创建超级用户
python manage.py createsuperuser
```
6. **初始化UI自动化测试定位策略**
```bash
# 根目录执行
python manage.py init_locator_strategies
```
7**启动定时任务**
```bash
# 启动统一任务调度器(同时管理API和UI模块)
python manage.py run_all_scheduled_tasks
```
8**启动服务**
```bash
# 启动 Django 开发服务器
python manage.py runserver
```
### 前端部署
1. **安装依赖**
```bash
cd frontend
npm install
```
2. **启动开发服务器**
```bash
npm run dev
```
3. **构建生产版本**
```bash
npm run build
```
### 访问应用
- **前端**: http://localhost:3000
- **后端 API**: http://localhost:8000
- **API 文档**: http://localhost:8000/api/docs/
- **Admin 后台**: http://localhost:8000/admin/
## 📚 核心功能模块说明
### 1. 核心功能模块 (`core`)
**概述**:
`core` 模块是跨模块的通用功能模块,提供全局共享的管理命令和统一配置管理。
**管理命令**:
- `run_all_scheduled_tasks`: 统一定时任务调度器
- 同时调度 API 测试和 UI 自动化模块的定时任务
- 支持自定义检查间隔(默认60秒)
- 支持单次执行模式(`--once`)
- 详细日志输出,便于调试和监控
- `init_locator_strategies`: 初始化UI自动化元素定位策略
- 创建/更新12种常用元素定位策略
- 通用策略:ID, CSS, XPath, name, class, tag
- Playwright 专用策略:text, placeholder, role, label, title, test-id
- `download_webdrivers`: 下载浏览器驱动
- 支持 Chrome (ChromeDriver)
- 支持 Firefox (GeckoDriver)
- 支持 Edge (EdgeDriver)
- 自动缓存,后续使用更快
**数据模型**:
- `UnifiedNotificationConfig`: 统一通知配置
- 支持企业微信、钉钉、飞书等多种 Webhook 机器人
- 每个机器人可独立配置启用状态
- 支持 API 测试和 UI 自动化测试模块独立开关
- JSON 格式存储多个机器人配置
**API 路由**:
- `/api/core/notification-configs/`: 统一通知配置管理
**日志文件**:
- `logs/scheduler.log`: 统一调度器运行日志
### 2. AI 需求分析模块 (`requirement_analysis`)
**功能**:
- 上传需求文档(PDF/Word/TXT)
- AI 自动解析需求文档内容
- 提取业务需求和功能点
- 基于需求自动生成测试用例
- 支持多种 AI 模型配置
**数据模型**:
- `RequirementDocument`: 需求文档
- `RequirementAnalysis`: 需求分析记录
- `BusinessRequirement`: 业务需求
- `GeneratedTestCase`: 生成的测试用例
- `AnalysisTask`: 分析任务
- `AIModelConfig`: AI 模型配置
### 3. 智能助手模块 (`assistant`)
**功能**:
- 集成 Dify AI 助手
- 多会话管理
- 聊天历史记录
- 测试咨询和问题解答
**数据模型**:
- `DifyConfig`: Dify API 配置
- `AssistantSession`: 助手会话
- `ChatMessage`: 聊天消息
### 4. API 测试模块 (`api_testing`)
**功能**:
- API 项目和集合管理
- HTTP/WebSocket 请求管理
- 环境变量管理
- 测试套件和自动化执行
- 请求历史和结果追踪
- 定时任务和通知
- Allure 报告生成
**数据模型**:
- `ApiProject`: API 项目
- `ApiCollection`: API 集合
- `ApiRequest`: API 请求
- `Environment`: 环境变量
- `TestSuite`: 测试套件
- `RequestHistory`: 请求历史
- `ApiScheduledTask`: 定时任务
- `ApiNotificationConfig`: 通知配置
### 5. UI 自动化测试模块 (`ui_automation`)
**功能**:
- 元素库管理(支持多种定位策略)
- 页面对象模式(POM)
- 测试脚本编辑和执行
- 测试套件批量执行
- 多浏览器支持
- 执行截图和视频录制
- 定时任务调度
- **AI 智能测试模式**:
- 基于 Browser-use 框架的智能浏览器自动化
- AI 自动理解页面结构并生成测试步骤
- 支持文本模式(基于 DOM 解析)和视觉模式(基于截图识别)
- 智能任务规划和执行
- 执行过程实时日志记录
**核心组件**:
- `ai_base.py`: Browser-use 基础框架和补丁
- `ai_agent.py`: AI Agent 实现(BrowserAgent 类)
- `ai_models.py`: 多 AI 模型统一接口
**数据模型**:
- `UiProject`: UI 项目
- `Element`: 元素
- `ElementGroup`: 元素分组
- `PageObject`: 页面对象
- `TestScript`: 测试脚本
- `TestCase`: 测试用例
- `TestSuite`: 测试套件
- `TestExecution`: 测试执行
- `UiScheduledTask`: 定时任务
- `AICase`: AI 智能用例
- `AIIntelligentModeConfig`: AI 智能模式配置
### 6. 统一配置中心模块 (`configuration`)
**功能**:
- **环境检测**: 自动检测系统已安装的浏览器
- **驱动管理**: 一键安装 Playwright 浏览器驱动
- **AI 模型配置**:
- 支持多种 AI 提供商:通义千问、DeepSeek、硅基流动、本地模型
- 按角色配置:测试用例编写器、测试用例评审员、Browser Use 文本模式
- API 密钥、基础 URL、模型名称、参数配置
- 连接测试功能
**API 路由**:
- `/api/ui-automation/config/environment/`: 环境配置
- `/api/ui-automation/config/ai-mode/`: AI 智能模式配置
### 7. 测试用例评审模块 (`reviews`)
**功能**:
- 创建评审任务
- 分配评审人员
- 评审意见记录
- 评审模板管理
- 评审状态跟踪
**数据模型**:
- `TestCaseReview`: 测试用例评审
- `ReviewAssignment`: 评审分配
- `TestCaseReviewComment`: 评审意见
- `ReviewTemplate`: 评审模板
### 8. 测试执行模块 (`executions`)
**功能**:
- 测试计划管理
- 测试执行记录
- 执行历史追踪
- 执行结果统计
**数据模型**:
- `TestPlan`: 测试计划
- `TestRun`: 测试执行
- `TestRunCase`: 测试执行用例
- `TestRunCaseHistory`: 执行历史
## 🔧 配置说明
### JWT 安全配置
项目采用企业级 JWT 双 Token 安全机制:
**后端配置** (`backend/settings.py`):
```python
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=30), # Access Token 30分钟
'REFRESH_TOKEN_LIFETIME': timedelta(days=7), # Refresh Token 7天
'ROTATE_REFRESH_TOKENS': True, # 刷新时轮换 Refresh Token
'BLACKLIST_AFTER_ROTATION': True, # 旧 Refresh Token 加入黑名单
'UPDATE_LAST_LOGIN': True,
'ALGORITHM': 'HS256',
'AUTH_HEADER_TYPES': ('Bearer',),
}
```
**安全特性**:
- 双 Token 机制:短期 Access Token + 长期 Refresh Token
- 自动刷新:Token 过期前 5 分钟自动刷新,无感续期
- Token 黑名单:登出时将 Refresh Token 加入黑名单,防止重放攻击
- 请求队列:Token 刷新期间的请求自动排队等待
- 防循环机制:logout 函数包含防循环调用保护
**前端 Token 管理**:
- Token 存储在 localStorage
- 请求拦截器自动添加 Bearer Token
- 响应拦截器处理 401 错误并自动刷新 Token
### AI 智能模式配置
在统一配置中心可以配置多种 AI 模型:
**支持的 AI 提供商**:
- **OpenAI**: GPT-4、GPT-3.5 等模型
- **Azure OpenAI**: Azure 托管的 OpenAI 服务
- **Anthropic**: Claude 系列模型
- **Google Gemini**: Gemini Pro、Gemini Flash
- **DeepSeek**: DeepSeek 系列模型
- **硅基流动**: 聚合多种 AI 模型
**配置角色**:
- `testcase_writer`: 测试用例编写
- `testcase_reviewer`: 测试用例评审
- `browser_use_text`: Browser Use 文本模式(DOM 解析)
- `browser_use_vision`: Browser Use 视觉模式(截图识别)- 暂未实现
**配置参数**:
- API Key: API 访问密钥
- Base URL: API 端点地址(可选)
- Model Name: 模型名称
- Temperature: 温度参数(控制随机性)
- Max Tokens: 最大生成 Token 数
**连接测试**:
配置完成后可使用"测试连接"功能验证配置是否正确。
### AI 需求分析配置
在系统配置中心可以配置多种 AI 模型:
- **DeepSeek**: 用于需求分析和用例生成
- **通义千问**: 备选 AI 模型
- **硅基流动**: 备选 AI 模型
- **自定义模型**: 支持配置自定义 API
### Dify 助手配置
配置 Dify API 以启用智能助手功能:
- API URL: Dify API 端点
- API Key: Dify API 密钥
### UI 自动化配置
- **执行引擎**: Selenium / Playwright
- **浏览器**: Chrome / Firefox / Edge
- **WebDriver**: 自动下载或手动配置驱动路径
- **运行模式**: 有头模式 / 无头模式
- **AI 智能模式**:
- 文本模式:基于 DOM 解析,快速高效
- 视觉模式:基于截图识别,适合复杂页面
### 通知配置
- **邮件通知**: SMTP 配置
- **Webhook 通知**: 企业微信、钉钉等
## 📊 数据库设计
项目使用 MySQL 数据库,主要表结构包括:
- **用户相关**: `users`, `user_profiles`
- **项目管理**: `projects`, `project_members`, `versions`
- **测试用例**: `testcases`, `testcase_steps`, `testcase_attachments`, `testcase_comments`
- **测试套件**: `testsuites`, `testsuite_cases`
- **测试执行**: `test_plans`, `test_runs`, `test_run_cases`
- **用例评审**: `testcase_reviews`, `review_assignments`, `review_comments`
- **核心配置**: `core_unifiednotificationconfig` - 统一通知配置
- **需求分析**: `requirement_documents`, `requirement_analyses`, `business_requirements`, `generated_test_cases`
- **AI 配置**: `ai_model_configs`, `prompt_configs` - AI 模型和提示词配置
- **智能助手**: `dify_configs`, `assistant_sessions`, `chat_messages`
- **API 测试**: `api_projects`, `api_collections`, `api_requests`, `api_environments`, `test_suites`, `request_history`, `api_scheduled_tasks`
- **UI 自动化**: `ui_projects`, `ui_elements`, `element_groups`, `ui_page_objects`, `ui_test_scripts`, `ui_test_cases`, `ui_test_suites`, `ui_test_executions`, `ui_scheduled_tasks`, `ai_cases`, `ai_intelligent_mode_configs`
- **JWT 安全**: `blacklisted_token`, `outstanding_token` - Token 黑名单管理
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request 来帮助改进项目!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📝 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
## 📧 联系方式
如有问题或建议,欢迎通过 Issue 反馈。
---
Made with ❤️ by 大刚(公众号:测试开发实战)