refactor: 重构后端查询逻辑和API响应处理 fix: 修复用户角色更新和文件上传问题 test: 添加前端性能测试脚本和E2E测试用例 chore: 更新依赖版本和配置文件 docs: 添加环境检查脚本和测试文档 style: 统一表格标签样式和路由命名 perf: 优化前端页面加载速度和响应时间
17 KiB
测试框架优化需求规范
📊 项目元数据
项目名称: Novalon管理系统测试框架优化
规范版本: v1.0
创建日期: 2026-03-23
需求模糊度: 0.15 (≤ 0.2 ✅)
规范状态: 已冻结,不可变更
🎯 核心目标
主要目标: 基于UAT评估报告优先级,全面优化测试框架,实现从"部分就绪"到"完全就绪"的转变
成功标准:
- UAT准备度从60/100提升到90+/100
- 测试执行成功率从20%提升到95%+
- 测试覆盖率达到80%+
- CI/CD集成测试自动化率达到100%
📋 需求优先级矩阵
P0 - 关键阻塞问题 (必须立即解决)
需求ID: REQ-P0-001
标题: 修复前端Vite服务挂起问题 来源: UAT评估报告 - 关键阻塞问题 业务价值: 🔴 严重 - 阻塞所有前端E2E测试 技术复杂度: 中等 预计工作量: 2-4小时
验收标准:
- 前端Vite服务能够正常响应HTTP请求
- curl访问localhost:3001成功返回200状态码
- Vite进程状态为正常运行状态(S或R)
- 简单的页面测试能够通过
- 服务重启后保持稳定
技术方案:
- 停止所有挂起的Vite进程
- 使用nohup或screen重新启动服务
- 配置进程监控和自动重启机制
- 建立服务健康检查脚本
依赖关系: 无前置依赖
P1 - 高优先级优化 (1周内完成)
需求ID: REQ-P1-001
标题: 扩展测试覆盖 - 审计功能 来源: 用户需求 业务价值: 🟡 高 - 核心业务功能 技术复杂度: 中等 预计工作量: 1-2天
验收标准:
- 审计日志查看功能E2E测试覆盖
- 操作记录查询功能测试
- 审计日志导出功能测试
- 审计权限验证测试
- 测试通过率≥95%
测试场景:
- 管理员查看所有审计日志
- 普通用户查看自己的操作记录
- 按时间范围筛选审计日志
- 按操作类型筛选审计日志
- 导出审计日志为Excel/CSV
- 验证审计权限控制
依赖关系: 依赖REQ-P0-001
需求ID: REQ-P1-002
标题: 扩展测试覆盖 - 文件管理 来源: 用户需求 业务价值: 🟡 高 - 核心业务功能 技术复杂度: 中等 预计工作量: 1-2天
验收标准:
- 文件上传功能E2E测试覆盖
- 文件下载功能测试
- 文件删除功能测试
- 文件权限验证测试
- 大文件上传测试(>10MB)
- 测试通过率≥95%
测试场景:
- 上传各种格式文件(图片、文档、压缩包)
- 下载已上传文件
- 删除自己的文件
- 管理员删除任意文件
- 验证文件权限控制
- 大文件上传稳定性测试
依赖关系: 依赖REQ-P0-001
需求ID: REQ-P1-003
标题: 扩展测试覆盖 - 系统配置 来源: 用户需求 业务价值: 🟡 高 - 系统管理核心功能 技术复杂度: 中等 预计工作量: 1-2天
验收标准:
- 系统参数配置E2E测试覆盖
- 字典管理功能测试
- 配置修改权限验证测试
- 配置生效验证测试
- 测试通过率≥95%
测试场景:
- 管理员修改系统参数
- 查看系统配置历史
- 字典数据增删改查
- 验证配置权限控制
- 验证配置修改后生效
依赖关系: 依赖REQ-P0-001
需求ID: REQ-P1-004
标题: 扩展测试覆盖 - 通知功能 来源: 用户需求 业务价值: 🟡 高 - 用户沟通核心功能 技术复杂度: 中等 预计工作量: 1-2天
验收标准:
- 通知公告发布E2E测试覆盖
- 通知查看功能测试
- 通知状态管理测试
- 通知权限验证测试
- 测试通过率≥95%
测试场景:
- 管理员发布系统公告
- 用户查看未读通知
- 标记通知为已读
- 删除过期通知
- 验证通知权限控制
依赖关系: 依赖REQ-P0-001
需求ID: REQ-P1-005
标题: 优化测试稳定性 来源: UAT评估报告建议 业务价值: 🟡 高 - 提升测试可靠性 技术复杂度: 中等 预计工作量: 2-3天
验收标准:
- 测试执行成功率从当前水平提升到95%+
- 测试超时问题解决
- 测试重试机制优化
- 测试数据隔离完善
- 测试环境稳定性提升
优化方向:
- 优化Playwright等待策略
- 改进测试数据管理
- 增强错误处理和恢复
- 优化测试并行执行
- 建立测试环境健康检查
依赖关系: 依赖REQ-P0-001
P2 - 中优先级集成 (2周内完成)
需求ID: REQ-P2-001
标题: 集成到CI/CD - Woodpecker CI 来源: 用户需求 业务价值: 🟢 中 - 自动化质量保障 技术复杂度: 中等 预计工作量: 3-5天
验收标准:
- Woodpecker CI配置完善E2E测试
- 每次PR自动运行E2E测试
- 每日定时运行完整测试套件
- 测试失败阻止合并
- 测试报告自动生成和通知
- 测试执行时间≤15分钟
集成策略:
- 扩展现有Woodpecker配置
- 配置测试环境自动启动
- 设置测试质量门禁
- 集成测试报告和通知
- 优化测试执行效率
依赖关系: 依赖REQ-P1-001至REQ-P1-005
需求ID: REQ-P2-002
标题: 性能测试 - API性能 来源: 用户需求 业务价值: 🟢 中 - 系统性能保障 技术复杂度: 中等 预计工作量: 2-3天
验收标准:
- 核心API响应时间P95<500ms
- API吞吐量≥100 req/s
- 并发用户数≥50
- 错误率<1%
- 性能测试集成到CI/CD
测试指标:
- 登录API性能
- 用户查询API性能
- 数据CRUD API性能
- 权限验证API性能
- 文件上传下载API性能
依赖关系: 依赖REQ-P2-001
需求ID: REQ-P2-003
标题: 性能测试 - 前端性能 来源: 用户需求 业务价值: 🟢 中 - 用户体验保障 技术复杂度: 中等 预计工作量: 2-3天
验收标准:
- 首屏加载时间<2s
- 页面交互响应时间<100ms
- 路由切换时间<500ms
- Lighthouse性能评分≥90
- 前端性能监控建立
测试指标:
- 首屏加载性能
- 页面渲染性能
- 资源加载性能
- 用户交互响应
- 内存使用情况
依赖关系: 依赖REQ-P0-001, REQ-P2-001
需求ID: REQ-P2-004
标题: 性能测试 - 数据库性能 来源: 用户需求 业务价值: 🟢 中 - 数据处理性能保障 技术复杂度: 中等 预计工作量: 2-3天
验收标准:
- 查询响应时间P95<200ms
- 写入操作响应时间<100ms
- 数据库连接池利用率<80%
- 慢查询数量<5/小时
- 数据库性能监控建立
测试指标:
- 复杂查询性能
- 批量操作性能
- 事务处理性能
- 索引效果验证
- 连接池性能
依赖关系: 依赖REQ-P2-002
需求ID: REQ-P2-005
标题: 性能测试 - 并发压力 来源: 用户需求 业务价值: 🟢 中 - 系统稳定性保障 技术复杂度: 高 预计工作量: 3-4天
验收标准:
- 支持100并发用户
- 系统错误率<1%
- 响应时间P95<1s
- 系统资源使用率<80%
- 压力测试自动化
测试场景:
- 用户登录并发测试
- 数据查询并发测试
- 数据写入并发测试
- 文件上传并发测试
- 长时间稳定性测试
依赖关系: 依赖REQ-P2-002, REQ-P2-004
P3 - 低优先级增强 (1月内完成)
需求ID: REQ-P3-001
标题: 测试报告和可视化 来源: 质量保障最佳实践 业务价值: 🔵 低 - 提升测试可见性 技术复杂度: 低 预计工作量: 1-2天
验收标准:
- 测试报告门户建立
- 测试趋势分析图表
- 测试覆盖率可视化
- 缺陷统计和分析
- 实时测试状态监控
依赖关系: 依赖REQ-P2-001
需求ID: REQ-P3-002
标题: 测试数据管理优化 来源: 测试框架维护需求 业务价值: 🔵 低 - 提升测试维护性 技术复杂度: 低 预计工作量: 1-2天
验收标准:
- 测试数据生成器完善
- 测试数据清理机制
- 测试数据版本管理
- 测试环境数据隔离
- 测试数据文档完善
依赖关系: 依赖REQ-P1-005
🏗️ 技术架构
测试框架架构
┌─────────────────────────────────────────────────────────┐
│ CI/CD层 (Woodpecker) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 单元测试 │ │ 集成测试 │ │ E2E测试 │ │性能测试 │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 测试执行层 (Playwright) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ API测试 │ │ UI测试 │ │ 性能测试 │ │安全测试 │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Page Object Model层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ LoginPage│ │UserPage │ │AuditPage │ │FilePage │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 测试数据层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Fixtures │ │TestData │ │APIClient │ │Utils │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 被测系统 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 前端应用 │ │后端API │ │数据库 │ │文件存储 │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘
技术栈
| 层级 | 技术 | 版本 | 用途 |
|---|---|---|---|
| CI/CD | Woodpecker CI | Latest | 持续集成流水线 |
| 测试框架 | Playwright | 1.40+ | E2E测试框架 |
| 语言 | TypeScript | 5.0+ | 测试代码编写 |
| 性能测试 | k6 | Latest | 性能和压力测试 |
| 报告 | HTML/JSON | - | 测试报告生成 |
| 容器化 | Docker | Latest | 测试环境隔离 |
📊 质量指标
测试覆盖率目标
| 指标 | 当前值 | 目标值 | 测量方法 |
|---|---|---|---|
| E2E测试覆盖率 | 20% | 80%+ | 业务场景覆盖数/总场景数 |
| API测试覆盖率 | 60% | 95%+ | API端点覆盖数/总端点数 |
| 代码覆盖率 | 40% | 80%+ | Jacoco/Vitest覆盖率报告 |
| 测试通过率 | 20% | 95%+ | 测试执行结果统计 |
| 测试执行时间 | N/A | ≤15min | CI/CD执行时间统计 |
性能指标目标
| 指标 | 目标值 | 测量方法 |
|---|---|---|
| API响应时间P95 | <500ms | k6性能测试 |
| 前端首屏加载 | <2s | Lighthouse/Playwright |
| 数据库查询P95 | <200ms | 数据库性能监控 |
| 并发用户数 | ≥100 | k6压力测试 |
| 系统错误率 | <1% | 测试执行统计 |
🗓️ 实施计划
第1周:关键问题修复
目标: 解决P0阻塞问题,建立稳定测试基础
任务:
- Day 1-2: 修复前端Vite服务挂起问题 (REQ-P0-001)
- Day 3-4: 验证测试环境稳定性
- Day 5: 执行现有测试套件,建立基线
交付物:
- 前端服务稳定运行
- 测试环境健康检查脚本
- 测试基线报告
第2周:测试覆盖扩展
目标: 完成P1测试覆盖扩展任务
任务:
- Day 1-2: 审计功能测试 (REQ-P1-001)
- Day 3-4: 文件管理测试 (REQ-P1-002)
- Day 5: 系统配置测试 (REQ-P1-003)
交付物:
- 审计功能E2E测试套件
- 文件管理E2E测试套件
- 系统配置E2E测试套件
第3周:测试覆盖扩展(续)
目标: 完成剩余P1任务和测试稳定性优化
任务:
- Day 1-2: 通知功能测试 (REQ-P1-004)
- Day 3-5: 测试稳定性优化 (REQ-P1-005)
交付物:
- 通知功能E2E测试套件
- 测试稳定性优化报告
- 测试执行成功率≥95%
第4周:CI/CD集成
目标: 完成P2 CI/CD集成任务
任务:
- Day 1-3: Woodpecker CI集成 (REQ-P2-001)
- Day 4-5: CI/CD流水线验证
交付物:
- 完整的CI/CD测试流水线
- 自动化测试执行
- 测试质量门禁
第5-6周:性能测试
目标: 完成P2性能测试任务
任务:
- Week 5: API性能和数据库性能测试 (REQ-P2-002, REQ-P2-004)
- Week 6: 前端性能和并发压力测试 (REQ-P2-003, REQ-P2-005)
交付物:
- API性能测试报告
- 数据库性能测试报告
- 前端性能测试报告
- 并发压力测试报告
第7-8周:增强和优化
目标: 完成P3增强任务和整体优化
任务:
- Week 7: 测试报告和可视化 (REQ-P3-001)
- Week 8: 测试数据管理优化 (REQ-P3-002)
交付物:
- 测试报告门户
- 测试趋势分析
- 测试数据管理文档
🎯 验收标准
总体验收标准
必须满足:
- UAT准备度≥90/100
- 测试执行成功率≥95%
- E2E测试覆盖率≥80%
- CI/CD集成测试自动化率100%
- 所有P0和P1需求完成
期望满足:
- 测试执行时间≤15分钟
- 性能指标全部达标
- 测试报告门户可用
- 测试文档完善
🚨 风险和缓解措施
高风险项
| 风险 | 影响 | 概率 | 缓解措施 |
|---|---|---|---|
| 前端服务稳定性问题 | 高 | 中 | 使用Docker容器化,建立监控 |
| 测试环境配置复杂 | 中 | 高 | 建立标准化环境,使用Docker |
| 测试数据管理困难 | 中 | 中 | 完善测试数据生成器 |
| CI/CD集成复杂度 | 中 | 低 | 分阶段集成,充分测试 |
应急预案
前端服务再次挂起:
- 使用生产构建进行测试
- 使用Docker容器运行前端
- 建立备用测试环境
测试执行超时:
- 优化测试等待策略
- 增加测试超时时间
- 分割大型测试套件
📝 附录
术语表
| 术语 | 定义 |
|---|---|
| E2E测试 | 端到端测试,模拟真实用户操作流程 |
| UAT | 用户验收测试,验证系统是否满足业务需求 |
| POM | Page Object Model,页面对象模式,测试设计模式 |
| CI/CD | 持续集成/持续部署,自动化软件开发实践 |
| Woodpecker CI | 开源CI/CD平台 |
参考资料
规范变更历史:
| 版本 | 日期 | 变更内容 | 作者 |
|---|---|---|---|
| v1.0 | 2026-03-23 | 初始版本创建 | 张翔 |
规范状态: 🟢 已冻结,不可变更
下一步行动: 进入执行阶段(Run Phase)