# Automation_Platform **Repository Path**: ainao-community/Automation_Platform ## Basic Information - **Project Name**: Automation_Platform - **Description**: AutoTest 是一个全栈自动化测试管理平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-01 - **Last Updated**: 2026-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoTest - 自动化测试平台

React TypeScript Vite Express SQLite TailwindCSS

一个现代化的全栈自动化测试管理平台,用于管理测试用例、调度 Jenkins 执行任务、监控执行结果。平台专注于测试管理和调度,实际测试执行由 Jenkins 等外部系统完成。 ## ✨ 功能特性 - 📊 **仪表盘概览** - 实时展示测试执行统计、成功率趋势、今日执行情况 - 📝 **测试用例管理** - 创建、编辑、组织测试用例,支持标签和优先级分类 - ⏰ **任务调度** - 支持手动触发、定时调度(Cron)和 CI 触发 - 🔗 **Jenkins 集成** - 触发 Jenkins Job 执行,接收执行结果回调 - 📈 **执行历史** - 完整的执行记录和详细的测试结果 - 🌙 **深色模式** - 支持浅色/深色主题切换 ## 🛠️ 技术栈 ### 前端 | 技术 | 说明 | |------|------| | React 18 | 现代化 UI 框架 | | TypeScript | 类型安全 | | Vite | 快速构建工具 | | TailwindCSS | 原子化 CSS 框架 | | shadcn/ui | 高质量 UI 组件库 | | TanStack Query | 服务端状态管理 | | wouter | 轻量级路由 | ### 后端 | 技术 | 说明 | |------|------| | Express | Node.js Web 框架 | | SQLite | 轻量级数据库 (better-sqlite3) | | tsx | TypeScript 运行时 | ## 🚀 快速开始 ### 环境要求 - Node.js >= 18 - npm >= 9 ### 快速部署(推荐) ```bash # 自动部署脚本(macOS/Linux) bash deployment/scripts/setup.sh # 或 Windows deployment\scripts\setup.bat # 启动应用 npm run start ``` **所需时间**: 5-15 分钟 ### 手动安装 ```bash # 克隆仓库 git clone cd automation-platform # 安装依赖 npm install # 初始化数据库 npm run db:init ``` ### 开发 ```bash # 同时启动前端和后端(推荐) npm run start # 或分别启动 npm run dev # 前端 (http://localhost:5173) npm run server # 后端 (http://localhost:3000) ``` ### 构建 ```bash # 构建生产版本 npm run build # 预览构建结果 npm run preview ``` ### 详细部署指南 详见 [DEPLOYMENT_GUIDE.md](./DEPLOYMENT_GUIDE.md) 和 [deployment/](./deployment/) 文件夹中的完整文档。 ## 📁 项目结构 ```text automation-platform/ ├── src/ # 前端源代码 │ ├── components/ # React 组件 │ │ ├── ui/ # shadcn/ui 基础组件 │ │ └── dashboard/ # 仪表盘组件 │ ├── pages/ # 页面组件 │ ├── contexts/ # React Context │ ├── lib/ # 工具函数 │ └── api/ # API 客户端 ├── server/ # 后端源代码 │ ├── routes/ # API 路由 │ ├── services/ # 业务逻辑 │ └── db/ # 数据库相关 ├── configs/ # 配置文件 ├── docs/ # 项目文档 ├── tests/ # 测试文件 ├── scripts/ # 工具脚本 └── shared/ # 共享类型定义 ``` ## 🔗 API 接口 | 端点 | 方法 | 说明 | |------|------|------| | `/api/health` | GET | 健康检查 | | `/api/dashboard/stats` | GET | 仪表盘统计 | | `/api/dashboard/today` | GET | 今日执行情况 | | `/api/dashboard/trend` | GET | 趋势数据 | | `/api/cases` | GET | 获取测试用例列表 | | `/api/tasks` | GET | 获取任务列表 | | `/api/executions` | GET | 获取执行记录 | | `/api/executions/callback` | POST | Jenkins 执行结果回调 | | `/api/jenkins/trigger` | POST | 触发 Jenkins 执行 | | `/api/jenkins/tasks/:id/cases` | GET | 获取任务用例列表 | ## 🔗 Jenkins 集成 平台通过 API 与 Jenkins 集成,实现测试执行的调度和结果收集: ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端 Dashboard │────▶│ 后端 API │────▶│ Jenkins │ │ (用例管理/报表) │ │ (调度/记录) │ │ (实际执行) │ └─────────────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │◀──────回调结果────────┘ ▼ ┌─────────────────┐ │ SQLite 数据库 │ └─────────────────┘ ``` ### 触发执行 ```bash # 触发 Jenkins 执行任务 curl -X POST http://localhost:3000/api/jenkins/trigger \ -H "Content-Type: application/json" \ -d '{"taskId": 1, "triggeredBy": 1}' ``` ### 执行结果回调 Jenkins Job 完成后调用此接口上报结果: ```bash curl -X POST http://localhost:3000/api/executions/callback \ -H "Content-Type: application/json" \ -d '{ "executionId": 1, "status": "success", "duration": 120, "results": [ {"caseId": 1, "caseName": "登录测试", "status": "passed", "duration": 1000}, {"caseId": 2, "caseName": "注册测试", "status": "failed", "duration": 2000, "errorMessage": "断言失败"} ] }' ``` ## 💾 数据库 使用 SQLite 作为数据存储,主要表结构: | 表名 | 说明 | |------|------| | `users` | 用户信息 | | `projects` | 项目管理 | | `test_cases` | 测试用例 | | `tasks` | 测试任务 | | `task_executions` | 执行记录 | | `case_results` | 用例结果 | | `daily_summaries` | 每日统计 | ```bash # 重置数据库(清空并重新初始化) npm run db:reset ``` ## 📋 开发命令 | 命令 | 说明 | |------|------| | `npm run start` | 启动开发服务(前端+后端) | | `npm run dev` | 仅启动前端 | | `npm run server` | 仅启动后端 | | `npm run build` | 构建生产版本 | | `npm run db:init` | 初始化数据库 | | `npm run db:reset` | 重置数据库 | ## 🔍 类型检查 ```bash # 前端类型检查 npx tsc --noEmit -p tsconfig.json # 后端类型检查 npx tsc --noEmit -p tsconfig.server.json ``` ## 📍 路径别名 项目配置了以下路径别名: | 别名 | 路径 | 说明 | |------|------|------| | `@/*` | `./src/*` | 前端源码 | | `@shared/*` | `./shared/*` | 共享类型 | | `@configs/*` | `./configs/*` | 配置文件 | ```typescript // 使用示例 import { Button } from '@/components/ui/button'; import type { TestCase } from '@shared/types'; ``` ## 🌐 浏览器支持 | 浏览器 | 最低版本 | |--------|----------| | Chrome | 90+ | | Firefox | 90+ | | Safari | 14+ | | Edge | 90+ | ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建 Pull Request ## 📄 许可证 MIT License ## 🔗 相关链接 - [React 文档](https://react.dev/) - [Vite 文档](https://vitejs.dev/) - [TailwindCSS 文档](https://tailwindcss.com/) - [shadcn/ui 组件](https://ui.shadcn.com/) - [Express 文档](https://expressjs.com/)