7.1 KiB
7.1 KiB
🧪 家长端打卡功能 - 测试指南
测试日期: 2026-01-26
功能: 家长端查看陪伴员打卡记录
📋 测试前准备
1. 数据准备
确保数据库中有以下测试数据:
- ✅ 用户账号(家长角色)
- ✅ 订单数据(已完成的订单)
- ✅ 打卡记录数据(check_in_record表)
2. 测试账号
- 家长账号:手机号 + 密码
- 确保该家长有已完成的订单
🎯 测试场景
场景1:订单详情页面查看打卡记录
测试步骤
- 使用家长账号登录
- 进入"我的订单"
- 选择一个已完成的订单
- 点击进入订单详情
- 滚动到"服务记录"部分
预期结果
- ✅ 显示"服务记录"标题
- ✅ 显示签到记录卡片
- 绿色图标 ✓
- 签到时间(格式:2026-01-26 09:00)
- 签到地点(显示地址)
- 签到照片(可点击)
- ✅ 显示签退记录卡片
- 蓝色图标 ✓
- 签退时间
- 签退地点
- 签退照片(可点击)
- ✅ 显示服务时长卡片
- ⏱️ 图标
- 服务时长(如:2小时30分钟)
测试点
- 签到时间显示正确
- 签退时间显示正确
- 地址信息显示正确
- 照片可以点击查看大图
- 服务时长计算正确
- 如果没有签到记录,不显示该部分
场景2:打卡记录列表页面
测试步骤
- 使用家长账号登录
- 在浏览器地址栏输入:
/user-package/pages/checkin/records - 或在个人中心添加入口后点击进入
预期结果
- ✅ 显示顶部统计卡片
- 总服务次数
- 本月服务次数
- 累计时长
- ✅ 显示筛选栏
- 日期选择器
- 清除筛选按钮
- ✅ 显示记录列表
- 每条记录包含:
- 日期徽章(日+月)
- 陪伴员姓名
- 服务名称
- 签到时间
- 签退时间
- 服务时长
- 签到地点
- 签到/签退照片
- 服务状态(服务中/已完成)
- 每条记录包含:
测试点
- 统计数据显示正确
- 记录列表显示正确
- 记录按时间倒序排列
- 照片可以点击查看大图
- 点击记录跳转到订单详情
场景3:日期筛选功能
测试步骤
- 进入打卡记录列表页面
- 点击"选择日期"
- 选择一个日期(如:2026-01-20)
- 查看筛选结果
- 点击"清除筛选"
预期结果
- ✅ 选择日期后,只显示该日期的记录
- ✅ 清除筛选后,显示所有记录
- ✅ 如果该日期没有记录,显示空状态
测试点
- 日期选择器正常工作
- 筛选结果正确
- 清除筛选功能正常
- 空状态显示正确
场景4:分页加载
测试步骤
- 进入打卡记录列表页面
- 滚动到列表底部
- 触发加载更多
- 查看新加载的记录
预期结果
- ✅ 滚动到底部时自动加载更多
- ✅ 显示"加载中..."提示
- ✅ 新记录追加到列表末尾
- ✅ 没有更多数据时显示"没有更多了"
测试点
- 自动加载功能正常
- 加载提示显示正确
- 数据不重复
- 到达最后一页时停止加载
场景5:照片查看功能
测试步骤
- 在订单详情或记录列表中
- 点击签到照片
- 查看大图
- 点击签退照片
- 查看大图
预期结果
- ✅ 点击照片后全屏显示
- ✅ 可以缩放查看
- ✅ 可以关闭大图
- ✅ 照片清晰可见
测试点
- 照片可以点击
- 大图显示正常
- 可以缩放
- 可以关闭
场景6:空状态显示
测试步骤
- 使用没有订单的家长账号登录
- 进入打卡记录列表页面
预期结果
- ✅ 显示空状态图标 📋
- ✅ 显示提示文字"暂无服务记录"
- ✅ 统计数据显示为0
测试点
- 空状态显示正确
- 提示文字清晰
- 统计数据为0
🔍 API测试
测试1:获取用户打卡记录列表
请求:
GET /api/checkin/user/records?userId=1&page=1&size=10
预期响应:
{
"code": 200,
"message": "success",
"data": {
"records": [
{
"id": 1,
"orderId": 123,
"userId": 1,
"teacherId": 10,
"checkType": "in",
"checkTime": "2026-01-26T09:00:00",
"address": "北京市朝阳区xxx",
"photoUrl": "https://xxx.jpg",
"latitude": 39.9,
"longitude": 116.4
}
],
"total": 50,
"page": 1,
"size": 10
}
}
测试点:
- 返回状态码200
- 数据结构正确
- 记录数量正确
- 分页参数正确
测试2:获取打卡统计数据
请求:
GET /api/checkin/user/statistics?userId=1
预期响应:
{
"code": 200,
"message": "success",
"data": {
"totalRecords": 50,
"thisMonth": 8,
"totalHours": 0
}
}
测试点:
- 返回状态码200
- 统计数据正确
- 总次数准确
- 本月次数准确
测试3:日期筛选
请求:
GET /api/checkin/user/records?userId=1&page=1&size=10&date=2026-01-26
预期响应:
- 只返回2026-01-26的记录
测试点:
- 筛选结果正确
- 日期格式正确
- 没有其他日期的记录
🐛 异常测试
异常1:用户未登录
- 访问打卡记录列表
- 预期:跳转到登录页面或首页
异常2:网络错误
- 断开网络
- 访问打卡记录列表
- 预期:显示"加载失败"提示
异常3:照片加载失败
- 照片URL无效
- 预期:显示默认占位图
异常4:数据为空
- 用户没有任何打卡记录
- 预期:显示空状态
✅ 测试检查清单
功能测试
- 订单详情显示打卡记录
- 打卡记录列表显示
- 统计数据显示
- 日期筛选功能
- 分页加载功能
- 照片查看功能
- 跳转订单详情
- 空状态显示
UI测试
- 页面布局正确
- 颜色搭配合理
- 字体大小适中
- 图标显示正确
- 照片显示清晰
- 响应式布局
性能测试
- 列表加载速度
- 照片加载速度
- 滚动流畅度
- 内存占用合理
兼容性测试
- iOS系统
- Android系统
- 微信小程序
- 不同屏幕尺寸
📝 测试记录
测试环境
- 测试时间:____年__月__日
- 测试人员:________
- 测试设备:________
- 系统版本:________
测试结果
| 测试项 | 结果 | 备注 |
|---|---|---|
| 订单详情显示 | ☐ 通过 ☐ 失败 | |
| 记录列表显示 | ☐ 通过 ☐ 失败 | |
| 日期筛选 | ☐ 通过 ☐ 失败 | |
| 分页加载 | ☐ 通过 ☐ 失败 | |
| 照片查看 | ☐ 通过 ☐ 失败 | |
| API接口 | ☐ 通过 ☐ 失败 |
发现的问题
🚀 测试通过后
- ✅ 标记所有测试项为通过
- ✅ 记录测试结果
- ✅ 提交测试报告
- ✅ 通知开发团队
- ✅ 准备上线部署
📞 问题反馈
如果测试中发现问题,请记录:
- 问题描述
- 复现步骤
- 预期结果
- 实际结果
- 截图或录屏
联系开发人员进行修复。