Ntest
N-Tester平台,该项目采用 前后端分离架构,融合 Python 后端框架 FastAPI 和前端主流框架 Vue3 实现统一开发,提供了一站式开箱即用的体验 打造AI结合,支持AI生成用例生成,接口自动化,APP自动化,UI自动化,智能排版,LLM厂商自定义配置的一体化测试管理平台
Installation
npx ntestAsk AI about Ntest
Powered by Claude · Grounded in docs
I know everything about Ntest. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
N-Tester AI测试平台
📖 项目介绍
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配置
🎨 界面展示
登录页面

AI接口自动化代码生成

测试执行进度

AI用例生成效果

智能对话页面

自动执行脚本用例页面

🚀 快速启动
环境要求
- Python: 3.11+
- Node.js: 18+
- 数据库: MySQL 8.0+ 或 PostgreSQL 13+
- 向量数据库: Qdrant (可选)
在线体验
🌐 体验地址: http://106.54.166.76/login
用户名: 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:8016
- 后端API: http://localhost:8018
- API文档: http://localhost:8018/docs
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. 创建项目
- 登录系统
- 进入"项目管理"
- 点击"新建项目"
- 填写项目信息并保存
2. 配置LLM
- 进入项目详情
- 点击"LLM配置"
- 添加LLM配置(OpenAI、Azure等)
- 测试连接并保存
3. AI生成测试用例
- 进入"测试用例"页面
- 点击"AI用例生成"
- 选择生成模式(在线/离线)
- 输入需求描述
- 选择LLM配置
- 点击"生成"
- 预览并保存用例
4. 需求管理
- 进入"需求管理"
- 上传需求文档或在线编辑
- 使用AI进行需求拆分
- 基于拆分结果生成测试用例
- 进行需求评审
5. 自动化测试
- 进入"自动化脚本"
- 选择测试用例
- 点击"生成脚本"
- 选择框架类型(Pytest/Unittest等)
- 下载或直接执行脚本
6. AI聊天助手
- 点击左侧菜单"AI聊天助手"
- 输入问题或需求
- AI实时响应并提供建议
- 支持代码生成、问题解答等
🛠️ 开发指南
代码风格
- 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开发
- 在
app/models/定义数据模型 - 在
app/schemas/定义请求/响应模型 - 在
app/services/实现业务逻辑 - 在
app/routers/定义API路由 - 使用
@router.add_get_route等装饰器添加路由
前端开发
- 在
src/views/创建页面组件 - 在
src/api/定义API接口 - 在
src/router/配置路由 - 使用 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";
}
}
📚 文档
🤝 贡献
欢迎贡献代码、提出问题和建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📞 获取帮助
交流群
QQ群: 1074327520

打赏作者,请作者喝咖啡,您的鼓励是对作者更新最大的动力!

添加作者微信进入微信群
添加备注: N-Tester

问题反馈
如遇到问题,请:
- 查看日志文件
logs/ - 查看相关文档
- 在 GitHub 提交 Issue
⭐ Star History
如果这个项目对你有帮助,请点击 Star 支持一下!
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
🙏 致谢
感谢以下开源项目:
最后更新: 2026-01-29
版本: 1.0.0
Made with ❤️ by N-Tester Team
介绍
基于Fastapi+vue3实现的全栈测试平台,集接口接口自动化,APP自动化,UI自动化
软件架构
软件架构说明
安装教程
- xxxx
- xxxx
- xxxx
使用说明
- xxxx
- xxxx
- xxxx
参与贡献
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
特技
- 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
- Gitee 官方博客 blog.gitee.com
- 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
- GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
- Gitee 官方提供的使用手册 https://gitee.com/help
- Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/
81c120ed9c7018dafc2928dd6474f6468cb213b9
