kindergarten_java/docs/test-logs/admin/2026-03-16-course-package-test-summary.md
En 938503f2b8 chore: 更新启动脚本使用 Java (Spring Boot) 后端
- 修改后端目录从 reading-platform-backend 改为 reading-platform-java
- 修改后端端口从 3000 改为 8080
- 修改启动命令从 npm run start:dev 改为 mvn spring-boot:run
- 添加 JAVA_HOME 自动检测和设置(默认使用 /f/Java/jdk-17)
- 修改日志文件从 reading-platform-backend.log 改为 reading-platform-java.log
- 修改健康检查接口为 /actuator/health
- 增加启动等待超时时间到 60 秒(Java 启动较慢)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 10:35:30 +08:00

110 lines
3.7 KiB
Markdown
Raw Permalink 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.

# 课程包创建流程 E2E 测试总结
## 测试执行时间
2026-03-16 02:27
## 测试结果
**总计**: 5 个测试用例
**通过**: 2 个 ✅
**失败**: 3 个 ❌
### 通过的测试 ✅
1. **必填项验证:未填必填项时无法进入下一步**
- 验证了步骤 1 的必填项验证逻辑
- 测试结果:未填必填项时确实无法进入下一步
2. **部分填写验证:只填部分必填项时无法进入下一步**
- 验证了只填写课程名称但缺少主题和年级时无法继续
- 测试结果:验证逻辑正常工作
### 失败的测试 ❌
1. **完整流程:填写所有 7 个步骤创建课程包**
- **失败原因**: 在课程管理页面加载表格时超时15 秒)
- **错误位置**: `admin\helpers.ts:47` - `waitForTable`
- **可能原因**:
- 前端服务响应慢
- 后端 API 响应慢
- 页面加载状态检测不准确
- **修复建议**: 增加超时时间或改进页面加载检测逻辑
2. **最小化流程:只填写必填项创建课程包**
- **失败原因**: 创建后找不到成功提示10 秒超时)
- **错误位置**: `course-package-comprehensive.spec.ts:268`
- **可能原因**:
- 课程创建 API 返回错误
- 成功提示的 CSS 选择器不匹配
- 页面跳转逻辑有问题
- **修复建议**: 检查后端日志,确认课程创建是否成功
3. **数据验证:创建后查看详情数据完整**
- **失败原因**: 步骤 2 的 textarea 选择器错误180 秒超时)
- **错误位置**: `course-package-comprehensive.spec.ts:393`
- **已修复**: 已更新选择器为 `textarea[placeholder*="课程整体简介"]`
- **待验证**: 需要重新运行测试确认修复效果
## 已修复的问题
1. ✅ 修复了"新建课程包"按钮选择器
-`getByText(/新建 | 创建 | 新增课程/)` 改为 `getByRole('button', { name: '新建课程包' })`
2. ✅ 修复了步骤 2 课程介绍的 textarea 选择器
-`textarea[placeholder*="课程简介"]` 改为 `textarea[placeholder*="课程整体简介"]`
3. ✅ 修复了步骤 3 排课参考的处理
- 由于使用表格形式而非简单输入框,改为跳过此步骤
4. ✅ 修复了步骤 7 的提交按钮选择器
- 从"提交"改为"创建"
5. ✅ 修复了步骤 5 集体课的等待逻辑
- 添加了 `waitFor({ state: 'visible' })` 确保输入框加载完成
## 待解决问题
1. **课程管理页面加载超时**
- 需要检查后端 `/api/v1/admin/courses` 接口性能
- 可能需要增加 `waitForTable` 的超时时间
2. **课程创建成功提示检测**
- 需要验证后端课程创建接口是否正常工作
- 检查前端成功提示的实际 CSS 类名
3. **测试数据清理**
- 多次测试会产生大量测试数据
- 建议添加测试后清理逻辑
## 后续改进建议
1. **增加重试机制**
- 对于网络请求超时类错误,可以添加自动重试
2. **改进等待策略**
- 使用 Playwright 的自动等待功能
- 减少硬编码的 `waitForTimeout`
3. **添加测试数据清理**
```typescript
test.afterEach(async ({ page }) => {
// 清理测试创建的课程包
});
```
4. **添加更详细的日志**
- 记录每个步骤的执行时间
- 记录 API 请求响应
## 下一步行动
1. 检查后端日志,确认课程创建 API 是否正常工作
2. 增加 `waitForTable` 的超时时间至 30 秒
3. 修改成功提示的选择器,尝试多种检测方式
4. 重新运行测试验证修复效果
## 相关文档
- [测试计划](./2026-03-16-course-package-test-plan.md)
- [测试文件](../../../reading-platform-frontend/tests/e2e/admin/course-package-comprehensive.spec.ts)