这是一个完整的API 自动化测试管理平台,集成了 AI 能力来帮助用户设计、管理、执行 API 测试用例。该平台采用微服务架构,由前端应用、管理 API、执行引擎和数据库等多个组件组成。
- API 管理:创建、编辑和维护 API 接口定义
- 测试用例管理:设计和管理 API 测试用例
- 自动化执行:使用 Playwright 和 Mock 服务执行 API 测试
- 用户权限管理:基于角色的访问控制 (RBAC)
- 多租户支持:支持多个租户的隔离数据
- AI 辅助:集成 LLM 服务进行智能辅助
AI_Project/
├── docker-compose.yml # Docker 容器编排配置
├── package.json # 主项目依赖配置
├── requirements.txt # Python 依赖配置
├── docker/ # Docker 相关文件
│ └── mysql/ # MySQL 数据库初始化脚本
│ ├── init_rbac_full.sql # 完整的 RBAC 初始化脚本
│ ├── init_rbac_v2.sql # RBAC v2 版本
│ ├── init_rbac.sql # 基础 RBAC 脚本
│ ├── init.sql # 初始化脚本
│ └── my.cnf # MySQL 配置文件
├── mgmt-api/ # 管理 API (NestJS)
│ ├── src/
│ │ ├── app.module.ts # 应用主模块
│ │ ├── main.ts # 应用启动入口
│ │ ├── auth/ # 认证与授权模块
│ │ │ ├── auth.controller.ts
│ │ │ ├── auth.module.ts
│ │ │ ├── jwt-auth.guard.ts
│ │ │ ├── jwt.strategy.ts
│ │ │ ├── permission.guard.ts
│ │ │ ├── rbac.guard.ts
│ │ │ └── roles.guard.ts
│ │ ├── modules/ # 业务模块
│ │ │ ├── account.controller.ts # 账户管理
│ │ │ ├── account.module.ts
│ │ │ ├── api.controller.ts # API 管理
│ │ │ ├── api.module.ts
│ │ │ ├── api.service.ts
│ │ │ ├── mock.controller.ts # Mock 数据服务
│ │ │ ├── rbac.controller.ts # 权限管理
│ │ │ └── rbac.service.ts
│ │ ├── entities/ # 数据库实体
│ │ │ ├── menu.entity.ts
│ │ │ └── user.entity.ts
│ │ └── common/ # 公共工具
│ │ ├── filters/
│ │ ├── interceptors/
│ │ └── middleware/
│ ├── Dockerfile
│ ├── package.json
│ └── tsconfig.json
├── exec-engine/ # 执行引擎 (FastAPI)
│ ├── main.py # 应用启动入口
│ ├── requirements.txt
│ ├── Dockerfile
│ └── app/
│ ├── database.py # 数据库连接
│ ├── ai/
│ │ └── llm_service.py # LLM 集成服务
│ ├── auth/
│ │ └── deps.py # 认证依赖
│ ├── executor/
│ │ └── playwright_runner.py # Playwright 测试执行器
│ ├── middleware/
│ │ └── auth_handler.py
│ ├── models/
│ │ └── api_mgmt.py # API 管理数据模型
│ ├── routers/ # API 路由
│ │ ├── environments.py # 环境管理
│ │ ├── executor.py # 执行器接口
│ │ ├── folders.py # 文件夹管理
│ │ ├── interfaces.py # 接口管理
│ │ └── test_cases.py # 测试用例管理
│ └── schemas/
│ └── api_mgmt.py # 数据模式定义
├── frontend/ # 前端应用 (Vue 3 + TypeScript)
│ ├── src/
│ │ ├── App.vue # 主应用组件
│ │ ├── main.ts # 应用启动
│ │ ├── api/ # API 请求模块
│ │ │ ├── exec-request.ts # 执行引擎请求
│ │ │ └── request.ts # HTTP 请求客户端
│ │ ├── components/ # 组件库
│ │ │ ├── ApiDebugView.vue # API 调试视图
│ │ │ ├── ApiDesignView.vue # API 设计视图
│ │ │ ├── ApiDocView.vue # API 文档视图
│ │ │ ├── ApiTestCaseView.vue # 测试用例视图
│ │ │ ├── NewFolderModal.vue # 新建文件夹弹窗
│ │ │ └── TreeNavigation.vue # 树形导航组件
│ │ ├── router/ # 路由配置
│ │ │ └── index.ts
│ │ ├── store/ # 状态管理 (Pinia)
│ │ │ └── user.ts # 用户信息状态
│ │ ├── theme/ # 主题配置
│ │ │ └── theme.ts
│ │ ├── utils/ # 工具函数
│ │ │ └── naive-api.ts # Naive UI 辅助工具
│ │ └── views/ # 页面组件
│ │ ├── 403.vue # 无权限页面
│ │ ├── AccountCenter.vue # 账户中心
│ │ ├── Dashboard.vue # 仪表板
│ │ ├── EnvManagement.vue # 环境管理
│ │ ├── InterfaceTest.vue # 接口测试
│ │ ├── Login.vue # 登录页面
│ │ ├── PermissionDialog.vue # 权限对话框
│ │ ├── Placeholder.vue # 占位符
│ │ ├── RoleManagement.vue # 角色管理
│ │ └── UserManagement.vue # 用户管理
│ ├── index.html
│ ├── nginx.conf # Nginx 配置(用于生产部署)
│ ├── package.json
│ ├── Dockerfile
│ ├── vite.config.ts
│ └── tsconfig.json
- mgmt-api: NestJS + TypeORM + MySQL
- exec-engine: FastAPI + SQLAlchemy + Playwright
- 认证: JWT + Passport
- 权限控制: RBAC (Role-Based Access Control)
- 框架: Vue 3 + TypeScript
- UI 库: Naive UI (NaiveUI)
- 构建: Vite
- 状态管理: Pinia
- HTTP 客户端: Axios
- 数据库: MySQL 8.0
- 缓存: Redis 6.2
- 容器化: Docker & Docker Compose
- Web 服务器: Nginx
- Docker & Docker Compose
- Node.js 16+ (用于本地开发)
- Python 3.9+ (用于本地开发)
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止所有服务
docker-compose downcd mgmt-api
npm install
npm run start:dev
# 访问: http://localhost:3000cd exec-engine
pip install -r requirements.txt
python main.py
# 访问: http://localhost:8000
# 文档: http://localhost:8000/docscd frontend
npm install
npm run dev
# 访问: http://localhost:5173- JWT 令牌认证
- 基于角色的访问控制 (RBAC)
- 权限验证守卫
- 租户隔离
相关文件: mgmt-api/src/auth/
- 创建和维护 API 接口定义
- API 版本管理
- API 文档生成
- 接口分类和分组
相关文件: mgmt-api/src/modules/api.controller.ts
- 编写测试用例
- 支持多环境切换
- Playwright 自动化执行
- Mock 数据服务
- 测试结果记录
相关文件: exec-engine/app/routers/test_cases.py, exec-engine/app/executor/playwright_runner.py
- 用户账户管理
- 角色和权限定义
- 权限分配
- 多租户管理
相关文件: mgmt-api/src/modules/account.controller.ts, mgmt-api/src/modules/rbac.controller.ts
- 配置不同的测试环境(开发、测试、生产等)
- 环境变量和配置管理
- 环境切换
相关文件: exec-engine/app/routers/environments.py
项目使用 MySQL 8.0,通过 Docker 启动时会自动执行初始化脚本。
初始化脚本位置: docker/mysql/
init_rbac_full.sql- 完整的 RBAC 系统表结构和数据init_rbac_v2.sql- RBAC v2 版本init_rbac.sql- 基础 RBAC 表init.sql- 其他初始化内容
- 主机: localhost (Docker 环境中为
mysql_final) - 端口: 3308
- 用户: root
- 密码: root_password
- 数据库: ai_automation_db
运行后访问: http://localhost:3000
主要端点:
POST /auth/login- 用户登录GET/POST /api/*- API 管理接口GET/POST /account/*- 账户管理接口GET/POST /rbac/*- 权限管理接口
运行后访问: http://localhost:8000/docs
主要端点:
GET /health- 健康检查POST /proxy- 调试代理GET/POST /folders/*- 文件夹管理GET/POST /interfaces/*- 接口管理GET/POST /test-cases/*- 测试用例POST /executor/run- 执行测试GET/POST /environments/*- 环境管理
mgmt-api:
DB_HOST- 数据库主机DB_USER- 数据库用户DB_PASS- 数据库密码DB_NAME- 数据库名称JWT_SECRET- JWT 密钥REDIS_HOST- Redis 主机EXEC_ENGINE_URL- 执行引擎 URL
exec-engine:
OPENAI_API_KEY- OpenAI API 密钥 (用于 LLM 功能)
✨ 多租户支持 - 完整的租户隔离机制
🔐 企业级权限管理 - 灵活的 RBAC 系统
🤖 AI 辅助 - 集成 OpenAI LLM 进行智能辅助
⚙️ 自动化执行 - Playwright 驱动的自动化测试执行
🎨 现代化 UI - Vue 3 + Naive UI 构建的直观界面
📦 容器化部署 - 开箱即用的 Docker Compose 配置
📊 完整的测试管理 - 从设计到执行的完整生命周期管理
┌─────────────────────────────────────────────────────────┐
│ 前端应用 (Vue 3) │
│ http://localhost:5173 │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────────┴──────────────┐
│ │
┌───────▼────────────────┐ ┌────────▼──────────────────┐
│ 管理 API (NestJS) │ │ 执行引擎 (FastAPI) │
│ http://localhost:3000 │ │ http://localhost:8000 │
│ - 用户认证 │ │ - 测试执行 │
│ - API 管理 │ │ - Mock 服务 │
│ - 权限管理 │ │ - AI 辅助 │
│ - 账户管理 │ │ - 环境管理 │
└───────┬────────────────┘ └────────┬──────────────────┘
│ │
└──────────────┬──────────────┘
│
┌───────────────┴────────────────┐
│ │
┌──────▼─────────┐ ┌──────────▼──────┐
│ MySQL 8.0 │ │ Redis 6.2 │
│ (3308) │ │ (6380) │
│ │ │ │
│ - RBAC 系统 │ │ - 缓存 │
│ - 用户数据 │ │ - 会话管理 │
│ - API 定义 │ └─────────────────┘
│ - 测试数据 │
└────────────────┘
- 创建功能分支:
git checkout -b feature/your-feature - 提交代码:
git commit -am 'Add your feature' - 推送分支:
git push origin feature/your-feature - 提交 Pull Request
A: 删除 Docker 卷并重新启动:
docker-compose down -v
docker-compose up -dA: 修改 docker/mysql/init_rbac_full.sql 中的用户信息,或使用 API 修改。
A: 修改 exec-engine/app/ai/llm_service.py,替换 OpenAI 调用逻辑。
A: 已在 exec-engine/main.py 中配置 CORS,允许所有源。生产环境建议限制。
ISC
如有问题或建议,请提交 Issue 或 Pull Request。
最后更新: 2026年2月2日