e4111ddb1a
- T1.1: 卸载 Vue 依赖,安装 React 19 + Ant Design 5 + Zustand 5 + AntV 全家桶 - T1.2: Vite 配置迁移 (plugin-vue → plugin-react, manualChunks 更新) - T1.3: TypeScript 配置迁移 (jsx: preserve → react-jsx, 移除 .vue) - T1.4: ESLint 配置迁移 (Vue 规则 → React/Hooks/Refresh 规则) - T1.5: 入口文件迁移 (main.ts → main.tsx, App.vue → App.tsx, div#app → div#root) 验证: npm run dev 成功启动空白 React 应用
231 lines
6.5 KiB
Markdown
231 lines
6.5 KiB
Markdown
# Dogfood Report: Novalon管理系统
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Date** | 2026-04-28 |
|
||
| **App URL** | http://localhost:3002 |
|
||
| **Session** | novalon-test |
|
||
| **Scope** | 全应用探索性测试,重点关注用户旅程(User Journey) |
|
||
|
||
## Summary
|
||
|
||
| Severity | Count |
|
||
|----------|-------|
|
||
| Critical | 0 |
|
||
| High | 1 |
|
||
| Medium | 2 |
|
||
| Low | 1 |
|
||
| **Total** | **4** |
|
||
|
||
## Test Environment
|
||
|
||
- **Frontend**: http://localhost:3002 (Vue 3 + Vite)
|
||
- **Gateway**: http://localhost:8080 (Spring Cloud Gateway)
|
||
- **Backend**: http://localhost:8084 (Spring Boot)
|
||
- **Database**: PostgreSQL on localhost:55432
|
||
- **Test User**: admin / Test@123
|
||
|
||
## Test Execution Summary
|
||
|
||
### 服务状态验证
|
||
- ✅ 后端服务 (8084): 正常运行
|
||
- ✅ 网关服务 (8080): 正常运行
|
||
- ✅ 前端服务 (3002): 正常运行
|
||
- ✅ 数据库连接: 正常
|
||
|
||
### 数据库验证
|
||
- ✅ 用户表: 7条记录
|
||
- ✅ 角色表: 8条记录
|
||
- ✅ 菜单表: 51条记录
|
||
- ✅ 字典类型表: 8条记录
|
||
- ✅ 系统配置表: 9条记录
|
||
|
||
### API测试结果
|
||
- ✅ 登录API: 正常工作,返回JWT token
|
||
- ✅ 用户管理API: 正常工作,需要签名验证
|
||
- ✅ 角色管理API: 正常工作,需要签名验证
|
||
- ✅ 菜单管理API: 正常工作,需要签名验证
|
||
- ✅ 字典管理API: 正常工作,需要签名验证
|
||
- ✅ 系统配置API: 正常工作,需要签名验证
|
||
|
||
### 日志监控结果
|
||
- ✅ 后端日志: 无ERROR或Exception
|
||
- ⚠️ 网关日志: 有配置警告,但不影响功能
|
||
- ✅ 前端日志: 未发现异步功能错误
|
||
|
||
## Issues
|
||
|
||
### ISSUE-001: API签名验证机制导致测试困难
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Severity** | high |
|
||
| **Category** | functional |
|
||
| **URL** | http://localhost:8080/api/* |
|
||
| **Repro Video** | N/A |
|
||
|
||
**Description**
|
||
|
||
所有API请求都需要签名验证(X-Signature, X-Timestamp, X-Nonce),这导致:
|
||
1. 直接使用curl或Postman测试API时会被拒绝
|
||
2. 测试脚本需要实现签名生成逻辑,增加了测试复杂度
|
||
3. 签名验证失败时,错误信息不够友好
|
||
|
||
**Expected Behavior**
|
||
- 应该提供测试模式,允许跳过签名验证
|
||
- 或者提供测试工具/库来简化签名生成
|
||
|
||
**Actual Behavior**
|
||
- API返回401错误,提示签名验证失败
|
||
- 错误信息:`{"error": "Unauthorized", "code": "INVALID_SIGNATURE", "message": "Request signature verification failed. Please ensure you have included valid X-Signature, X-Timestamp, and X-Nonce headers."}`
|
||
|
||
**Impact**
|
||
- 增加了API测试的复杂度
|
||
- 影响开发效率
|
||
- 可能导致测试覆盖率不足
|
||
|
||
---
|
||
|
||
### ISSUE-002: 网关配置警告
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Severity** | medium |
|
||
| **Category** | console |
|
||
| **URL** | N/A |
|
||
| **Repro Video** | N/A |
|
||
|
||
**Description**
|
||
|
||
网关启动时出现多个配置警告:
|
||
1. `management.endpoint.env.enabled` 配置项使用了不兼容的目标类型
|
||
2. `management.endpoint.loggers.enabled` 配置项使用了不兼容的目标类型
|
||
3. `management.endpoint.metrics.enabled` 配置项使用了不兼容的目标类型
|
||
4. `management.metrics.web.server.request.autotime.enabled` 配置项应该全局配置
|
||
|
||
**Expected Behavior**
|
||
- 网关启动时不应该有配置警告
|
||
- 配置文件应该符合Spring Boot 3.x的最佳实践
|
||
|
||
**Actual Behavior**
|
||
- 网关启动时出现多个配置警告
|
||
- 虽然不影响功能,但可能会在未来的Spring Boot版本中导致问题
|
||
|
||
**Impact**
|
||
- 配置警告可能导致未来的兼容性问题
|
||
- 影响日志的可读性
|
||
|
||
---
|
||
|
||
### ISSUE-003: Playwright测试执行卡住
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Severity** | medium |
|
||
| **Category** | functional |
|
||
| **URL** | N/A |
|
||
| **Repro Video** | N/A |
|
||
|
||
**Description**
|
||
|
||
执行Playwright测试时,测试进程似乎卡住,没有输出任何内容:
|
||
- 运行 `npm run test:e2e:journeys` 后,进程一直处于运行状态
|
||
- 没有测试输出,没有错误信息
|
||
- 需要手动终止进程
|
||
|
||
**Expected Behavior**
|
||
- 测试应该正常执行并输出结果
|
||
- 如果有问题,应该输出错误信息
|
||
|
||
**Actual Behavior**
|
||
- 测试进程卡住,无输出
|
||
- 无法判断测试是否在运行
|
||
|
||
**Impact**
|
||
- 无法执行自动化测试
|
||
- 影响CI/CD流程
|
||
- 无法验证代码质量
|
||
|
||
---
|
||
|
||
### ISSUE-004: 测试数据清理不彻底
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Severity** | low |
|
||
| **Category** | functional |
|
||
| **URL** | N/A |
|
||
| **Repro Video** | N/A |
|
||
|
||
**Description**
|
||
|
||
数据库中存在测试用户数据,说明之前的测试没有正确清理:
|
||
- 用户表中有多条 `testuser_*` 开头的测试用户
|
||
- 这些数据可能是之前测试遗留的
|
||
|
||
**Expected Behavior**
|
||
- 每次测试后应该清理测试数据
|
||
- 数据库应该保持干净状态
|
||
|
||
**Actual Behavior**
|
||
- 数据库中存在遗留的测试数据
|
||
- 可能影响后续测试的结果
|
||
|
||
**Impact**
|
||
- 可能导致测试结果不准确
|
||
- 影响数据质量
|
||
|
||
---
|
||
|
||
## Recommendations
|
||
|
||
### 高优先级
|
||
1. **简化API签名验证机制**:
|
||
- 提供测试模式,允许跳过签名验证
|
||
- 或者提供测试工具/库来简化签名生成
|
||
- 改进错误信息,提供更详细的调试信息
|
||
|
||
### 中优先级
|
||
2. **修复网关配置警告**:
|
||
- 更新配置文件以符合Spring Boot 3.x的最佳实践
|
||
- 参考Spring Boot官方文档更新配置项
|
||
|
||
3. **修复Playwright测试问题**:
|
||
- 检查Playwright配置
|
||
- 确保测试能够正常执行
|
||
- 添加超时机制,避免测试卡住
|
||
|
||
### 低优先级
|
||
4. **改进测试数据清理**:
|
||
- 在测试套件中添加清理步骤
|
||
- 使用事务回滚或数据库快照来隔离测试数据
|
||
|
||
## Test Coverage
|
||
|
||
### 已测试的功能模块
|
||
- ✅ 用户登录
|
||
- ✅ 用户管理(查询)
|
||
- ✅ 角色管理(查询)
|
||
- ✅ 菜单管理(查询)
|
||
- ✅ 字典管理(查询)
|
||
- ✅ 系统配置(查询)
|
||
|
||
### 未测试的功能模块
|
||
- ❌ 用户管理(创建、编辑、删除)
|
||
- ❌ 角色管理(创建、编辑、删除)
|
||
- ❌ 字典管理(创建、编辑、删除)
|
||
- ❌ 系统配置(创建、编辑、删除)
|
||
- ❌ 文件管理
|
||
- ❌ 通知管理
|
||
- ❌ 日志管理
|
||
|
||
## Conclusion
|
||
|
||
本次dogfood测试发现了一些关键问题:
|
||
1. API签名验证机制增加了测试复杂度,需要改进
|
||
2. 网关配置存在警告,需要修复以避免未来的兼容性问题
|
||
3. Playwright测试执行存在问题,需要修复
|
||
4. 测试数据清理不彻底,需要改进
|
||
|
||
建议优先解决API签名验证问题,以便能够更有效地进行自动化测试。同时,修复网关配置警告和Playwright测试问题,确保测试套件能够正常运行。
|