年度重磅!TestHub测试平台正式开源!

写在前面

之前发表过多篇TestHub测试平台开发的系列文章,有很多小伙伴问能否开源,我当时给出的答案是:暂不开源、后期会考虑。之所以没有选择立即开源,是因为:

  1. 彼时只是个半成品:很多明显的bug没有改完,有些功能也只开发到了一半,不能明知道"拿不出手"、还拿出来面向大家,这既是对自己的不负责,也是对大家的不负责。
  2. 得不到正反馈:中间我也陆续分享过源码给几位粉丝小伙伴,一方面是想为后续开源作铺垫,一方面是想收集一些正向的反馈建议,帮助优化平台。但是到目前为止,还没有一位主动和我交流过项目运行情况、问题反馈、想法建议等,哪怕是一位;我挨个问了之后,只有一位运行起来了。
  3. 没有开源经验:坦白讲,之前我没做过开源项目,如何共建、如何管控代码我都没有经验,也在担心会不会占用我很多个人时间;

对于问题1,我已经将各大模块肉眼可见的bug都修改得差不多了,另外利用休息时间完成了基于Browser-Use框架的"AI智能测试模块"的开发。

对于问题3,我只想说:想、永远都是问题,做、才会有答案!

因此,趁着这个元旦假期的欢快余温,作为新年献礼,我宣布:TestHub测试平台项目正式开源!

话不多说,直接上干货!

一、项目简介

TestHub 是一个一体化测试平台,集成了 AI 需求分析测试用例管理API 测试UI 自动化测试、AI智能测试 等多个模块,旨在提升测试效率和质量。平台采用 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 测试报告

三、技术架构

1.后端技术栈

  • 框架: 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

2.前端技术栈

  • 框架: 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 (日期)

四、项目结构

bash 复制代码
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 管理脚本

五、🚀 快速开始

1.环境要求

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

2.后端部署

  1. 克隆项目
bash 复制代码
git clone <repository-url>
cd testhub_platform
  1. 创建虚拟环境
bash 复制代码
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
  1. 安装依赖

    pip install -r requirements.txt

  2. 配置环境变量

创建 .env 文件:

ini 复制代码
# 数据库配置
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=587
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. 初始化数据库
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
  1. 启动服务
bash 复制代码
# 启动 Django 开发服务器
python manage.py runserver

3.前端部署

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

4.访问应用

六、核心功能模块说明

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: 执行历史

七、🔧 配置说明

1.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

2.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 数

连接测试 :

配置完成后可使用"测试连接"功能验证配置是否正确。

3.AI 需求分析配置

在系统配置中心可以配置多种 AI 模型:

  • DeepSeek: 用于需求分析和用例生成
  • 通义千问: 备选 AI 模型
  • 硅基流动: 备选 AI 模型
  • 自定义模型: 支持配置自定义 API

4.Dify 助手配置

配置 Dify API 以启用智能助手功能:

  • API URL: Dify API 端点
  • API Key: Dify API 密钥

5.UI 自动化配置

  • 执行引擎: Selenium / Playwright
  • 浏览器: Chrome / Firefox / Edge
  • WebDriver: 自动下载或手动配置驱动路径
  • 运行模式: 有头模式 / 无头模式
  • AI 智能模式:
    • 文本模式:基于 DOM 解析,快速高效
    • 视觉模式:基于截图识别,适合复杂页面

6.通知配置

  • 邮件通知: 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 大刚(公众号:测试开发实战)

获取项目地址、入交流群,请私信。

相关推荐
用户3228360084475 分钟前
python-rapidjson:用 C++ 速度处理 JSON 的 Python 库
github
逛逛GitHub21 分钟前
4 个比较实用的 GitHub 开源项目,浅浅的收藏一波。
github
Hommy8830 分钟前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api
2601_961845154 小时前
粉笔行测5000题电子版|pdf|解析
pdf·新媒体运营·github·个人开发·内容运营·规格说明书·极限编程
用户773530084517 小时前
gorillamux:Go语言路由库的实用选择
github
BBWEYY终身尊贵会员7 小时前
2026年6月四款建站工具怎么选?BBWEYY、比文云、GitHub Copilot、Dreamweaver 简明对比
github·copilot·dreamweaver
DogDaoDao7 小时前
【GitHub】CL4R1T4S:AI 系统提示词的透明革命
人工智能·python·ai·大模型·github·ai agent·cl4r1t4s
CHENG-JustDoIt8 小时前
AI工具 | 爆火开源项目Odysseus AI 工作台:从项目介绍、部署情况及其使用等多方位分析指南(含详细步骤)
大数据·人工智能·windows·python·ai·开源·github
MicrosoftReactor8 小时前
技术速递|从一次性提示到标准化工作流:如何在 GitHub Copilot CLI 中使用自定义智能体
github·copilot·cli·智能体
Png8 小时前
我被腾讯 ACE 反作弊逼疯了,最后靠一个 PowerShell 脚本治好了精神内耗
github