HaniBlindBox/.kiro/specs/admin-ui-testing/design.md
2026-01-18 13:55:07 +08:00

183 lines
6.3 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: 后台管理系统 UI 功能测试
## Overview
本设计文档描述了 HoneyBox 后台管理系统 UI 功能测试的方法和流程。测试将通过浏览器自动化工具Playwright进行验证所有页面的按钮功能是否正常工作。
## Architecture
### 测试架构
```
┌─────────────────────────────────────────────────────────────┐
│ 测试执行层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Playwright │ │ 截图工具 │ │ Bug记录 │ │
│ │ 浏览器自动化│ │ │ │ 生成器 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 被测系统 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ HoneyBox Admin Web │ │
│ │ http://localhost:5173 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ HoneyBox Admin API │ │
│ │ http://localhost:5239 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
## Components and Interfaces
### 测试模块划分
| 模块 | 页面数量 | 主要功能 |
|------|----------|----------|
| 首页仪表盘 | 1 | 数据统计、快捷操作、主题设置 |
| 用户管理 | 5 | 用户列表、盈亏统计、VIP管理、邀请统计、登录统计 |
| 商品管理 | 2 | 盒子管理、盒子类型管理 |
| 订单管理 | 5 | 购买订单、发货订单、回收订单、卡单订单、综合订单 |
| 营销活动 | 8 | 优惠券、领取记录、广告、周榜、月榜、排行榜 |
| 钻石商城 | 1 | 钻石商品管理 |
| 系统配置 | 8 | 各类配置页面 |
| 内容管理 | 3 | 单页、悬浮球、福利屋入口 |
| 福利与任务 | 4 | 奖励、签到、任务、权益等级 |
| 系统管理 | 6 | 菜单、角色、权限、部门、管理员、日志 |
### 测试接口
每个页面测试包含以下标准测试点:
1. **页面加载测试**
- 验证页面正常加载
- 验证数据列表显示
- 验证无控制台错误
2. **查询功能测试**
- 验证筛选条件输入
- 验证查询按钮点击
- 验证查询结果显示
- 验证重置按钮功能
3. **CRUD 功能测试**
- 验证新增按钮和表单
- 验证编辑按钮和表单
- 验证删除按钮和确认
- 验证表单验证规则
4. **分页功能测试**
- 验证分页组件显示
- 验证页码切换
- 验证每页条数切换
## Data Models
### Bug 记录模型
```typescript
interface BugReport {
id: string; // Bug ID格式BUG-{模块}-{序号}
title: string; // Bug 标题
module: string; // 所属模块
page: string; // 所属页面
severity: 'high' | 'medium' | 'low'; // 严重程度
steps: string[]; // 复现步骤
expected: string; // 预期结果
actual: string; // 实际结果
screenshot?: string; // 截图路径
createdAt: string; // 发现时间
status: 'open' | 'fixed' | 'closed'; // 状态
}
```
### 测试结果模型
```typescript
interface TestResult {
taskId: string; // 任务ID
taskName: string; // 任务名称
status: 'pass' | 'fail' | 'skip'; // 测试状态
bugs: string[]; // 关联的 Bug ID 列表
executedAt: string; // 执行时间
notes?: string; // 备注
}
```
## Error Handling
### 测试异常处理
1. **页面加载超时**
- 等待时间30秒
- 超时后记录为 Bug
2. **元素未找到**
- 记录元素选择器
- 截图保存当前页面状态
3. **API 请求失败**
- 记录请求 URL 和响应状态
- 检查控制台错误信息
4. **表单提交失败**
- 记录表单数据
- 记录错误提示信息
## Testing Strategy
### 测试执行顺序
1. 首先测试系统管理模块(确保基础功能正常)
2. 然后测试用户管理模块
3. 接着测试商品管理和订单管理
4. 最后测试营销活动和其他模块
### 测试数据准备
- 使用现有数据库数据进行测试
- 新增测试数据时使用明显的测试标识测试_xxx
- 测试完成后清理测试数据
### Bug 记录规范
每个 Bug 记录文件格式:
```markdown
# BUG-{模块}-{序号}: {简要描述}
## 基本信息
- **所属模块**: {模块名}
- **所属页面**: {页面名}
- **严重程度**: 高/中/低
- **发现时间**: {时间}
## 复现步骤
1. {步骤1}
2. {步骤2}
3. ...
## 预期结果
{预期结果描述}
## 实际结果
{实际结果描述}
## 截图
{截图}
## 备注
{其他备注信息}
```