You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.6 KiB
6.6 KiB
学员信息管理模块 - 测试验收文档
模块名称:学员信息管理模块
开发完成日期:2025-01-30
测试负责人:AI项目经理
API接口数量:5个
📋 模块功能概述
该模块提供学员端访问和管理学员信息的功能,包括:
- 获取学员列表(支持多孩子)
- 获取学员概览信息(用于首页)
- 获取学员详细信息
- 更新学员基本信息
- 上传学员头像
🔌 API接口清单
1. 获取学员列表
- 接口路径:
GET /api/student/list - 功能描述:获取当前用户的所有学员列表,支持多孩子家庭
- 权限要求:需要登录token
- 响应数据:学员基本信息列表
2. 获取学员概览信息
- 接口路径:
GET /api/student/summary/{student_id} - 功能描述:获取指定学员的概览信息,用于首页展示
- 权限要求:需要登录token,只能查看自己的孩子
- 响应数据:学员概览信息,包含年龄、性别、入会时间等
3. 获取学员详细信息
- 接口路径:
GET /api/student/info/{student_id} - 功能描述:获取指定学员的详细信息
- 权限要求:需要登录token,只能查看自己的孩子
- 响应数据:学员完整信息 1
4. 更新学员信息
- 接口路径:
PUT /api/student/update - 功能描述:更新学员的基本信息
- 权限要求:需要登录token,只能修改自己的孩子
- 请求参数:学员ID及要更新的字段
5. 上传学员头像
- 接口路径:
POST /api/student/avatar - 功能描述:上传并更新学员头像
- 权限要求:需要登录token,只能修改自己的孩子
- 文件要求:图片格式,大小不超过2MB
🧪 测试用例
测试用例1:获取学员列表
# 测试命令
curl -X GET "http://localhost:20080/api/student/list" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
# 预期结果
{
"code": 200,
"message": "获取学员列表成功",
"data": {
"list": [
{
"id": 1,
"name": "张小明",
"gender": 1,
"gender_text": "男",
"age": 8,
"headimg": "http://domain/uploads/avatar/xxx.jpg",
"create_time": "2024-01-01 10:00:00"
}
],
"total": 1
}
}
测试用例2:获取学员概览信息
# 测试命令
curl -X GET "http://localhost:20080/api/student/summary/1" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
# 预期结果
{
"code": 200,
"message": "获取学员概览成功",
"data": {
"student_id": 1,
"name": "张小明",
"age": 8,
"gender": 1,
"gender_text": "男",
"headimg": "http://domain/uploads/avatar/xxx.jpg",
"member_name": "张先生",
"create_year_month": "2024年01月",
"week_day": "星期三"
}
}
测试用例3:更新学员信息
# 测试命令
curl -X PUT "http://localhost:20080/api/student/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"student_id": 1,
"name": "张小明",
"emergency_contact": "张妈妈",
"emergency_phone": "13800138000",
"address": "北京市朝阳区xxx小区"
}'
# 预期结果
{
"code": 200,
"message": "更新学员信息成功",
"data": true
}
测试用例4:权限验证测试
# 测试命令:尝试访问其他用户的学员信息
curl -X GET "http://localhost:20080/api/student/info/999" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
# 预期结果:应该返回权限错误
{
"code": 403,
"message": "无权限访问该学员信息",
"data": null
}
✅ 验收标准
功能验收标准
- API接口正常响应:所有5个接口都能正常返回数据
- 数据格式正确:返回的JSON数据结构符合接口文档
- 权限控制严格:只能访问自己的孩子信息,不能越权访问
- 数据验证完整:输入参数验证正确,异常情况处理完善
- 图片上传功能:头像上传功能正常,支持常见图片格式
性能验收标准
- 响应时间:接口响应时间 < 500ms
- 并发处理:支持至少10个并发请求
- 数据准确性:返回的学员信息与数据库数据一致
安全验收标准
- Token验证:未登录用户不能访问接口
- 权限隔离:用户只能操作自己的学员数据
- 输入过滤:防止SQL注入和XSS攻击
- 文件上传安全:头像上传限制文件类型和大小
🚨 已知问题和风险
高优先级问题
- Token获取方式:当前代码中
getUserId()方法需要完善,需要从实际的认证中间件获取用户ID - 图片上传服务:需要确认
UploadService类是否存在并可用 - 数据库连接:需要确保所有相关的Model类路径正确
中优先级问题
- 年龄计算精度:当前按年计算,可能需要更精确的月份计算
- 头像URL处理:
get_image_url()函数需要确认是否存在 - 异常处理统一:需要统一异常返回格式
低优先级问题
- 代码注释:部分复杂逻辑需要添加更详细的注释
- 日志记录:关键操作需要添加日志记录
📝 验收流程
第一步:环境准备
- 确保数据库连接正常
- 确保相关数据表存在且有测试数据
- 获取有效的测试token
第二步:功能测试
- 依次执行所有测试用例
- 验证返回数据的正确性
- 测试异常情况的处理
第三步:性能测试
- 使用压力测试工具测试并发性能
- 监控接口响应时间
- 检查内存和CPU使用情况
第四步:安全测试
- 测试无token访问
- 测试越权访问
- 测试恶意输入
第五步:集成测试
- 与前端页面联调
- 测试完整的用户操作流程
- 验证数据一致性
📊 验收结果
验收状态:待验收
预计验收时间:模块开发完成后1个工作日内
验收负责人:项目负责人
验收结果记录
- 功能验收:通过/不通过
- 性能验收:通过/不通过
- 安全验收:通过/不通过
- 代码质量:通过/不通过
问题记录
(由验收人员填写发现的问题)
备注:
- 本文档作为该模块验收的标准和依据
- 所有问题必须在验收通过前解决
- 验收通过后方可进入下个模块开发
- 如有疑问请及时与项目经理沟通