435 lines
8.4 KiB
Markdown
435 lines
8.4 KiB
Markdown
|
|
# 家长端成长记录功能测试指南
|
|||
|
|
|
|||
|
|
**更新时间**: 2026-01-23 12:16
|
|||
|
|
**状态**: ✅ 代码已完成,数据库已修复,后端已编译,等待重启服务测试
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚡ 最新进展
|
|||
|
|
|
|||
|
|
### ✅ 已完成
|
|||
|
|
- ✅ 后端接口开发完成
|
|||
|
|
- ✅ 前端页面开发完成
|
|||
|
|
- ✅ SQL字段名修复完成 (`student_name`, `user_id`)
|
|||
|
|
- ✅ 前端参数传递修复完成
|
|||
|
|
- ✅ Service层异常处理修复完成 (学生不存在返回空列表)
|
|||
|
|
- ✅ 数据库deleted字段修复完成 (已执行SQL)
|
|||
|
|
- ✅ 后端重新编译完成
|
|||
|
|
|
|||
|
|
### ⚠️ 待执行
|
|||
|
|
- ⚠️ 重启后端服务
|
|||
|
|
- ⚠️ 刷新小程序
|
|||
|
|
- ⚠️ 执行测试验证
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 测试前准备
|
|||
|
|
|
|||
|
|
### 1. 确保数据库有测试数据
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 检查成长记录数据
|
|||
|
|
SELECT
|
|||
|
|
id,
|
|||
|
|
student_id,
|
|||
|
|
student_name,
|
|||
|
|
teacher_id,
|
|||
|
|
record_type,
|
|||
|
|
record_date,
|
|||
|
|
content,
|
|||
|
|
images,
|
|||
|
|
videos,
|
|||
|
|
status
|
|||
|
|
FROM growth_record
|
|||
|
|
WHERE student_id = 1
|
|||
|
|
ORDER BY record_date DESC
|
|||
|
|
LIMIT 10;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 确保后端服务运行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查后端服务状态
|
|||
|
|
curl http://localhost:8080/api/health
|
|||
|
|
|
|||
|
|
# 或访问
|
|||
|
|
http://localhost:8080/swagger-ui.html
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 确保前端已编译
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd peidu/uniapp
|
|||
|
|
npm run build:mp-weixin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🧪 测试用例
|
|||
|
|
|
|||
|
|
### 测试用例 1:成长记录列表 - 全部记录
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 打开小程序
|
|||
|
|
2. 进入家长端
|
|||
|
|
3. 点击"成长记录"菜单
|
|||
|
|
4. 默认显示"全部"标签
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 显示所有类型的成长记录(每日/周/月)
|
|||
|
|
- ✅ 每条记录显示:日期、类型标识、学生姓名、陪伴员姓名
|
|||
|
|
- ✅ 显示内容预览(最多80字)
|
|||
|
|
- ✅ 显示照片预览(最多3张)
|
|||
|
|
- ✅ 显示服务时长
|
|||
|
|
|
|||
|
|
**测试数据:**
|
|||
|
|
```
|
|||
|
|
studentId: 1
|
|||
|
|
recordType: all
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 2:成长记录列表 - 每日反馈
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 点击"每日反馈"标签
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 只显示每日反馈记录
|
|||
|
|
- ✅ 类型标识显示蓝色"每日反馈"
|
|||
|
|
- ✅ 记录按日期倒序排列
|
|||
|
|
|
|||
|
|
**测试数据:**
|
|||
|
|
```
|
|||
|
|
studentId: 1
|
|||
|
|
recordType: daily
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 3:成长记录列表 - 周反馈
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 点击"周反馈"标签
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 只显示周反馈记录
|
|||
|
|
- ✅ 类型标识显示紫色"周反馈"
|
|||
|
|
- ✅ 记录按日期倒序排列
|
|||
|
|
|
|||
|
|
**测试数据:**
|
|||
|
|
```
|
|||
|
|
studentId: 1
|
|||
|
|
recordType: weekly
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 4:成长记录列表 - 月反馈
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 点击"月反馈"标签
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 只显示月反馈记录
|
|||
|
|
- ✅ 类型标识显示橙色"月反馈"
|
|||
|
|
- ✅ 记录按日期倒序排列
|
|||
|
|
|
|||
|
|
**测试数据:**
|
|||
|
|
```
|
|||
|
|
studentId: 1
|
|||
|
|
recordType: monthly
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 5:成长记录详情
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 点击任意一条记录
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 跳转到详情页面
|
|||
|
|
- ✅ 显示完整的反馈内容
|
|||
|
|
- ✅ 显示所有照片(可点击预览)
|
|||
|
|
- ✅ 显示所有视频(可播放)
|
|||
|
|
- ✅ 显示陪伴员信息
|
|||
|
|
- ✅ 自动标记为已读
|
|||
|
|
|
|||
|
|
**测试数据:**
|
|||
|
|
```
|
|||
|
|
recordId: 从列表中选择
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 6:照片预览
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录详情页面
|
|||
|
|
2. 点击任意照片
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 打开照片预览
|
|||
|
|
- ✅ 可以左右滑动查看所有照片
|
|||
|
|
- ✅ 可以缩放照片
|
|||
|
|
- ✅ 可以保存照片
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 7:视频播放
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录详情页面
|
|||
|
|
2. 点击视频播放按钮
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 视频开始播放
|
|||
|
|
- ✅ 可以暂停/继续
|
|||
|
|
- ✅ 可以调整进度
|
|||
|
|
- ✅ 可以全屏播放
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 8:下拉刷新
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 下拉页面
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 显示刷新动画
|
|||
|
|
- ✅ 重新加载第一页数据
|
|||
|
|
- ✅ 刷新完成后隐藏动画
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 9:上拉加载更多
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 在成长记录列表页面
|
|||
|
|
2. 滚动到底部
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 显示"加载中..."提示
|
|||
|
|
- ✅ 加载下一页数据
|
|||
|
|
- ✅ 新数据追加到列表末尾
|
|||
|
|
- ✅ 如果没有更多数据,不再触发加载
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 10:空状态
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 使用没有成长记录的学生ID
|
|||
|
|
2. 打开成长记录列表
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 显示空状态图标 📚
|
|||
|
|
- ✅ 显示"暂无成长记录"文字
|
|||
|
|
- ✅ 显示"陪伴员服务后会提交成长记录"提示
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 测试用例 11:服务反馈列表(已更新)
|
|||
|
|
|
|||
|
|
**测试步骤:**
|
|||
|
|
1. 打开小程序
|
|||
|
|
2. 进入家长端
|
|||
|
|
3. 点击"服务反馈"菜单
|
|||
|
|
|
|||
|
|
**预期结果:**
|
|||
|
|
- ✅ 显示每日反馈列表
|
|||
|
|
- ✅ 数据来自成长记录接口
|
|||
|
|
- ✅ 显示学生姓名、陪伴员姓名
|
|||
|
|
- ✅ 显示反馈内容预览
|
|||
|
|
- ✅ 显示照片预览
|
|||
|
|
- ✅ 点击查看详情正常跳转
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔍 接口测试
|
|||
|
|
|
|||
|
|
### 1. 测试获取成长记录列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 使用curl测试
|
|||
|
|
curl -X GET "http://localhost:8080/api/growth-record/parent/list?studentId=1&recordType=daily&page=1&size=10" \
|
|||
|
|
-H "Authorization: Bearer YOUR_TOKEN"
|
|||
|
|
|
|||
|
|
# 预期返回
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"records": [
|
|||
|
|
{
|
|||
|
|
"id": 1,
|
|||
|
|
"studentId": 1,
|
|||
|
|
"studentName": "小明",
|
|||
|
|
"teacherId": 1,
|
|||
|
|
"teacherName": "张老师",
|
|||
|
|
"recordDate": "2026-01-23",
|
|||
|
|
"recordType": "daily",
|
|||
|
|
"recordTypeName": "每日反馈",
|
|||
|
|
"content": "今天学习状态很好...",
|
|||
|
|
"imageList": ["url1", "url2"],
|
|||
|
|
"videoList": ["url1"],
|
|||
|
|
"durationText": "120分钟"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"total": 10,
|
|||
|
|
"size": 10,
|
|||
|
|
"current": 1,
|
|||
|
|
"pages": 1
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 测试获取成长记录详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 使用curl测试
|
|||
|
|
curl -X GET "http://localhost:8080/api/growth-record/parent/1" \
|
|||
|
|
-H "Authorization: Bearer YOUR_TOKEN"
|
|||
|
|
|
|||
|
|
# 预期返回
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"id": 1,
|
|||
|
|
"studentId": 1,
|
|||
|
|
"studentName": "小明",
|
|||
|
|
"teacherId": 1,
|
|||
|
|
"teacherName": "张老师",
|
|||
|
|
"recordDate": "2026-01-23",
|
|||
|
|
"recordType": "daily",
|
|||
|
|
"recordTypeName": "每日反馈",
|
|||
|
|
"content": "今天学习状态很好,完成了所有作业...",
|
|||
|
|
"imageList": ["url1", "url2", "url3"],
|
|||
|
|
"videoList": ["url1"],
|
|||
|
|
"durationText": "120分钟"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 测试标记为已读
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 使用curl测试
|
|||
|
|
curl -X POST "http://localhost:8080/api/growth-record/parent/1/read" \
|
|||
|
|
-H "Authorization: Bearer YOUR_TOKEN"
|
|||
|
|
|
|||
|
|
# 预期返回
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "标记成功",
|
|||
|
|
"data": true
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📊 性能测试
|
|||
|
|
|
|||
|
|
### 1. 列表加载性能
|
|||
|
|
|
|||
|
|
**测试指标:**
|
|||
|
|
- 首次加载时间 < 2秒
|
|||
|
|
- 翻页加载时间 < 1秒
|
|||
|
|
- 下拉刷新时间 < 1.5秒
|
|||
|
|
|
|||
|
|
### 2. 详情加载性能
|
|||
|
|
|
|||
|
|
**测试指标:**
|
|||
|
|
- 详情页加载时间 < 1.5秒
|
|||
|
|
- 照片加载时间 < 1秒/张
|
|||
|
|
- 视频加载时间 < 3秒
|
|||
|
|
|
|||
|
|
### 3. 照片预览性能
|
|||
|
|
|
|||
|
|
**测试指标:**
|
|||
|
|
- 预览打开时间 < 0.5秒
|
|||
|
|
- 切换照片时间 < 0.3秒
|
|||
|
|
|
|||
|
|
## 🐛 常见问题排查
|
|||
|
|
|
|||
|
|
### 问题 1:列表显示为空
|
|||
|
|
|
|||
|
|
**排查步骤:**
|
|||
|
|
1. 检查数据库是否有数据
|
|||
|
|
2. 检查studentId是否正确
|
|||
|
|
3. 检查后端日志是否有错误
|
|||
|
|
4. 检查前端控制台是否有错误
|
|||
|
|
|
|||
|
|
### 问题 2:照片无法显示
|
|||
|
|
|
|||
|
|
**排查步骤:**
|
|||
|
|
1. 检查图片URL是否正确
|
|||
|
|
2. 检查图片服务器是否可访问
|
|||
|
|
3. 检查小程序域名白名单配置
|
|||
|
|
|
|||
|
|
### 问题 3:视频无法播放
|
|||
|
|
|
|||
|
|
**排查步骤:**
|
|||
|
|
1. 检查视频URL是否正确
|
|||
|
|
2. 检查视频格式是否支持
|
|||
|
|
3. 检查小程序域名白名单配置
|
|||
|
|
|
|||
|
|
### 问题 4:接口返回401
|
|||
|
|
|
|||
|
|
**排查步骤:**
|
|||
|
|
1. 检查token是否过期
|
|||
|
|
2. 检查用户是否已登录
|
|||
|
|
3. 重新登录获取新token
|
|||
|
|
|
|||
|
|
## ✅ 测试检查清单
|
|||
|
|
|
|||
|
|
- [ ] 成长记录列表 - 全部记录
|
|||
|
|
- [ ] 成长记录列表 - 每日反馈
|
|||
|
|
- [ ] 成长记录列表 - 周反馈
|
|||
|
|
- [ ] 成长记录列表 - 月反馈
|
|||
|
|
- [ ] 成长记录详情
|
|||
|
|
- [ ] 照片预览
|
|||
|
|
- [ ] 视频播放
|
|||
|
|
- [ ] 下拉刷新
|
|||
|
|
- [ ] 上拉加载更多
|
|||
|
|
- [ ] 空状态显示
|
|||
|
|
- [ ] 服务反馈列表
|
|||
|
|
- [ ] 接口测试 - 列表
|
|||
|
|
- [ ] 接口测试 - 详情
|
|||
|
|
- [ ] 接口测试 - 标记已读
|
|||
|
|
- [ ] 性能测试
|
|||
|
|
- [ ] 常见问题排查
|
|||
|
|
|
|||
|
|
## 📝 测试报告模板
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
测试日期:2026-01-23
|
|||
|
|
测试人员:[姓名]
|
|||
|
|
测试环境:[开发/测试/生产]
|
|||
|
|
|
|||
|
|
测试结果:
|
|||
|
|
✅ 通过:[数量]
|
|||
|
|
❌ 失败:[数量]
|
|||
|
|
⚠️ 警告:[数量]
|
|||
|
|
|
|||
|
|
详细说明:
|
|||
|
|
1. [测试用例名称] - [通过/失败] - [备注]
|
|||
|
|
2. ...
|
|||
|
|
|
|||
|
|
问题列表:
|
|||
|
|
1. [问题描述] - [严重程度] - [解决方案]
|
|||
|
|
2. ...
|
|||
|
|
|
|||
|
|
总结:
|
|||
|
|
[测试总结]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**编写日期:** 2026-01-23
|
|||
|
|
**编写人员:** Kiro AI Assistant
|