# 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 - 自动化测试平台
一个现代化的全栈自动化测试管理平台,用于管理测试用例、调度 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/)