mi-assessment/.kiro/specs/admin-integration/design.md
2026-02-03 19:17:48 +08:00

234 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Design Document: Admin Integration Testing
## Overview
本文档描述了后台管理系统前后端联调测试的策略和流程设计。联调测试确保后端 API 和前端页面能够正确协作。
## 联调策略
### 分阶段联调
```mermaid
gantt
title 前后端并行开发与联调计划
dateFormat YYYY-MM-DD
section 后端开发
基础设施搭建 :a1, 2026-02-03, 2d
配置+内容模块 :a2, after a1, 3d
测评模块 :a3, after a2, 4d
用户+订单模块 :a4, after a3, 3d
规划师+分销模块 :a5, after a4, 4d
权限控制 :a6, after a5, 2d
section 前端开发
基础设施搭建 :b1, 2026-02-03, 2d
Dashboard+Config :b2, after b1, 2d
Content模块 :b3, after b2, 2d
Assessment模块 :b4, after b3, 4d
User+Order模块 :b5, after b4, 3d
Planner+Distribution :b6, after b5, 4d
权限控制 :b7, after b6, 2d
section 联调测试
联调1: 基础模块 :c1, 2026-02-08, 1d
联调2: 内容+测评 :c2, 2026-02-14, 1d
联调3: 用户+订单 :c3, 2026-02-18, 1d
联调4: 规划师+分销 :c4, 2026-02-23, 1d
联调5: 权限+最终验收 :c5, 2026-02-25, 2d
```
### 联调检查点
| 检查点 | 后端完成任务 | 前端完成任务 | 联调内容 |
|-------|------------|------------|---------|
| CP1 | Task 1-4 | Task 1-4 | Dashboard, Config |
| CP2 | Task 5-10 | Task 5-6 | Content, Assessment |
| CP3 | Task 11-14 | Task 7-9 | User, Order |
| CP4 | Task 15-19 | Task 10-11 | Planner, Distribution |
| CP5 | Task 20-23 | Task 12-14 | 权限控制, 最终验收 |
## 联调环境配置
### 后端配置
```json
// appsettings.Development.json
{
"Cors": {
"AllowedOrigins": ["http://localhost:5173"]
}
}
```
### 前端配置
```typescript
// vite.config.ts
export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://localhost:61551',
changeOrigin: true
}
}
}
})
```
## 联调测试用例
### 1. 认证流程
```
测试步骤:
1. 打开登录页面
2. 输入用户名: admin, 密码: 123456
3. 点击登录按钮
预期结果:
- 登录成功,跳转到首页
- localStorage 中存储 accessToken 和 refreshToken
- 后续请求 Header 中包含 Authorization: Bearer {token}
```
### 2. CRUD 操作流程
```
测试步骤 (以轮播图为例):
1. 访问轮播图管理页面
2. 点击新增按钮
3. 上传图片,填写标题,选择跳转类型
4. 点击保存
预期结果:
- 图片上传成功,返回 URL
- 表单数据正确提交到后端
- 列表刷新显示新增数据
- 数据库中有对应记录
```
### 3. 分页和筛选
```
测试步骤:
1. 访问用户管理页面
2. 输入筛选条件 (手机号: 138)
3. 点击搜索
4. 切换到第 2 页
预期结果:
- 列表只显示手机号包含 138 的用户
- 分页信息正确 (总数、当前页)
- 切换页面数据正确加载
```
### 4. 权限控制
```
测试步骤:
1. 使用普通运营账号登录
2. 访问提现审核页面
3. 尝试点击审核按钮
预期结果:
- 如果无权限,审核按钮不显示
- 如果直接调用 API返回 403 错误
```
## 常见问题排查
### 1. CORS 错误
```
问题: Access to XMLHttpRequest has been blocked by CORS policy
解决: 检查后端 CORS 配置是否包含前端地址
```
### 2. 401 未授权
```
问题: 请求返回 401 Unauthorized
解决:
- 检查 token 是否正确存储
- 检查请求 Header 是否包含 Authorization
- 检查 token 是否过期
```
### 3. 数据格式不一致
```
问题: 前端解析数据失败
解决:
- 对比 API 文档和实际返回数据
- 检查字段名大小写 (后端 PascalCase vs 前端 camelCase)
- 检查日期格式
```
### 4. 文件上传失败
```
问题: 图片上传返回错误
解决:
- 检查文件大小限制
- 检查文件类型限制
- 检查上传路径配置
```
## 联调沟通模板
### 问题报告
```markdown
**模块**: 轮播图管理
**接口**: POST /api/admin/content/banner/create
**问题描述**: 创建轮播图时返回 500 错误
**请求参数**:
{
"title": "测试",
"imageUrl": "http://xxx/test.jpg",
"linkType": 1,
"linkUrl": "/pages/index"
}
**返回结果**:
{
"code": 500,
"message": "Internal Server Error"
}
**期望结果**: 返回创建成功的 ID
**前端/后端**: 后端
```
### 接口变更通知
```markdown
**接口**: GET /api/admin/user/getList
**变更类型**: 新增字段
**变更内容**: 响应数据新增 inviteCount 字段
**变更原因**: 需要显示用户邀请人数
**影响范围**: 用户列表页面
**生效时间**: 2026-02-10
```
## 验收标准
### 功能验收
- [ ] 所有 CRUD 操作正常
- [ ] 分页和筛选功能正常
- [ ] 文件上传功能正常
- [ ] 导出功能正常
- [ ] 权限控制正常
### 性能验收
- [ ] 列表页面加载时间 < 2s
- [ ] 表单提交响应时间 < 1s
- [ ] 文件上传响应时间 < 5s
### 兼容性验收
- [ ] Chrome 最新版本
- [ ] Edge 最新版本
- [ ] Firefox 最新版本