# sats-pef **Repository Path**: yccock/sats-pef ## Basic Information - **Project Name**: sats-pef - **Description**: 7d性能平台 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2026-04-21 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI-7D-SATS 压测平台 AI 驱动的分布式压力测试系统,支持多协议、动态扩缩容、智能分析。 > **📊 架构实现状态**: 详见 [backend/docs/ARCHITECTURE_STATUS.md](./backend/docs/ARCHITECTURE_STATUS.md) - 完整的模块实现状态标注 ## 📁 项目结构 ``` ai-sats-build/ ├── backend/ # 后端服务 (FastAPI + Python 3.12) │ ├── src/ │ │ ├── api/ # API 路由 (31 个路由文件) │ │ │ ├── auth_routes.py # 认证相关 │ │ │ ├── test_routes.py # 测试执行 │ │ │ ├── scenario_routes.py # 场景管理 │ │ │ ├── scenario_task_routes.py # 场景任务管理 │ │ │ ├── worker_routes.py # Worker 管理 │ │ │ ├── monitoring_routes.py # 监控告警 │ │ │ ├── analysis_routes.py # AI 分析 │ │ │ ├── permission_routes.py # 权限管理 │ │ │ ├── import_routes.py # 导入功能 │ │ │ ├── report_routes.py # 报告生成 │ │ │ └── ... (共 31 个路由文件) │ │ ├── core/ # 核心业务逻辑 (65+ 个文件) │ │ │ ├── http_executor.py # HTTP 执行器 │ │ │ ├── dynamic_aiohttp_executor.py # 动态 HTTP 执行器 │ │ │ ├── dynamic_multiprocess_executor.py # 多进程执行器 │ │ │ ├── dynamic_locust_runner.py # Locust 运行器 │ │ │ ├── tcp_executor.py # TCP 执行器 │ │ │ ├── websocket_executor.py # WebSocket 执行器 │ │ │ ├── grpc_executor.py # gRPC 执行器 │ │ │ ├── dubbo_executor.py # Dubbo 执行器 │ │ │ ├── mqtt_executor.py # MQTT 执行器 │ │ │ ├── redis_executor.py # Redis 执行器 │ │ │ ├── mysql_executor.py # MySQL 执行器 │ │ │ ├── distributed_executor.py # 分布式执行器 │ │ │ ├── dynamic_scaling_controller.py # 动态扩缩容控制器 │ │ │ ├── worker_capacity_manager.py # Worker 容量管理器 │ │ │ ├── scenario_task_executor.py # 场景任务执行器 │ │ │ ├── ai_client.py # AI 客户端 │ │ │ ├── analysis_engine.py # 分析引擎 │ │ │ ├── worker_manager.py # Worker 管理器 │ │ │ └── ... (共 65+ 个核心文件) │ │ ├── models/ # 数据模型 (22 个文件) │ │ │ ├── user.py # 用户模型 │ │ │ ├── test_result.py # 测试结果模型 │ │ │ ├── scenario.py # 场景模型 │ │ │ ├── scenario_task.py # 场景任务模型 │ │ │ ├── worker.py # Worker 模型 │ │ │ ├── monitoring.py # 监控模型 │ │ │ └── ... (共 22 个模型) │ │ ├── schemas/ # Pydantic 验证模型 │ │ ├── config/ # 配置文件 │ │ ├── utils/ # 工具函数 │ │ ├── websocket/ # WebSocket 支持 │ │ └── main.py # 应用入口 │ ├── worker/ # Worker 节点程序 │ │ ├── worker.py # Worker 主程序 │ │ ├── client.py # HTTP 客户端 │ │ ├── config.py # 配置管理 │ │ ├── dynamic_task_manager.py # 动态任务管理 │ │ ├── Dockerfile # Docker 镜像 │ │ └── requirements.txt # Python 依赖 │ ├── scripts/ # 运维脚本 (70+ 个) │ │ ├── init_database.py # 初始化数据库 │ │ ├── init_rbac_tables.py # 初始化权限表 │ │ ├── init_monitoring_tables.py # 初始化监控表 │ │ ├── fix_database.py # 修复数据库 │ │ └── ... (共 70 个脚本) │ ├── tests/ # 测试代码 (95 个测试文件) │ ├── data/ # 数据目录 │ │ ├── ai_stress_test.db # SQLite 数据库 │ │ ├── param_files/ # 参数文件 │ │ ├── performance_guides/ # 性能指南 │ │ └── prompts/ # Prompt 模板 │ ├── migrations/ # 数据库迁移脚本 │ ├── reports/ # 测试报告输出 │ ├── requirements.txt # Python 依赖 │ └── Dockerfile # Docker 镜像 │ ├── frontend/ # 前端应用 (Vue 3 + TypeScript + Vite) │ ├── src/ │ │ ├── pages/ # 页面组件 (21 个) │ │ │ ├── Home.vue # 首页 │ │ │ ├── HttpScenarioForm.vue # HTTP 场景表单 (增强版) │ │ │ ├── ScenarioForm.vue # 通用场景表单 │ │ │ ├── ScenarioTaskList.vue # 场景任务列表 │ │ │ ├── ScenarioTaskForm.vue # 场景任务表单 │ │ │ ├── ScenarioTaskDetail.vue # 场景任务详情 │ │ │ ├── TestExecution.vue # 测试执行 │ │ │ ├── Results.vue # 结果列表 │ │ │ ├── ResultDetail.vue # 结果详情 │ │ │ ├── Workers.vue # Worker 管理 │ │ │ ├── WorkerDownload.vue # Worker 下载 │ │ │ ├── Monitoring.vue # 监控面板 │ │ │ ├── Analysis.vue # AI 分析 │ │ │ ├── TaskSchedule.vue # 任务调度 │ │ │ └── ... (共 21 个页面) │ │ ├── components/ # 通用组件 (40+ 个) │ │ │ ├── Protocol/ # 协议配置组件 │ │ │ ├── Monitoring/ # 监控组件 │ │ │ ├── Permission/ # 权限组件 │ │ │ └── ... (共 40 个组件) │ │ ├── services/ # API 服务 (13 个) │ │ │ ├── api.ts # API 客户端 │ │ │ ├── auth.ts # 认证服务 │ │ │ ├── testService.ts # 测试服务 │ │ │ ├── workerService.ts # Worker 服务 │ │ │ └── ... (共 13 个服务) │ │ ├── composables/ # 组合式函数 (6 个) │ │ │ ├── useMenu.ts # 菜单钩子 │ │ │ ├── usePermission.ts # 权限钩子 │ │ │ └── ... (共 6 个 hooks) │ │ ├── layouts/ # 布局组件 │ │ ├── styles/ # 样式文件 │ │ ├── router.ts # 路由配置 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── scripts/ # 构建脚本 │ ├── package.json # Node 依赖 │ ├── vite.config.ts # Vite 配置 │ └── nginx.conf # Nginx 配置 │ └── docker-compose.yml # Docker Compose 配置 ``` ## 🏗️ 系统架构 **图例**: ✅已实现 | 🚧部分实现 | 📋规划中 ### 技术栈 **后端**: - FastAPI (Python 3.12) - SQLAlchemy (ORM) - SQLite / MySQL - JWT 认证 - WebSocket 实时通信 **前端**: - Vue 3 + TypeScript - Vite (构建工具) - Element Plus (UI 组件库) - Axios (HTTP 客户端) - ECharts (图表库) **分布式**: - Master-Worker 架构 - Token 认证 - 心跳检测 - 动态扩缩容 ### 核心功能模块 #### 1. 压测引擎 ✅ **支持协议**: - ✅ HTTP/HTTPS (单机/多进程/Locust/动态调整四种模式) - ✅ TCP (持久连接/短连接) - ✅ WebSocket (双向通信/心跳检测) - ✅ UDP (数据报测试) - ✅ Unix Socket (本地通信) - ✅ gRPC (Proto 文件支持) - ✅ Dubbo (注册中心集成) - ✅ MQTT (QoS 级别/TLS 加密) - ✅ Redis (17 种命令/Pipeline) - ✅ MySQL (CRUD 操作/事务) **执行模式**: - 单机模式:数百并发用户 - 多进程模式:数千并发用户 - Locust 模式:分布式负载生成 - 动态调整:实时修改并发数/RPS(无需重启) #### 2. 分布式调度 ✅ **Master 节点**: - ✅ Worker 注册管理 - ✅ 心跳检测 (5 秒间隔) - ✅ 容量管理 (动态负载评估) - ✅ 任务分配 (轮询/权重) - ✅ Token 认证 (JWT) - ✅ 动态扩缩容控制器 **Worker 节点**: - ✅ 自动注册 - ✅ 心跳保持 - ✅ 任务执行 - ✅ 指标上报 - ✅ 日志上传 - ✅ 动态任务管理 #### 3. AI 分析引擎 ✅ **AI 模型支持**: - ✅ OpenAI (GPT-4/GPT-3.5) - ✅ Anthropic (Claude) - ✅ Gemini (Google) - ✅ Ollama (本地模型) - ✅ 流式响应 (SSE) **分析能力**: - ✅ 性能分析 (基于决策树) - ✅ 瓶颈定位 (239 个关联关系) - ✅ 案例匹配 (643 个实战案例) - 📋 对比分析 (多次测试对比) - 📋 趋势预测 (历史数据分析) **性能分析决策树**: - 37 个决策树 (OS/Java/DB/中间件) - 239 个关联关系 (指标因果) - 643 个实战案例 (167 基础 + 451 Java + 25 网络) - 2000+ 性能参数 - 90 个诊断工具 #### 4. 监控告警 🚧 **实时指标**: - ✅ TPS/QPS - ✅ 响应时间 (P50/P90/P95/P99) - ✅ 成功率 - ✅ 并发数 - ✅ 错误率 - ✅ CPU 使用率 - ✅ 内存使用率 - ✅ 网络 IO (接收/发送流量) - ✅ 磁盘使用率 - ✅ 磁盘 IO (读写速度) **告警规则**: - ✅ 阈值告警 - ✅ 趋势告警 - ✅ 异常检测 - 📋 复合规则 - 📋 告警升级 **通知渠道**: - 📋 邮件通知 (SMTP) - 📋 短信通知 (阿里云) - 📋 Webhook - 📋 企业微信/钉钉 #### 5. 权限管理 ✅ **RBAC 模型**: - ✅ 用户管理 - ✅ 角色管理 - ✅ 权限管理 - ✅ 菜单管理 **安全特性**: - ✅ JWT 认证 - ✅ Token 验证 - ✅ 权限校验 - ✅ 会话管理 - ✅ 审计日志 - ✅ AES/RSA 加密 #### 6. 报告生成 🚧 - ✅ HTML 报告 (ECharts 图表) - ✅ PDF 报告 - 📋 Excel 报告 - 📋 自定义模板 #### 7. 导入导出 ✅ **导入支持**: - ✅ Postman Collection - ✅ cURL 命令 - ✅ HAR 文件 - ✅ Swagger/OpenAPI **导出支持**: - ✅ JSON 格式 - ✅ CSV 格式 - ✅ PDF 报告 - ✅ Excel 报告 ## 🚀 快速开始 ### 1. 环境要求 - Python 3.12+ - Node.js 18+ - SQLite (内置) 或 MySQL 5.7+ - Docker & Docker Compose (可选) ### 2. 后端部署 ```bash cd backend # 创建虚拟环境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 初始化数据库 python scripts/fix_database.py # 启动服务 uvicorn src.main:app --reload # 开发模式 # uvicorn src.main:app --host 0.0.0.0 --port 8000 --workers 4 # 生产模式 ``` 访问:http://localhost:8000/docs (Swagger API 文档) ### 3. 前端部署 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build ``` 访问:http://localhost:5173 ### 4. Docker 部署 ```bash # 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ## 📊 核心指标 **性能指标**: - 单机支持:500+ 并发用户 - 分布式支持:10000+ 并发用户 (20 个 Worker) - 请求延迟:< 1ms (单机模式) - 数据上报:实时 (WebSocket 推送) - AI 分析响应:3-10 秒 (流式输出) - 动态扩缩容:秒级响应,无需重启测试 **扩展性**: - 协议插件化:新增协议 < 100 行代码 - Worker 弹性伸缩:自动/手动 - 数据库优化:索引覆盖关键查询 - 场景任务:支持复杂业务流程编排 ## 📚 文档导航 ### 快速开始 - [backend/README.md](./backend/README.md) - 后端详细文档 - [frontend/README.md](./frontend/README.md) - 前端详细文档 - [docs/README.md](./docs/README.md) - 仓库文档入口 ### 架构设计 - [backend/docs/ARCHITECTURE_STATUS.md](./backend/docs/ARCHITECTURE_STATUS.md) - 架构实现状态 - [backend/docs/ISSUE_CHECKLIST.md](./backend/docs/ISSUE_CHECKLIST.md) - 问题清单与修复计划 - [backend/docs/RESTART_REQUIRED.md](./backend/docs/RESTART_REQUIRED.md) - 重启说明 - [backend/docs/DOCUMENT_MIGRATION_PLAN.md](./backend/docs/DOCUMENT_MIGRATION_PLAN.md) - 文档优化建议 ### 数据库 - [backend/data/README.md](./backend/data/README.md) - 数据库概览 - [backend/data/README_MYSQL.md](./backend/data/README_MYSQL.md) - MySQL 配置说明 ### 监控功能 - [backend/docs/MONITORING_METRICS_STATUS.md](./backend/docs/MONITORING_METRICS_STATUS.md) - 监控指标状态 - [backend/docs/DISK_IO_IMPLEMENTATION.md](./backend/docs/DISK_IO_IMPLEMENTATION.md) - 磁盘 IO 实现说明 ### 前端文档 - [docs/frontend/HOME_PAGE_ENHANCEMENT.md](./docs/frontend/HOME_PAGE_ENHANCEMENT.md) - 首页增强说明 - [docs/frontend/INSTALL_JSON_COMPONENT.md](./docs/frontend/INSTALL_JSON_COMPONENT.md) - JSON 组件安装指南 ### 脚本工具 - [backend/scripts/README.md](./backend/scripts/README.md) - 脚本使用说明 ### 更新日志 - [docs/README_UPDATE_LOG.md](./docs/README_UPDATE_LOG.md) - README 文档更新历史 ## 🔧 常用命令 ### 后端 ```bash # 数据库管理 python scripts/fix_database.py # 一键修复数据库 python scripts/migrate_database.py # 数据库迁移 python scripts/init_rbac_tables.py # 初始化权限表 # Worker 管理 python worker/worker.py # 启动 Worker bash worker/docker-build.sh # 构建 Worker 镜像 # 测试 pytest # 运行所有测试 pytest tests/test_worker_token.py # 运行特定测试 ``` ### 前端 ```bash # 开发 npm run dev # 启动开发服务器 npm run build # 构建生产版本 npm run preview # 预览生产构建 # 代码检查 npm run lint # ESLint 检查 npm run type-check # TypeScript 类型检查 ``` ## 🌐 API 端点 ### 认证相关 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户 - `POST /api/auth/logout` - 用户登出 ### 场景任务管理 - `GET /api/scenario-tasks` - 获取场景任务列表 - `POST /api/scenario-tasks` - 创建场景任务 - `GET /api/scenario-tasks/{id}` - 获取任务详情 - `POST /api/scenario-tasks/{id}/start` - 启动任务 - `POST /api/scenario-tasks/{id}/stop` - 停止任务 - `GET /api/scenario-tasks/{id}/progress` - 获取任务进度 - `GET /api/scenario-tasks/{id}/report` - 获取任务报告 ### 任务调度 - `GET /api/task-schedules` - 获取调度列表 - `POST /api/task-schedules` - 创建调度任务 - `PUT /api/task-schedules/{id}` - 更新调度任务 - `DELETE /api/task-schedules/{id}` - 删除调度任务 ### 场景管理 - `GET /api/scenarios` - 获取场景列表 - `POST /api/scenarios` - 创建场景 - `PUT /api/scenarios/{id}` - 更新场景 - `DELETE /api/scenarios/{id}` - 删除场景 - `POST /api/scenarios/{id}/run` - 运行场景 ### 测试执行 - `POST /api/tests` - 创建测试任务 - `GET /api/tests/{id}` - 获取测试详情 - `POST /api/tests/{id}/stop` - 停止测试 - `WS /ws/{test_id}` - WebSocket 实时数据 ### Worker 管理与下载 - `POST /api/worker-tokens` - 创建 Worker Token - `GET /api/workers` - 获取 Worker 列表 - `POST /api/workers/register` - Worker 注册 - `POST /api/workers/heartbeat` - Worker 心跳 - `GET /api/worker-download` - 获取 Worker 下载信息 - `GET /api/worker-capacity` - 获取 Worker 容量信息 ### 监控告警 - `GET /api/monitoring/system/status` - 系统状态 - `GET /api/monitoring/metrics/{type}` - 获取指标 - `GET /api/monitoring/alert-rules` - 告警规则 - `POST /api/monitoring/alerts/{id}/acknowledge` - 确认告警 ### AI 分析 - `POST /api/analysis/performance` - 性能分析 - `POST /api/analysis/bottleneck` - 瓶颈定位 - `GET /api/analysis/history` - 分析历史 - `GET /api/prompts` - 获取 Prompt 模板 - `GET /api/performance-guides` - 获取性能指南 ### 系统配置与管理 - `GET /api/config/system` - 获取系统配置 - `PUT /api/config/system` - 更新系统配置 - `GET /api/user-preferences` - 获取用户偏好 - `PUT /api/user-preferences` - 更新用户偏好 - `GET /api/audit/logs` - 获取审计日志 完整 API 文档:http://localhost:8000/docs ## ⚠️ 注意事项 ### 安全提示 - ⚠️ 生产环境请修改默认密码 (admin/admin123) - ⚠️ 配置强 SECRET_KEY 和 JWT_SECRET - ⚠️ 启用 HTTPS (生产环境) - ⚠️ 定期备份数据库 ### 性能优化 - 💡 大数据量测试使用分布式模式 - 💡 启用数据库连接池 - 💡 配置适当的 Worker 数量 - 💡 使用 Redis 缓存热点数据 (可选) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 GNU General Public License v3.0 (GPL-3.0) ## 👥 开发团队 **7DGroup 团队** --- **最后更新**: 2026-04-08