kindergarten_java/docs/test-logs/admin/2026-03-16-course-package-test-progress.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

3.8 KiB
Raw Blame History

课程包 E2E 测试进展报告

测试执行时间

2026-03-16 03:00

当前状态

总计: 5 个测试用例 通过: 2 个 (40%) 失败: 3 个 (60%)

通过的测试

  1. 必填项验证:未填必填项时无法进入下一步

    • 验证逻辑正常工作
  2. 部分填写验证:只填部分必填项时无法进入下一步

    • 验证逻辑正常工作

失败的测试

1. 完整流程:填写所有 7 个步骤创建课程包

  • 失败原因: 步骤 5 集体课的"课程时长"输入框找不到
  • 错误: locator.fill: Test timeout of 180000ms exceeded
  • 问题: 集体课配置面板可能没有正确显示
  • 分析:
    • 点击"创建集体课"按钮后LessonConfigPanel 应该显示
    • 但输入框可能在一个需要滚动或等待的区域内
    • 可能需要等待组件完全渲染

2. 最小化流程:只填写必填项创建课程包

  • 失败原因: 课程列表表格等待超时
  • 错误: locator.waitFor: Timeout 15000ms exceeded
  • 日志: "未检测到成功提示,检查页面跳转..."
  • 分析:
    • 课程创建可能成功了(页面跳转了)
    • 但表格元素存在但隐藏(ant-table-empty
    • 可能是表格内容为空导致显示问题

3. 数据验证:创建后查看详情数据完整

  • 失败原因: 步骤 7 环创建设的 textarea 不可见
  • 错误: locator.scrollIntoViewIfNeeded: element is not visible
  • 分析:
    • textarea 存在但不可见
    • 可能是在另一个 tab 页或未激活的区域
    • 需要先切换到对应的视图

已尝试的修复

  1. 修复了按钮选择器("新建课程包"、"创建"
  2. 修复了步骤 2 课程介绍的 textarea 选择器
  3. 增加了 waitForTable 的超时时间
  4. 添加了页面加载状态检测
  5. 改进了成功提示检测逻辑
  6. 添加了 scrollIntoViewIfNeeded 用于元素可见性

待解决的问题

问题 1: 集体课配置面板显示

需要确认点击"创建集体课"按钮后LessonConfigPanel 是否正确渲染。

可能原因:

  • 组件内部状态未正确设置
  • 需要等待异步操作完成
  • 可能需要先填写课程包名称才能创建集体课

问题 2: 课程创建后的列表显示

课程创建成功但列表显示为空。

可能原因:

  • 后端 API 返回空列表
  • 前端分页逻辑问题
  • 表格渲染需要额外等待

问题 3: 环创建设 textarea 可见性

步骤 7 的 textarea 不可见。

可能原因:

  • 组件使用了 tabs 或其他隐藏机制
  • 需要滚动或聚焦才能显示
  • 可能是 CSS 样式问题

下一步行动

高优先级

  1. 手动验证课程创建流程

    • 在浏览器中手动完成整个流程
    • 确认每个步骤的 UI 行为
    • 记录实际的元素状态
  2. 简化测试用例

    • 先跳过复杂步骤(集体课、环创建设)
    • 确保基本流程能工作
    • 逐步添加复杂步骤
  3. 改进元素等待策略

    • 使用 Playwright 的自动等待
    • 添加更明确的元素状态检测
    • 考虑使用 waitForLoadState('networkidle')

中优先级

  1. 检查后端 API

    • 确认课程创建接口正常工作
    • 检查返回数据格式
    • 验证数据库是否正确保存
  2. 添加调试日志

    • 记录每个步骤的执行状态
    • 截图保存关键节点
    • 使用 console.log 输出页面状态

测试文件

  • 测试脚本:reading-platform-frontend/tests/e2e/admin/course-package-comprehensive.spec.ts
  • 辅助函数:reading-platform-frontend/tests/e2e/admin/helpers.ts
  • 测试报告:reading-platform-frontend/playwright-report/index.html

相关文档