Files
gym-manage/TEST_REPORT_full_flow.md
T

5.2 KiB
Raw Blame History

全面端到端测试报告

测试概要

项目
测试时间 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:101h后→满足签到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:103分钟前→教练可正常开课) 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:102分钟前→教练可结课) 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 一致。