5.2 KiB
5.2 KiB
全面端到端测试报告
测试概要
| 项目 | 值 |
|---|---|
| 测试时间 | 2026-07-22T10:36:09.900Z ~ 2026-07-22T10:36:11.075Z |
| 总步骤数 | 14 |
| 通过 | 14 |
| 失败 | 0 |
| 课程ID | 33 |
| 课程名称 | 全流程测试-mrvy5z1v |
| 二维码路径 | D:\Work\BIG_project\week2\base14-update-test\gym-manage\QRCODE\全流程测试_mrvy5z1v.png |
| API地址 | http://192.168.110.64:8084 |
测试范围
| 模块 | 项目 | 测试内容 |
|---|---|---|
| 后台管理系统 | gym-manage-web |
管理员登录、创建团课(无封面、张教练)、修改团课时间、保存二维码 |
| 会员端 | gym-manage-uniapp |
会员登录、预约团课、扫码签到 |
| 教练端 | gym-manage-coach-uniapp |
教练登录、手动开课、手动结课 |
| 后端API | gym-manage-api |
所有操作通过REST API完成 |
业务规则验证
| 规则 | 条件 | 测试策略 |
|---|---|---|
| 预约时间限制 | 需在开课前 >= 30分钟 | 创建课程startTime为5小时后,预约成功 |
| 签到时间窗口 | 开课前2小时 ~ 课程结束 | 调整startTime为1小时后,签到成功 |
| 教练开课 | 开课时间后10分钟内正常开课 | 调整startTime为3分钟前,开课成功 |
| 教练结课 | 结束时间后10分钟内结课 | 调整endTime为2分钟前,结课 |
测试流程
1. Admin: Login -> Get coach list -> Create course -> Save QR code
2. Member: Login -> Book course
3. Admin: Adjust startTime (for sign-in window)
4. Member: Sign in (scan QR)
5. Admin: Adjust startTime to past (for coach start)
6. Coach: Login -> Start course
7. Admin: Adjust endTime to past (for coach end)
8. Coach: End course
详细步骤结果
| # | 步骤 | 状态 | 详情 | 时间 |
|---|---|---|---|---|
| 1 | 1a. 管理员登录 | PASS | admin / userId=1 | 2026-07-22T10:36:10.260Z |
| 2 | 1b. 获取教练列表 | PASS | 找到 coach_zhang, id=11, nickname=张教练(瑜伽) | 2026-07-22T10:36:10.291Z |
| 3 | 1c. 创建团课 | PASS | id=33, name="全流程测试-mrvy5z1v", coachId=11, 无封面, startTime=2026-07-22T23:36:10 | 2026-07-22T10:36:10.356Z |
| 4 | 1d. 保存二维码 | PASS | 已保存: D:\Work\BIG_project\week2\base14-update-test\gym-manage\QRCODE\全流程测试_mrvy5z1v.png (2121 bytes) | 2026-07-22T10:36:10.416Z |
| 5 | 2a. 会员登录 | PASS | memberId=16 | 2026-07-22T10:36:10.431Z |
| 6 | 2b. 预约团课 | PASS | courseId=33, bookingId=4, 距开课约5h(>=30min要求) | 2026-07-22T10:36:10.468Z |
| 7 | 2c. 调整课程时间(签到用) | PASS | startTime→2026-07-22T19:36:10(1h后→满足签到2h窗口) | 2026-07-22T10:36:10.502Z |
| 8 | 2d. 扫码签到 | PASS | courseId=33, memberId=16, 签到时间距开课约1h(满足2h窗口) | 2026-07-22T10:36:10.535Z |
| 9 | 3a. 教练登录 | PASS | coach_zhang, userId=11 | 2026-07-22T10:36:10.903Z |
| 10 | 3b. 调整课程时间(开课用) | PASS | startTime→2026-07-22T18:33:10(3分钟前→教练可正常开课) | 2026-07-22T10:36:10.940Z |
| 11 | 3c. 手动开课 | PASS | courseId=33, status=3, msg=开课成功 | 2026-07-22T10:36:10.974Z |
| 12 | 3d. 调整结束时间(结课用) | PASS | endTime→2026-07-22T18:34:10(2分钟前→教练可结课) | 2026-07-22T10:36:11.002Z |
| 13 | 3e. 手动结课 | PASS | courseId=33, status=2, msg=结课成功 | 2026-07-22T10:36:11.032Z |
| 14 | 4. 最终课程状态 | PASS | name="全流程测试-mrvy5z1v", status=2, members=0, startTime=2026-07-22T18:33:10 | 2026-07-22T10:36:11.074Z |
使用的API端点
| 端点 | 方法 | 用途 | 认证 |
|---|---|---|---|
/api/auth/login |
POST | 管理员/教练登录 | HMAC签名 |
/api/coach/list |
GET | 获取教练列表 | JWT (Admin) |
/api/groupCourse |
POST | 创建团课 | JWT (Admin) |
/api/groupCourse/{id} |
PUT | 修改团课时间 | JWT (Admin) |
/api/groupCourse/{id}/detail |
GET | 获取课程详情(含二维码) | JWT (Admin) |
/api/member/auth/miniapp/login |
POST | 会员登录 | HMAC签名 |
/api/groupCourse/book |
POST | 预约团课 | JWT (Member) |
/api/groupCourse/signin/{memberId} |
POST | 扫码签到 | JWT (Member) |
/api/coach/courses/{courseId}/start |
POST | 教练手动开课 | JWT (Coach) |
/api/coach/courses/{courseId}/end |
POST | 教练手动结课 | JWT (Coach) |
认证机制
- JWT Token:
Authorization: Bearer {token} - HMAC-SHA256:
X-Signature,X-Timestamp,X-Nonce - Secret Key:
NovalonManageSystemSecretKey2026
测试账号
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | Test@123 |
| 会员 | (小程序code登录) | dev-test-fullflow-1784716569900 |
| 教练 | coach_zhang | Test@123 |
时间约束处理策略
本测试通过后台API动态调整课程时间,绕过各步骤的时间限制:
| 步骤 | 时间约束 | 处理方式 |
|---|---|---|
| 预约 | 需 >= 30分钟前 | 创建课程startTime=当前+5h |
| 签到 | 开课前2h ~ 课程结束 | PUT修改startTime=当前+1h |
| 开课 | 开课时间后10分钟内 | PUT修改startTime=当前-3min |
| 结课 | 结束时间后10分钟内 | PUT修改endTime=当前-2min |
注意: 使用
formatLocalTime()发送本地时间(无时区),确保与服务器 LocalDateTime 一致。