GeniusQA 是一款AI驱动的智能化测试平台,采用前后端分离架构,融合 Python FastAPI 后端框架和 Vue3 前端框架,提供一站式开箱即用的测试解决方案。
- 🤖 AI智能生成 - 基于大语言模型的测试用例自动生成
- 📝 需求管理 - 需求文档上传、拆分、评审一体化
- 🔄 自动化测试 - 支持接口、UI、APP多种自动化测试
- 💬 智能对话 - AI聊天助手,实时通信
- 📊 可视化报告 - 丰富的测试报告和数据看板
- 🔌 MCP集成 - 支持Model Context Protocol扩展
- 🎨 灵活配置 - 多LLM厂商配置,自定义提示词
backend/
├── app/
│ ├── models/ # 数据模型层
│ │ ├── system/ # 系统模型(用户、角色、权限)
│ │ └── aitestrebort/ # 业务模型(项目、用例、需求等)
│ ├── schemas/ # Pydantic数据验证
│ ├── routers/ # API路由层
│ │ ├── system/ # 系统路由
│ │ └── aitestrebort/ # 业务路由
│ ├── services/ # 业务逻辑层
│ │ ├── system/ # 系统服务
│ │ ├── aitestrebort/ # AI测试服务
│ │ └── ai/ # AI核心服务
│ ├── configs/ # 配置管理
│ └── utils/ # 工具类
├── migrations/ # 数据库迁移
└── logs/ # 日志文件
核心技术栈:
- Web框架: FastAPI + Uvicorn
- ORM: Tortoise ORM
- 数据验证: Pydantic 2.0
- AI框架: LangChain + LangGraph
- 向量数据库: Qdrant
- MCP: FastMCP
- 数据库: PostgreSQL / MySQL
- 认证: JWT Token
frontend/
├── src/
│ ├── views/ # 页面组件
│ │ ├── system/ # 系统管理页面
│ │ └── aitestrebort/ # 业务页面
│ ├── components/ # 公共组件
│ ├── composables/ # 组合式函数
│ ├── api/ # API接口
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ └── utils/ # 工具函数
├── public/ # 静态资源
└── dist/ # 构建输出
核心技术栈:
- 框架: Vue 3 + Composition API
- 构建工具: Vite
- UI组件: Element Plus
- 状态管理: Pinia
- 路由: Vue Router
- HTTP客户端: Axios
- Markdown渲染: Marked + Highlight.js
- Excel导出: XLSX
AI服务层
├── LLM集成
│ ├── OpenAI (GPT-3.5/4)
│ ├── Azure OpenAI
│ ├── Anthropic (Claude)
│ ├── Google (Gemini)
│ └── Ollama (本地部署)
├── 向量存储
│ ├── Qdrant
│ └── 嵌入模型 (OpenAI/Azure/Ollama)
├── RAG检索
│ ├── 文档解析
│ ├── 向量化
│ └── 语义检索
└── Agent编排
├── LangGraph工作流
├── 工具调用
└── 状态管理
- ✅ 项目创建、编辑、删除
- ✅ 项目成员管理
- ✅ 项目权限控制
- ✅ 项目统计看板
- ✅ 多LLM厂商配置(OpenAI、Azure、Claude、Gemini、Ollama)
- ✅ 模型参数配置(温度、最大Token等)
- ✅ API密钥管理
- ✅ 连接测试验证
- ✅ MCP服务器配置
- ✅ 传输协议支持(HTTP、SSE、WebSocket)
- ✅ 工具发现和调用
- ✅ 连接状态监控
- ✅ 用例创建、编辑、删除
- ✅ 用例模块化管理(树形结构)
- ✅ 用例等级划分(P0-P3)
- ✅ 测试步骤管理
- ✅ 前置条件和预期结果
- ✅ Markdown格式支持
- ✅ 在线AI生成 - 基于需求描述实时生成
- ✅ 离线AI生成 - 批量生成并预览
- ✅ 生成用例预览和编辑
- ✅ 一键保存到指定模块
- ✅ 支持多种生成策略
- ✅ Excel格式导出
- ✅ XMind格式导出
- ✅ 批量导入
- ✅ 模板下载
- ✅ 需求文档上传(Word、PDF、Markdown)
- ✅ 在线需求编辑
- ✅ 需求版本管理
- ✅ 需求状态跟踪
- ✅ 需求拆分 - AI自动拆分需求为功能点
- ✅ 需求评审 - AI智能评审需求质量
- ✅ 需求检索 - 基于RAG的语义检索
- ✅ 用例生成 - 基于拆分需求生成测试用例
- ✅ 需求模块树形管理
- ✅ 需求关联测试用例
- ✅ 需求覆盖率统计
- ✅ AI脚本生成 - 一键生成接口测试脚本
- ✅ 支持多种框架(Pytest、Unittest、TestNG)
- ✅ 接口用例管理
- ✅ 环境变量配置
- ✅ 断言规则配置
- ✅ Playwright代码生成
- ✅ Selenium脚本支持
- ✅ 页面元素管理
- ✅ 录制回放功能
- ✅ Appium集成
- ✅ 设备管理
- ✅ 用例执行
- ✅ 本地执行
- ✅ 远程执行
- ✅ 定时任务
- ✅ 并发执行
- ✅ 实时对话 - 实时通信
- ✅ 流式响应 - 流式输出
- ✅ 上下文管理 - 智能上下文压缩和记忆
- ✅ Markdown渲染 - 支持代码高亮和格式化
- ✅ 对话历史 - 对话记录保存和查询
- ✅ 工具调用能力
- ✅ 多步骤推理
- ✅ 状态管理
- ✅ 错误处理和重试
- ✅ 知识库创建和管理
- ✅ 文档上传(多格式支持)
- ✅ 文档分块和向量化
- ✅ 知识库配置
- ✅ 语义检索
- ✅ 混合检索(向量+关键词)
- ✅ 检索结果排序
- ✅ 上下文增强
- ✅ 基于知识库的问答
- ✅ 知识库辅助用例生成
- ✅ 需求文档检索
- ✅ 测试套件管理
- ✅ 执行计划配置
- ✅ 实时执行监控
- ✅ 执行进度跟踪
- ✅ 可视化报告 - 丰富的图表展示
- ✅ 执行详情 - 详细的步骤记录
- ✅ 失败分析 - 失败原因统计
- ✅ 趋势分析 - 历史数据对比
- ✅ 报告导出 - HTML/PDF格式
- ✅ 项目概览
- ✅ 用例统计
- ✅ 执行趋势
- ✅ 质量指标
- ✅ 用户创建、编辑、删除
- ✅ 用户角色分配
- ✅ 密码管理
- ✅ 用户状态控制
- ✅ 角色管理
- ✅ 权限配置
- ✅ 角色继承
- ✅ API权限控制
- ✅ 业务线创建
- ✅ 用户业务线绑定
- ✅ 数据隔离
- ✅ 系统参数配置
- ✅ 提示词模板管理
- ✅ API密钥管理
- ✅ Webhook配置
- Python: 3.11+
- Node.js: 18+
- 数据库: MySQL 8.0+ 或 PostgreSQL 13+
- 向量数据库: Qdrant (可选)
./start-docker.shstart-docker.bat详细说明请查看:DOCKER.md
cd backend
chmod +x deploy.sh
./deploy.shcd backend
deploy.bat-- MySQL
CREATE DATABASE test_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 设置最大连接数
SET GLOBAL max_connections=16384;
-- PostgreSQL
CREATE DATABASE test_platform ENCODING 'UTF8';cd backend
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接信息
# 初始化数据库
python -m aerich init -t app.configs.config.tortoise_orm_conf
python -m aerich init-db
python db_manager.py setup
# 启动服务
python main.py
# 或使用 uvicorn
uvicorn main:app --host 0.0.0.0 --port 8018 --reloadcd frontend
# 安装依赖
npm install
# 开发环境
npm run dev
# 生产环境
npm run build- 前端: http://localhost:8016
- 后端API: http://localhost:8018
- API文档: http://localhost:8018/docs
编辑 .env 文件:
# MySQL 配置
DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=test_platform
# PostgreSQL 配置
# DB_TYPE=postgresql
# DB_HOST=localhost
# DB_PORT=5432
# DB_USER=postgres
# DB_PASSWORD=your_password
# DB_NAME=test_platform# OpenAI配置
OPENAI_API_KEY=sk-your-key-here
OPENAI_BASE_URL=https://api.openai.com/v1
# Azure OpenAI配置
AZURE_OPENAI_API_KEY=your-azure-key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_VERSION=2024-02-15-preview# Qdrant配置
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_API_KEY=your-qdrant-key# 切换到 MySQL
python switch_database.py mysql
# 切换到 PostgreSQL
python switch_database.py postgresql# 首次初始化
python -m aerich init -t app.configs.config.tortoise_orm_conf
python -m aerich init-db
python db_manager.py setup
# 模型变更后
python -m aerich migrate --name "描述"
python -m aerich upgrade
# 或使用数据库管理器
python db_manager.py migrate
python db_manager.py upgrade- 登录系统
- 进入"项目管理"
- 点击"新建项目"
- 填写项目信息并保存
- 进入项目详情
- 点击"LLM配置"
- 添加LLM配置(OpenAI、Azure等)
- 测试连接并保存
- 进入"测试用例"页面
- 点击"AI用例生成"
- 选择生成模式(在线/离线)
- 输入需求描述
- 选择LLM配置
- 点击"生成"
- 预览并保存用例
- 进入"需求管理"
- 上传需求文档或在线编辑
- 使用AI进行需求拆分
- 基于拆分结果生成测试用例
- 进行需求评审
- 进入"自动化脚本"
- 选择测试用例
- 点击"生成脚本"
- 选择框架类型(Pytest/Unittest等)
- 下载或直接执行脚本
- 点击左侧菜单"AI聊天助手"
- 输入问题或需求
- AI实时响应并提供建议
- 支持代码生成、问题解答等
- Python: 遵循 PEP 8 规范,使用 Black 格式化
- TypeScript: 使用 ESLint + Prettier
- 提交信息: 遵循 Conventional Commits
GeniusQA/
├── backend/ # 后端服务
│ ├── app/ # 应用代码
│ ├── migrations/ # 数据库迁移
│ ├── logs/ # 日志文件
│ ├── requirements.txt # Python依赖
│ └── main.py # 入口文件
├── frontend/ # 前端应用
│ ├── src/ # 源代码
│ ├── public/ # 静态资源
│ └── package.json # Node依赖
├── docker-compose.yml # Docker编排
├── .env.example # 环境变量模板
└── README.md # 项目文档
- 在
app/models/定义数据模型 - 在
app/schemas/定义请求/响应模型 - 在
app/services/实现业务逻辑 - 在
app/routers/定义API路由 - 使用
@router.add_get_route等装饰器添加路由
- 在
src/views/创建页面组件 - 在
src/api/定义API接口 - 在
src/router/配置路由 - 使用 Composition API 编写组件逻辑
# Windows
netstat -ano | findstr :8018
taskkill /PID <进程ID> /F
# Linux/Mac
lsof -ti:8018 | xargs kill -9- 确认数据库服务正在运行
- 检查
.env中的数据库配置 - 确认数据库已创建
# 使用国内镜像
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
npm install --registry=https://registry.npmmirror.com- 检查LLM配置是否正确
- 确认API密钥有效
- 检查网络连接
gunicorn main:app -c gunicorn_config_main.pyserver {
listen 80;
server_name your-domain.com;
# 前端
location / {
root /path/to/frontend/dist;
try_files $uri $uri/ /index.html;
}
# 后端API
location /api {
proxy_pass http://localhost:8018;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# WebSocket
location /ws {
proxy_pass http://localhost:8018;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}欢迎贡献代码、提出问题和建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
如果这个项目对你有帮助,请点击 Star 支持一下!
本项目采用 MIT 许可证 - 详见 LICENSE 文件
感谢以下开源项目:
最后更新: 2025-10-01 版本: 1.0.0
Made with ❤️ by GeniusQA Team





