Skip to content

L-ft/EvalAI

Repository files navigation

AI 自动化测试平台

项目概述

这是一个完整的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 启动

# 启动所有服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止所有服务
docker-compose down

本地开发

后端 - mgmt-api (NestJS)

cd mgmt-api
npm install
npm run start:dev
# 访问: http://localhost:3000

后端 - exec-engine (FastAPI)

cd exec-engine
pip install -r requirements.txt
python main.py
# 访问: http://localhost:8000
# 文档: http://localhost:8000/docs

前端 (Vue 3)

cd frontend
npm install
npm run dev
# 访问: http://localhost:5173

主要模块说明

1. 认证与授权 (Auth)

  • JWT 令牌认证
  • 基于角色的访问控制 (RBAC)
  • 权限验证守卫
  • 租户隔离

相关文件: mgmt-api/src/auth/

2. API 管理

  • 创建和维护 API 接口定义
  • API 版本管理
  • API 文档生成
  • 接口分类和分组

相关文件: mgmt-api/src/modules/api.controller.ts

3. 测试用例执行

  • 编写测试用例
  • 支持多环境切换
  • Playwright 自动化执行
  • Mock 数据服务
  • 测试结果记录

相关文件: exec-engine/app/routers/test_cases.py, exec-engine/app/executor/playwright_runner.py

4. 用户与角色管理

  • 用户账户管理
  • 角色和权限定义
  • 权限分配
  • 多租户管理

相关文件: mgmt-api/src/modules/account.controller.ts, mgmt-api/src/modules/rbac.controller.ts

5. 环境管理

  • 配置不同的测试环境(开发、测试、生产等)
  • 环境变量和配置管理
  • 环境切换

相关文件: 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

API 文档

mgmt-api (管理 API)

运行后访问: http://localhost:3000

主要端点:

  • POST /auth/login - 用户登录
  • GET/POST /api/* - API 管理接口
  • GET/POST /account/* - 账户管理接口
  • GET/POST /rbac/* - 权限管理接口

exec-engine (执行引擎)

运行后访问: http://localhost:8000/docs

主要端点:

  • GET /health - 健康检查
  • POST /proxy - 调试代理
  • GET/POST /folders/* - 文件夹管理
  • GET/POST /interfaces/* - 接口管理
  • GET/POST /test-cases/* - 测试用例
  • POST /executor/run - 执行测试
  • GET/POST /environments/* - 环境管理

环境变量配置

docker-compose.yml 中的环境变量

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 定义     │         └─────────────────┘
│ - 测试数据     │
└────────────────┘

贡献指南

  1. 创建功能分支: git checkout -b feature/your-feature
  2. 提交代码: git commit -am 'Add your feature'
  3. 推送分支: git push origin feature/your-feature
  4. 提交 Pull Request

常见问题

Q: 如何重置数据库?

A: 删除 Docker 卷并重新启动:

docker-compose down -v
docker-compose up -d

Q: 如何修改初始密码?

A: 修改 docker/mysql/init_rbac_full.sql 中的用户信息,或使用 API 修改。

Q: 如何集成自己的 LLM 服务?

A: 修改 exec-engine/app/ai/llm_service.py,替换 OpenAI 调用逻辑。

Q: 前后端开发时如何处理跨域?

A: 已在 exec-engine/main.py 中配置 CORS,允许所有源。生产环境建议限制。


许可证

ISC


联系方式

如有问题或建议,请提交 Issue 或 Pull Request。


最后更新: 2026年2月2日

About

AI测试平台

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published