372 lines
7.1 KiB
Markdown
372 lines
7.1 KiB
Markdown
# 🧪 家长端打卡功能 - 测试指南
|
||
|
||
**测试日期**: 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. ✅ 准备上线部署
|
||
|
||
---
|
||
|
||
## 📞 问题反馈
|
||
|
||
如果测试中发现问题,请记录:
|
||
- 问题描述
|
||
- 复现步骤
|
||
- 预期结果
|
||
- 实际结果
|
||
- 截图或录屏
|
||
|
||
联系开发人员进行修复。
|