# 🧪 家长端打卡功能 - 测试指南 **测试日期**: 2026-01-26 **功能**: 家长端查看陪伴员打卡记录 --- ## 📋 测试前准备 ### 1. 数据准备 确保数据库中有以下测试数据: - ✅ 用户账号(家长角色) - ✅ 订单数据(已完成的订单) - ✅ 打卡记录数据(check_in_record表) ### 2. 测试账号 - 家长账号:手机号 + 密码 - 确保该家长有已完成的订单 --- ## 🎯 测试场景 ### 场景1:订单详情页面查看打卡记录 #### 测试步骤 1. 使用家长账号登录 2. 进入"我的订单" 3. 选择一个已完成的订单 4. 点击进入订单详情 5. 滚动到"服务记录"部分 #### 预期结果 - ✅ 显示"服务记录"标题 - ✅ 显示签到记录卡片 - 绿色图标 ✓ - 签到时间(格式:2026-01-26 09:00) - 签到地点(显示地址) - 签到照片(可点击) - ✅ 显示签退记录卡片 - 蓝色图标 ✓ - 签退时间 - 签退地点 - 签退照片(可点击) - ✅ 显示服务时长卡片 - ⏱️ 图标 - 服务时长(如:2小时30分钟) #### 测试点 - [ ] 签到时间显示正确 - [ ] 签退时间显示正确 - [ ] 地址信息显示正确 - [ ] 照片可以点击查看大图 - [ ] 服务时长计算正确 - [ ] 如果没有签到记录,不显示该部分 --- ### 场景2:打卡记录列表页面 #### 测试步骤 1. 使用家长账号登录 2. 在浏览器地址栏输入: ``` /user-package/pages/checkin/records ``` 3. 或在个人中心添加入口后点击进入 #### 预期结果 - ✅ 显示顶部统计卡片 - 总服务次数 - 本月服务次数 - 累计时长 - ✅ 显示筛选栏 - 日期选择器 - 清除筛选按钮 - ✅ 显示记录列表 - 每条记录包含: - 日期徽章(日+月) - 陪伴员姓名 - 服务名称 - 签到时间 - 签退时间 - 服务时长 - 签到地点 - 签到/签退照片 - 服务状态(服务中/已完成) #### 测试点 - [ ] 统计数据显示正确 - [ ] 记录列表显示正确 - [ ] 记录按时间倒序排列 - [ ] 照片可以点击查看大图 - [ ] 点击记录跳转到订单详情 --- ### 场景3:日期筛选功能 #### 测试步骤 1. 进入打卡记录列表页面 2. 点击"选择日期" 3. 选择一个日期(如:2026-01-20) 4. 查看筛选结果 5. 点击"清除筛选" #### 预期结果 - ✅ 选择日期后,只显示该日期的记录 - ✅ 清除筛选后,显示所有记录 - ✅ 如果该日期没有记录,显示空状态 #### 测试点 - [ ] 日期选择器正常工作 - [ ] 筛选结果正确 - [ ] 清除筛选功能正常 - [ ] 空状态显示正确 --- ### 场景4:分页加载 #### 测试步骤 1. 进入打卡记录列表页面 2. 滚动到列表底部 3. 触发加载更多 4. 查看新加载的记录 #### 预期结果 - ✅ 滚动到底部时自动加载更多 - ✅ 显示"加载中..."提示 - ✅ 新记录追加到列表末尾 - ✅ 没有更多数据时显示"没有更多了" #### 测试点 - [ ] 自动加载功能正常 - [ ] 加载提示显示正确 - [ ] 数据不重复 - [ ] 到达最后一页时停止加载 --- ### 场景5:照片查看功能 #### 测试步骤 1. 在订单详情或记录列表中 2. 点击签到照片 3. 查看大图 4. 点击签退照片 5. 查看大图 #### 预期结果 - ✅ 点击照片后全屏显示 - ✅ 可以缩放查看 - ✅ 可以关闭大图 - ✅ 照片清晰可见 #### 测试点 - [ ] 照片可以点击 - [ ] 大图显示正常 - [ ] 可以缩放 - [ ] 可以关闭 --- ### 场景6:空状态显示 #### 测试步骤 1. 使用没有订单的家长账号登录 2. 进入打卡记录列表页面 #### 预期结果 - ✅ 显示空状态图标 📋 - ✅ 显示提示文字"暂无服务记录" - ✅ 统计数据显示为0 #### 测试点 - [ ] 空状态显示正确 - [ ] 提示文字清晰 - [ ] 统计数据为0 --- ## 🔍 API测试 ### 测试1:获取用户打卡记录列表 **请求**: ``` GET /api/checkin/user/records?userId=1&page=1&size=10 ``` **预期响应**: ```json { "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 ``` **预期响应**: ```json { "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接口 | ☐ 通过 ☐ 失败 | | ### 发现的问题 1. 2. 3. --- ## 🚀 测试通过后 1. ✅ 标记所有测试项为通过 2. ✅ 记录测试结果 3. ✅ 提交测试报告 4. ✅ 通知开发团队 5. ✅ 准备上线部署 --- ## 📞 问题反馈 如果测试中发现问题,请记录: - 问题描述 - 复现步骤 - 预期结果 - 实际结果 - 截图或录屏 联系开发人员进行修复。