Skip to content

QuanTum2088/GeniusQA

Repository files navigation

GeniusQA

GeniusQA Logo

基于AI驱动智能体测试平台

Python FastAPI Vue License

快速开始


📖 项目介绍

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技术栈

AI服务层
├── LLM集成
│   ├── OpenAI (GPT-3.5/4)
│   ├── Azure OpenAI
│   ├── Anthropic (Claude)
│   ├── Google (Gemini)
│   └── Ollama (本地部署)
├── 向量存储
│   ├── Qdrant
│   └── 嵌入模型 (OpenAI/Azure/Ollama)
├── RAG检索
│   ├── 文档解析
│   ├── 向量化
│   └── 语义检索
└── Agent编排
    ├── LangGraph工作流
    ├── 工具调用
    └── 状态管理

🚀 功能模块

1. 项目管理

1.1 项目基础管理

  • ✅ 项目创建、编辑、删除
  • ✅ 项目成员管理
  • ✅ 项目权限控制
  • ✅ 项目统计看板

1.2 LLM配置管理

  • ✅ 多LLM厂商配置(OpenAI、Azure、Claude、Gemini、Ollama)
  • ✅ 模型参数配置(温度、最大Token等)
  • ✅ API密钥管理
  • ✅ 连接测试验证

1.3 MCP配置管理

  • ✅ MCP服务器配置
  • ✅ 传输协议支持(HTTP、SSE、WebSocket)
  • ✅ 工具发现和调用
  • ✅ 连接状态监控

2. 测试用例管理

2.1 用例基础功能

  • ✅ 用例创建、编辑、删除
  • ✅ 用例模块化管理(树形结构)
  • ✅ 用例等级划分(P0-P3)
  • ✅ 测试步骤管理
  • ✅ 前置条件和预期结果
  • ✅ Markdown格式支持

2.2 AI用例生成

  • 在线AI生成 - 基于需求描述实时生成
  • 离线AI生成 - 批量生成并预览
  • ✅ 生成用例预览和编辑
  • ✅ 一键保存到指定模块
  • ✅ 支持多种生成策略

2.3 用例导入导出

  • ✅ Excel格式导出
  • ✅ XMind格式导出
  • ✅ 批量导入
  • ✅ 模板下载

3. 需求管理

3.1 需求文档管理

  • ✅ 需求文档上传(Word、PDF、Markdown)
  • ✅ 在线需求编辑
  • ✅ 需求版本管理
  • ✅ 需求状态跟踪

3.2 AI需求分析

  • 需求拆分 - AI自动拆分需求为功能点
  • 需求评审 - AI智能评审需求质量
  • 需求检索 - 基于RAG的语义检索
  • 用例生成 - 基于拆分需求生成测试用例

3.3 需求模块化

  • ✅ 需求模块树形管理
  • ✅ 需求关联测试用例
  • ✅ 需求覆盖率统计

4. 自动化测试

4.1 接口自动化

  • AI脚本生成 - 一键生成接口测试脚本
  • ✅ 支持多种框架(Pytest、Unittest、TestNG)
  • ✅ 接口用例管理
  • ✅ 环境变量配置
  • ✅ 断言规则配置

4.2 UI自动化

  • ✅ Playwright代码生成
  • ✅ Selenium脚本支持
  • ✅ 页面元素管理
  • ✅ 录制回放功能

4.3 APP自动化

  • ✅ Appium集成
  • ✅ 设备管理
  • ✅ 用例执行

4.4 脚本执行

  • ✅ 本地执行
  • ✅ 远程执行
  • ✅ 定时任务
  • ✅ 并发执行

5. AI智能助手

5.1 AI聊天助手

  • 实时对话 - 实时通信
  • 流式响应 - 流式输出
  • 上下文管理 - 智能上下文压缩和记忆
  • Markdown渲染 - 支持代码高亮和格式化
  • 对话历史 - 对话记录保存和查询

5.2 Agent智能执行

  • ✅ 工具调用能力
  • ✅ 多步骤推理
  • ✅ 状态管理
  • ✅ 错误处理和重试

6. 知识库管理

6.1 知识库基础

  • ✅ 知识库创建和管理
  • ✅ 文档上传(多格式支持)
  • ✅ 文档分块和向量化
  • ✅ 知识库配置

6.2 RAG检索

  • ✅ 语义检索
  • ✅ 混合检索(向量+关键词)
  • ✅ 检索结果排序
  • ✅ 上下文增强

6.3 知识库应用

  • ✅ 基于知识库的问答
  • ✅ 知识库辅助用例生成
  • ✅ 需求文档检索

7. 测试执行与报告

7.1 测试执行

  • ✅ 测试套件管理
  • ✅ 执行计划配置
  • ✅ 实时执行监控
  • ✅ 执行进度跟踪

7.2 测试报告

  • 可视化报告 - 丰富的图表展示
  • 执行详情 - 详细的步骤记录
  • 失败分析 - 失败原因统计
  • 趋势分析 - 历史数据对比
  • 报告导出 - HTML/PDF格式

7.3 数据看板

  • ✅ 项目概览
  • ✅ 用例统计
  • ✅ 执行趋势
  • ✅ 质量指标

8. 系统管理

8.1 用户管理

  • ✅ 用户创建、编辑、删除
  • ✅ 用户角色分配
  • ✅ 密码管理
  • ✅ 用户状态控制

8.2 角色权限

  • ✅ 角色管理
  • ✅ 权限配置
  • ✅ 角色继承
  • ✅ API权限控制

8.3 业务线管理

  • ✅ 业务线创建
  • ✅ 用户业务线绑定
  • ✅ 数据隔离

8.4 全局配置

  • ✅ 系统参数配置
  • ✅ 提示词模板管理
  • ✅ API密钥管理
  • ✅ Webhook配置

🎨 界面展示

登录页面

登录页

AI接口自动化代码生成

接口自动化

测试执行进度

首页

AI用例生成效果

AI用例自动生成

智能对话页面

AI智能对话助手

自动执行脚本用例页面

报告详情


🚀 快速启动

环境要求

  • Python: 3.11+
  • Node.js: 18+
  • 数据库: MySQL 8.0+ 或 PostgreSQL 13+
  • 向量数据库: Qdrant (可选)

📦 部署方式

方式一:Docker一键部署(推荐)

Linux/Mac

./start-docker.sh

Windows

start-docker.bat

详细说明请查看:DOCKER.md


方式二:一键部署脚本(推荐新手)

Linux/Mac

cd backend
chmod +x deploy.sh
./deploy.sh

Windows

cd backend
deploy.bat

方式三:源码部署

1. 创建数据库

-- MySQL
CREATE DATABASE test_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 设置最大连接数
SET GLOBAL max_connections=16384;

-- PostgreSQL
CREATE DATABASE test_platform ENCODING 'UTF8';

2. 后端部署

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 --reload

3. 前端部署

cd frontend

# 安装依赖
npm install

# 开发环境
npm run dev

# 生产环境
npm run build

4. 访问应用


⚙️ 配置说明

数据库配置

编辑 .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

AI配置

# 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

🎯 使用指南

1. 创建项目

  1. 登录系统
  2. 进入"项目管理"
  3. 点击"新建项目"
  4. 填写项目信息并保存

2. 配置LLM

  1. 进入项目详情
  2. 点击"LLM配置"
  3. 添加LLM配置(OpenAI、Azure等)
  4. 测试连接并保存

3. AI生成测试用例

  1. 进入"测试用例"页面
  2. 点击"AI用例生成"
  3. 选择生成模式(在线/离线)
  4. 输入需求描述
  5. 选择LLM配置
  6. 点击"生成"
  7. 预览并保存用例

4. 需求管理

  1. 进入"需求管理"
  2. 上传需求文档或在线编辑
  3. 使用AI进行需求拆分
  4. 基于拆分结果生成测试用例
  5. 进行需求评审

5. 自动化测试

  1. 进入"自动化脚本"
  2. 选择测试用例
  3. 点击"生成脚本"
  4. 选择框架类型(Pytest/Unittest等)
  5. 下载或直接执行脚本

6. AI聊天助手

  1. 点击左侧菜单"AI聊天助手"
  2. 输入问题或需求
  3. AI实时响应并提供建议
  4. 支持代码生成、问题解答等

🛠️ 开发指南

代码风格

  • 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                # 项目文档

API开发

  1. app/models/ 定义数据模型
  2. app/schemas/ 定义请求/响应模型
  3. app/services/ 实现业务逻辑
  4. app/routers/ 定义API路由
  5. 使用 @router.add_get_route 等装饰器添加路由

前端开发

  1. src/views/ 创建页面组件
  2. src/api/ 定义API接口
  3. src/router/ 配置路由
  4. 使用 Composition API 编写组件逻辑

🐛 常见问题

1. 端口被占用

# Windows
netstat -ano | findstr :8018
taskkill /PID <进程ID> /F

# Linux/Mac
lsof -ti:8018 | xargs kill -9

2. 数据库连接失败

  • 确认数据库服务正在运行
  • 检查 .env 中的数据库配置
  • 确认数据库已创建

3. 依赖安装失败

# 使用国内镜像
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
npm install --registry=https://registry.npmmirror.com

4. AI功能无法使用

  • 检查LLM配置是否正确
  • 确认API密钥有效
  • 检查网络连接

🚀 生产部署

使用Gunicorn

gunicorn main:app -c gunicorn_config_main.py

使用Nginx反向代理

server {
    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";
    }
}

📚 文档


🤝 贡献

欢迎贡献代码、提出问题和建议!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

⭐ Star History

如果这个项目对你有帮助,请点击 Star 支持一下!


📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢

感谢以下开源项目:


最后更新: 2025-10-01 版本: 1.0.0

Made with ❤️ by GeniusQA Team

About

采用前后端分离架构,融合 Python FastAPI 后端框架和 Vue3 前端框架,提供一站式开箱即用的测试解决方案。

Resources

Stars

Watchers

Forks

Contributors