peixue-dev/peidu/docs/fixes/2026-01-23-学习记录功能完善/🧪测试指南.md

11 KiB
Raw Blame History

🧪 学习记录功能完善 - 测试指南

📋 测试准备

1. 确认修改已完成

  • 前端代码已修改
  • 后端代码已修改
  • 前端已重新编译
  • 后端已重新编译
  • 服务已重启

2. 准备测试数据

确保数据库中有以下测试数据:

-- 检查是否有成长记录
SELECT * FROM growth_record WHERE student_id = 1 LIMIT 5;

-- 检查是否有签到记录
SELECT * FROM check_in_record WHERE order_id IN (
  SELECT order_id FROM growth_record WHERE student_id = 1
) LIMIT 5;

-- 检查是否有评价记录
SELECT * FROM review WHERE order_id IN (
  SELECT order_id FROM growth_record WHERE student_id = 1
) LIMIT 5;

如果没有数据,执行:

-- 使用之前创建的测试数据脚本
-- peidu/sql/🚀插入成长记录测试数据-2026-01-23.sql

🧪 测试用例

测试1用户中心入口

目的:验证入口跳转是否正确

步骤

  1. 打开微信开发者工具
  2. 登录家长端账号
  3. 进入"我的"页面
  4. 找到"成长记录"菜单项
  5. 点击"成长记录"

预期结果

  • 菜单项显示为"成长记录"(不是"学习记录"
  • 点击后跳转到成长记录列表页
  • 页面路径为 /user-package/pages/growth/list

实际结果

□ 通过
□ 失败原因_______________

测试2统计数据显示

目的:验证统计卡片是否正确显示

步骤

  1. 在成长记录列表页
  2. 查看顶部统计卡片

预期结果

  • 显示三个统计项:
    • 累计学习(小时)
    • 服务次数
    • 平均评分
  • 数据为数字格式
  • 样式美观(绿色渐变背景)

验证数据准确性

打开浏览器控制台,执行:

// 查看API返回的统计数据
// 应该在Network标签中看到
// GET /api/growth-record/parent/stats?studentId=1
// 返回:
{
  "code": 200,
  "data": {
    "totalHours": "12.5",
    "totalSessions": 8,
    "avgScore": "4.8"
  }
}

实际结果

累计学习_____ 小时
服务次数_____ 次
平均评分_____

□ 通过
□ 失败原因_______________

测试3记录列表显示

目的:验证记录列表是否正确显示

步骤

  1. 在成长记录列表页
  2. 查看记录列表

预期结果

  • 显示成长记录列表
  • 每条记录包含:
    • 日期图标和日期
    • 记录类型标签(每日反馈/周反馈/月反馈)
    • 学生姓名
    • 陪伴员姓名
    • 服务时长1小时30分钟
    • 内容预览
    • 照片预览(如果有)
    • "查看详情"按钮

验证数据准确性

打开浏览器控制台,执行:

// 查看API返回的列表数据
// 应该在Network标签中看到
// GET /api/growth-record/parent/list?studentId=1&page=1&size=10
// 返回:
{
  "code": 200,
  "data": {
    "records": [
      {
        "id": 1,
        "recordDate": "2026-01-23",
        "recordType": "daily",
        "recordTypeName": "每日反馈",
        "studentName": "小明",
        "teacherName": "张老师",
        "durationText": "1小时30分钟",
        "content": "今天学习了...",
        "imageList": "url1,url2,url3"
      }
    ],
    "total": 8
  }
}

实际结果

记录数量_____ 条

第一条记录:
- 日期_____
- 类型_____
- 学生_____
- 陪伴员_____
- 时长_____

□ 通过
□ 失败原因_______________

测试4筛选功能

目的:验证筛选标签是否正常工作

步骤

  1. 在成长记录列表页
  2. 点击"全部"标签
  3. 点击"每日反馈"标签
  4. 点击"周反馈"标签
  5. 点击"月反馈"标签

预期结果

  • 点击不同标签,列表数据会相应变化
  • 当前选中的标签有高亮样式
  • 数据加载正常

实际结果

全部_____ 条
每日反馈_____ 条
周反馈_____ 条
月反馈_____ 条

□ 通过
□ 失败原因_______________

测试5详情页显示

目的:验证详情页是否正确显示

步骤

  1. 在成长记录列表页
  2. 点击任意一条记录
  3. 查看详情页内容

预期结果

  • 页面正常打开
  • 显示完整信息:
    • 服务日期
    • 学生姓名
    • 陪伴员姓名
    • 服务时长
    • 学习内容
    • 照片记录(可点击预览)
    • 视频记录(可播放)
    • 学生表现
    • 陪伴员建议

实际结果

□ 页面正常打开
□ 信息显示完整
□ 照片可预览
□ 视频可播放

□ 通过
□ 失败原因_______________

测试6服务时长计算

目的:验证服务时长是否计算准确

步骤

  1. 在数据库中查询签到记录
  2. 手动计算服务时长
  3. 对比页面显示的时长

SQL查询

-- 查询某个订单的签到记录
SELECT 
  order_id,
  check_type,
  check_time
FROM check_in_record
WHERE order_id = 267  -- 替换为实际的order_id
ORDER BY check_time;

-- 应该看到:
-- order_id | check_type | check_time
-- 267      | checkin    | 2026-01-23 14:00:00
-- 267      | checkout   | 2026-01-23 15:30:00
-- 
-- 计算15:30 - 14:00 = 1小时30分钟

预期结果

  • 页面显示的时长与手动计算一致
  • 格式正确1小时30分钟 或 90分钟

实际结果

数据库时长_____
页面显示_____

□ 通过
□ 失败原因_______________

测试7评分显示

目的:验证评分是否正确显示

步骤

  1. 在数据库中查询评价记录
  2. 对比统计卡片中的平均评分

SQL查询

-- 查询学生的所有评价
SELECT 
  r.order_id,
  r.rating,
  gr.student_id
FROM review r
JOIN growth_record gr ON r.order_id = gr.order_id
WHERE gr.student_id = 1;

-- 手动计算平均分
-- 例如:(5 + 4 + 5 + 5 + 4 + 5 + 5 + 4) / 8 = 4.625 ≈ 4.6

预期结果

  • 平均评分计算正确
  • 保留一位小数

实际结果

数据库评分_____
计算平均分_____
页面显示_____

□ 通过
□ 失败原因_______________

测试8空状态显示

目的:验证没有数据时的显示

步骤

  1. 使用一个没有成长记录的学生账号登录
  2. 进入成长记录页面

预期结果

  • 显示空状态提示
  • 提示文字:
    • "暂无成长记录"
    • "陪伴员服务后会提交成长记录"
  • 有空状态图标(📚

实际结果

□ 显示空状态
□ 提示文字正确
□ 图标显示正常

□ 通过
□ 失败原因_______________

测试9下拉刷新

目的:验证下拉刷新功能

步骤

  1. 在成长记录列表页
  2. 下拉页面
  3. 释放触发刷新

预期结果

  • 显示刷新动画
  • 数据重新加载
  • 刷新完成后动画消失

实际结果

□ 通过
□ 失败原因_______________

测试10上拉加载更多

目的:验证分页加载功能

步骤

  1. 在成长记录列表页
  2. 滚动到底部
  3. 触发加载更多

预期结果

  • 显示"加载中..."提示
  • 加载下一页数据
  • 新数据追加到列表末尾
  • 没有更多数据时不再加载

实际结果

□ 通过
□ 失败原因_______________

测试11照片预览

目的:验证照片预览功能

步骤

  1. 进入有照片的成长记录详情页
  2. 点击任意照片

预期结果

  • 打开照片预览
  • 可以左右滑动查看其他照片
  • 可以缩放照片
  • 可以关闭预览

实际结果

□ 通过
□ 失败原因_______________

测试12视频播放

目的:验证视频播放功能

步骤

  1. 进入有视频的成长记录详情页
  2. 点击播放按钮

预期结果

  • 视频正常播放
  • 可以暂停/继续
  • 可以调整进度
  • 可以全屏播放

实际结果

□ 通过
□ 失败原因_______________

🔍 后端接口测试

接口1获取统计数据

接口GET /api/growth-record/parent/stats

参数

studentId: 1

预期响应

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "totalHours": "12.5",
    "totalSessions": 8,
    "avgScore": "4.8"
  }
}

测试命令

curl -X GET "http://localhost:8080/api/growth-record/parent/stats?studentId=1" \
  -H "Authorization: Bearer YOUR_TOKEN"

实际响应

// 粘贴实际响应

结果

□ 通过
□ 失败原因_______________

接口2获取记录列表

接口GET /api/growth-record/parent/list

参数

studentId: 1
page: 1
size: 10
recordType: all (可选)

预期响应

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "records": [
      {
        "id": 1,
        "recordDate": "2026-01-23",
        "recordType": "daily",
        "recordTypeName": "每日反馈",
        "studentName": "小明",
        "teacherName": "张老师",
        "durationText": "1小时30分钟",
        "content": "今天学习了数学和英语...",
        "imageList": "url1,url2,url3",
        "videoList": null
      }
    ],
    "total": 8,
    "current": 1,
    "size": 10
  }
}

测试命令

curl -X GET "http://localhost:8080/api/growth-record/parent/list?studentId=1&page=1&size=10" \
  -H "Authorization: Bearer YOUR_TOKEN"

实际响应

// 粘贴实际响应

结果

□ 通过
□ 失败原因_______________

📊 测试结果汇总

前端测试

  • 测试1用户中心入口
  • 测试2统计数据显示
  • 测试3记录列表显示
  • 测试4筛选功能
  • 测试5详情页显示
  • 测试6服务时长计算
  • 测试7评分显示
  • 测试8空状态显示
  • 测试9下拉刷新
  • 测试10上拉加载更多
  • 测试11照片预览
  • 测试12视频播放

后端测试

  • 接口1获取统计数据
  • 接口2获取记录列表

总体评估

通过_____ / 14
失败_____ / 14
通过率_____ %

□ 所有测试通过,可以上线
□ 部分测试失败,需要修复

🐛 问题记录

如果测试失败,请记录问题:

问题1

测试用例_____
问题描述_____
错误信息_____
重现步骤_____

问题2

测试用例_____
问题描述_____
错误信息_____
重现步骤_____

测试完成确认

  • 所有测试用例已执行
  • 测试结果已记录
  • 问题已记录(如有)
  • 测试报告已提交

测试人员_______________ 测试日期_______________ 测试环境_______________