开源 企业版 高校版 私有云 模力方舟 AI 队友
概览 仓库 2 Issues Pull Requests 动态 成员 1
申请加入组织

您正在申请加入N-Tester 企业级全栈测试平台

开发者
取消
提交
Success green

申请已成功提交

请等待管理员审核,审核完成后你将收到系统通知

热门
自定义精选项目
最多可选取 6 个公开仓库
还能勾选 6
组织介绍

N-Tester AI测试平台

基于AI驱动的智能化测试管理平台

FastAPI
License

快速开始 | 文档 | 文末有交流群


📖 项目介绍

N-Tester 是一款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配置


🚀 快速启动

环境要求

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

在线体验

🌐 体验地址: 用户名: admin 密码: 123456

⚠️ 注意:请勿修改密码,这是共享的演示账号


📦 部署方式

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

Linux/Mac

./start-docker.sh
# 或者
cd /ntest
docker compose up -d --build

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';

⚙️ 配置说明

数据库配置

cp .env.example .env 编辑 .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

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

# 启动接口自动化,APP自动化,UI自动化定时任务器
python -m scheduledtask.job

3. 前端部署

cd frontend

# 安装依赖
npm install

# 开发环境
npm run dev

# 生产环境
npm run build

4. 访问应用

  • 前端: http://localhost:8018
  • API文档: 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

    项目结构

    N-Tester/
    ├── 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

    📞 获取帮助

    交流群

    QQ群: 1074327520

    添加作者微信进入微信群:Benicen

    添加备注: N-Tester

    问题反馈

    如遇到问题,请:

    1. 查看日志文件 logs/
    2. 查看相关文档
    3. 在 GitHub 提交 Issue

    ⭐ Star History

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


    📄 许可证

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


    🙏 致谢

    感谢以下开源项目:

17
Star
9
Fork
成员(1)
点此查找更多帮助

搜索帮助

Git 命令在线学习 如何在 Gitee 导入 GitHub 仓库
回到顶部

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