智慧教务系统
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

学员信息管理模块 - 测试验收文档

模块名称:学员信息管理模块
开发完成日期:2025-01-30
测试负责人:AI项目经理
API接口数量:5个


📋 模块功能概述

该模块提供学员端访问和管理学员信息的功能,包括:

  1. 获取学员列表(支持多孩子)
  2. 获取学员概览信息(用于首页)
  3. 获取学员详细信息
  4. 更新学员基本信息
  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攻击
  • 文件上传安全:头像上传限制文件类型和大小

🚨 已知问题和风险

高优先级问题

  1. Token获取方式:当前代码中getUserId()方法需要完善,需要从实际的认证中间件获取用户ID
  2. 图片上传服务:需要确认UploadService类是否存在并可用
  3. 数据库连接:需要确保所有相关的Model类路径正确

中优先级问题

  1. 年龄计算精度:当前按年计算,可能需要更精确的月份计算
  2. 头像URL处理get_image_url()函数需要确认是否存在
  3. 异常处理统一:需要统一异常返回格式

低优先级问题

  1. 代码注释:部分复杂逻辑需要添加更详细的注释
  2. 日志记录:关键操作需要添加日志记录

📝 验收流程

第一步:环境准备

  1. 确保数据库连接正常
  2. 确保相关数据表存在且有测试数据
  3. 获取有效的测试token

第二步:功能测试

  1. 依次执行所有测试用例
  2. 验证返回数据的正确性
  3. 测试异常情况的处理

第三步:性能测试

  1. 使用压力测试工具测试并发性能
  2. 监控接口响应时间
  3. 检查内存和CPU使用情况

第四步:安全测试

  1. 测试无token访问
  2. 测试越权访问
  3. 测试恶意输入

第五步:集成测试

  1. 与前端页面联调
  2. 测试完整的用户操作流程
  3. 验证数据一致性

📊 验收结果

验收状态:待验收
预计验收时间:模块开发完成后1个工作日内
验收负责人:项目负责人

验收结果记录

  • 功能验收:通过/不通过
  • 性能验收:通过/不通过
  • 安全验收:通过/不通过
  • 代码质量:通过/不通过

问题记录

(由验收人员填写发现的问题)


备注

  1. 本文档作为该模块验收的标准和依据
  2. 所有问题必须在验收通过前解决
  3. 验收通过后方可进入下个模块开发
  4. 如有疑问请及时与项目经理沟通