# User 模块测试标准流程 ## 基础测试流程 每个模块应遵循以下基础测试流程: ``` 新增(创建) -> 查询(单条) -> 更新 -> 查询(验证更新) -> 列表查询 -> 删除 -> 查询(验证删除) ``` ## 测试步骤详解 ### 1. 新增(创建) 创建新记录并返回 ID **验证点:** - 记录成功插入数据库 - 返回正确的 ID - 必填字段验证通过 - 重复数据检查(如邮箱唯一) **示例请求:** ```bash curl -X POST http://localhost:8888/api/v1/user \ -H "Content-Type: application/json" \ -d '{ "username": "testuser01", "email": "test01@example.com", "password": "password123", "phone": "13800138000" }' ``` --- ### 2. 查询(单条) 使用步骤 1 返回的 ID 查询记录 **验证点:** - 返回完整记录信息 - 字段值正确 - 状态码为 200 **示例请求:** ```bash curl -X GET http://localhost:8888/api/v1/user/1 ``` --- ### 3. 更新 使用 ID 更新记录的部分字段 **验证点:** - 字段值正确更新 - 返回更新后的完整记录 - 其他字段保持不变 - 数据验证(如邮箱唯一性) **示例请求:** ```bash curl -X PUT http://localhost:8888/api/v1/user/1 \ -H "Content-Type: application/json" \ -d '{ "username": "testuser01_updated", "phone": "13900139000" }' ``` --- ### 4. 查询(验证更新) 再次使用 ID 查询记录,验证更新结果 **验证点:** - 更新的字段值正确 - 未更新的字段值保持不变 **示例请求:** ```bash curl -X GET http://localhost:8888/api/v1/user/1 ``` --- ### 5. 列表查询 查询记录列表,支持分页和筛选 **验证点:** - 返回列表数据 - 分页参数生效 - 筛选条件生效 - 总数统计正确 **示例请求:** ```bash # 查询所有 curl -X GET "http://localhost:8888/api/v1/users?page=1&pageSize=10" # 带关键词搜索 curl -X GET "http://localhost:8888/api/v1/users?keyword=test&status=1" ``` --- ### 6. 删除 使用 ID 删除记录 **验证点:** - 删除成功 - 返回正确的响应格式 **示例请求:** ```bash curl -X DELETE http://localhost:8888/api/v1/user/1 ``` --- ### 7. 查询(验证删除) 再次使用 ID 查询记录,验证已删除 **验证点:** - 返回 404 或相应错误信息 - 记录确实已不存在 **示例请求:** ```bash curl -X GET http://localhost:8888/api/v1/user/1 ``` --- ## 测试脚本模板 ### Bash 脚本模板 ```bash #!/bin/bash # 配置 BASE_URL="http://localhost:8888/api/v1" MODULE="user" # 日志函数 log_info() { echo -e "\033[32m[INFO]\033[0m $1" } log_success() { echo -e "\033[32m[SUCCESS]\033[0m $1" } log_error() { echo -e "\033[31m[ERROR]\033[0m $1" } # 1. 新增 log_info "步骤 1: 新增 $MODULE" CREATE_RESULT=$(curl -s -X POST ${BASE_URL}/${MODULE} \ -H "Content-Type: application/json" \ -d '{ "username": "test_'$(date +%s)'", "email": "test_'$(date +%s)'@example.com", "password": "password123", "phone": "13800138000" }') echo $CREATE_RESULT | jq '.' ID=$(echo $CREATE_RESULT | jq -r '.id') # 2. 查询 log_info "步骤 2: 查询 $MODULE (ID: $ID)" QUERY_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID}) echo $QUERY_RESULT | jq '.' # 3. 更新 log_info "步骤 3: 更新 $MODULE" UPDATE_RESULT=$(curl -s -X PUT ${BASE_URL}/${MODULE}/${ID} \ -H "Content-Type: application/json" \ -d '{ "phone": "13900139000" }') echo $UPDATE_RESULT | jq '.' # 4. 验证更新 log_info "步骤 4: 验证更新" VERIFY_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID}) echo $VERIFY_RESULT | jq '.' # 5. 列表查询 log_info "步骤 5: 列表查询" LIST_RESULT=$(curl -s -X GET "${BASE_URL}/${MODULE}s?page=1&pageSize=10") echo $LIST_RESULT | jq '.' # 6. 删除 log_info "步骤 6: 删除 $MODULE" DELETE_RESULT=$(curl -s -X DELETE ${BASE_URL}/${MODULE}/${ID}) echo $DELETE_RESULT | jq '.' # 7. 验证删除 log_info "步骤 7: 验证删除" VERIFY_DELETE_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID}) echo $VERIFY_DELETE_RESULT | jq '.' log_success "测试完成" ``` --- ## 测试报告格式 每个模块测试完成后,应输出测试报告: ``` === [模块名] 测试报告 === 步骤 结果 备注 ------------------------ 新增 [通过/失败] 查询(新增后) [通过/失败] 更新 [通过/失败] 查询(更新后) [通过/失败] 列表查询 [通过/失败] 删除 [通过/失败] 查询(删除后) [通过/失败] 总体结果: [全部通过/部分失败/全部失败] ``` --- ## Profile 模块测试流程 ``` 获取 -> 更新 -> 查询(验证) -> 修改密码 ``` ### 步骤详解 ### 1. 获取个人信息 获取当前登录用户的个人信息 **验证点:** - 返回完整用户信息 - 头像和简介字段正确 **示例请求:** ```bash curl -X GET http://localhost:8888/api/v1/profile/me ``` --- ### 2. 更新个人资料 更新用户名、手机号、头像、简介等字段 **验证点:** - 字段值正确更新 - 返回更新后的完整信息 - 未更新字段值保持不变 **示例请求:** ```bash curl -X PUT http://localhost:8888/api/v1/profile/me \ -H "Content-Type: application/json" \ -d '{ "username": "updated_user", "phone": "13900139000", "avatar": "http://example.com/avatar.jpg", "bio": "个人简介" }' ``` --- ### 3. 查询个人信息 (验证更新) 再次获取个人信息,验证更新结果 **验证点:** - 更新的字段值正确 - 未更新的字段值保持不变 **示例请求:** ```bash curl -X GET http://localhost:8888/api/v1/profile/me ``` --- ### 4. 修改密码 修改用户密码 **验证点:** - 返回正确的成功响应 - 错误密码返回正确错误信息 **示例请求:** ```bash curl -X POST http://localhost:8888/api/v1/profile/password \ -H "Content-Type: application/json" \ -d '{ "oldPassword": "password123", "newPassword": "newpassword123" }' ``` **注意:** 修改密码后需要重新登录,完整验证流程需要实现登录接口并获取新 token。 --- ## 测试注意事项 1. **环境准备** - 确保服务已启动 - 数据库已连接 - 端口可访问 2. **数据隔离** - 每次测试使用不同的测试数据 - 避免与其他测试产生冲突 - 建议使用时间戳或随机数生成唯一数据 3. **错误处理** - 验证错误提示信息正确 - 验证 HTTP 状态码 - 验证响应格式 4. **边界条件** - 测试必填字段缺失 - 测试数据格式错误(如邮箱格式) - 测试字段长度限制 - 测试重复数据(唯一性验证)