# 学员信息管理模块 - 测试验收文档 **模块名称**:学员信息管理模块 **开发完成日期**: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:获取学员列表 ```bash # 测试命令 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:获取学员概览信息 ```bash # 测试命令 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:更新学员信息 ```bash # 测试命令 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:权限验证测试 ```bash # 测试命令:尝试访问其他用户的学员信息 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. 如有疑问请及时与项目经理沟通