Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

eaglebetter/testhub_platform

Repository files navigation

TestHub 智能测试管理平台

基于 AI 驱动的全栈测试管理平台

Python Django Vue 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/ # 版本管理
│ ├── 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/ # 日志文件
├── allure/ # Allure 测试报告
├── requirements.txt # Python 依赖
└── manage.py # Django 管理脚本

🚀 快速开始

环境要求

  • Python: 3.11+
  • Node.js: 18+
  • MySQL: 8.0+
  • 浏览器驱动: ChromeDriver / GeckoDriver (用于 UI 自动化)

后端部署

  1. 克隆项目
git clone <repository-url>
cd testhub_platform
  1. 创建虚拟环境
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量

创建 .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
  1. 初始化数据库
# 创建数据库
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
  1. 初始化UI自动化测试定位策略
# 根目录执行
python manage.py init_locator_strategies

7启动服务

# 启动 Django 开发服务器
python manage.py runserver

前端部署

  1. 安装依赖
cd frontend
npm install
  1. 启动开发服务器
npm run dev
  1. 构建生产版本
npm run build

访问应用

📚 核心功能模块说明

1. AI 需求分析模块 (requirement_analysis)

功能:

  • 上传需求文档(PDF/Word/TXT)
  • AI 自动解析需求文档内容
  • 提取业务需求和功能点
  • 基于需求自动生成测试用例
  • 支持多种 AI 模型配置

数据模型:

  • RequirementDocument: 需求文档
  • RequirementAnalysis: 需求分析记录
  • BusinessRequirement: 业务需求
  • GeneratedTestCase: 生成的测试用例
  • AnalysisTask: 分析任务
  • AIModelConfig: AI 模型配置

2. 智能助手模块 (assistant)

功能:

  • 集成 Dify AI 助手
  • 多会话管理
  • 聊天历史记录
  • 测试咨询和问题解答

数据模型:

  • DifyConfig: Dify API 配置
  • AssistantSession: 助手会话
  • ChatMessage: 聊天消息

3. API 测试模块 (api_testing)

功能:

  • API 项目和集合管理
  • HTTP/WebSocket 请求管理
  • 环境变量管理
  • 测试套件和自动化执行
  • 请求历史和结果追踪
  • 定时任务和通知
  • Allure 报告生成

数据模型:

  • ApiProject: API 项目
  • ApiCollection: API 集合
  • ApiRequest: API 请求
  • Environment: 环境变量
  • TestSuite: 测试套件
  • RequestHistory: 请求历史
  • ApiScheduledTask: 定时任务
  • ApiNotificationConfig: 通知配置

4. 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 智能模式配置

5. 统一配置中心模块 (configuration)

功能:

  • 环境检测: 自动检测系统已安装的浏览器
  • 驱动管理: 一键安装 Playwright 浏览器驱动
  • AI 模型配置:
    • 支持多种 AI 提供商:OpenAI、Azure OpenAI、Anthropic、Google Gemini、DeepSeek、硅基流动
    • 按角色配置:测试用例编写器、测试用例评审员、Browser Use 文本/视觉模式
    • API 密钥、基础 URL、模型名称、参数配置
    • 连接测试功能

API 路由:

  • /api/ui-automation/config/environment/: 环境配置
  • /api/ui-automation/config/ai-mode/: AI 智能模式配置

6. 测试用例评审模块 (reviews)

功能:

  • 创建评审任务
  • 分配评审人员
  • 评审意见记录
  • 评审模板管理
  • 评审状态跟踪

数据模型:

  • TestCaseReview: 测试用例评审
  • ReviewAssignment: 评审分配
  • TestCaseReviewComment: 评审意见
  • ReviewTemplate: 评审模板

7. 测试执行模块 (executions)

功能:

  • 测试计划管理
  • 测试执行记录
  • 执行历史追踪
  • 执行结果统计

数据模型:

  • TestPlan: 测试计划
  • TestRun: 测试执行
  • TestRunCase: 测试执行用例
  • TestRunCaseHistory: 执行历史

🔧 配置说明

JWT 安全配置

项目采用企业级 JWT 双 Token 安全机制:

后端配置 (backend/settings.py):

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
  • 需求分析: 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 文件

📧 联系方式

如有问题或建议,欢迎通过 Issue 反馈。


Made with ❤️ by 大刚(公众号:测试开发实战)

About

AI-Powered Testing Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Python 49.1%
  • Vue 47.6%
  • JavaScript 2.8%
  • Shell 0.4%
  • Batchfile 0.1%
  • SCSS 0.0%

AltStyle によって変換されたページ (->オリジナル) /