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.5 KiB
6.5 KiB
User 模块测试标准流程
基础测试流程
每个模块应遵循以下基础测试流程:
新增(创建) -> 查询(单条) -> 更新 -> 查询(验证更新) -> 列表查询 -> 删除 -> 查询(验证删除)
测试步骤详解
1. 新增(创建)
创建新记录并返回 ID
验证点:
- 记录成功插入数据库
- 返回正确的 ID
- 必填字段验证通过
- 重复数据检查(如邮箱唯一)
示例请求:
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
示例请求:
curl -X GET http://localhost:8888/api/v1/user/1
3. 更新
使用 ID 更新记录的部分字段
验证点:
- 字段值正确更新
- 返回更新后的完整记录
- 其他字段保持不变
- 数据验证(如邮箱唯一性)
示例请求:
curl -X PUT http://localhost:8888/api/v1/user/1 \
-H "Content-Type: application/json" \
-d '{
"username": "testuser01_updated",
"phone": "13900139000"
}'
4. 查询(验证更新)
再次使用 ID 查询记录,验证更新结果
验证点:
- 更新的字段值正确
- 未更新的字段值保持不变
示例请求:
curl -X GET http://localhost:8888/api/v1/user/1
5. 列表查询
查询记录列表,支持分页和筛选
验证点:
- 返回列表数据
- 分页参数生效
- 筛选条件生效
- 总数统计正确
示例请求:
# 查询所有
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 删除记录
验证点:
- 删除成功
- 返回正确的响应格式
示例请求:
curl -X DELETE http://localhost:8888/api/v1/user/1
7. 查询(验证删除)
再次使用 ID 查询记录,验证已删除
验证点:
- 返回 404 或相应错误信息
- 记录确实已不存在
示例请求:
curl -X GET http://localhost:8888/api/v1/user/1
测试脚本模板
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. 获取个人信息
获取当前登录用户的个人信息
验证点:
- 返回完整用户信息
- 头像和简介字段正确
示例请求:
curl -X GET http://localhost:8888/api/v1/profile/me
2. 更新个人资料
更新用户名、手机号、头像、简介等字段
验证点:
- 字段值正确更新
- 返回更新后的完整信息
- 未更新字段值保持不变
示例请求:
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. 查询个人信息 (验证更新)
再次获取个人信息,验证更新结果
验证点:
- 更新的字段值正确
- 未更新的字段值保持不变
示例请求:
curl -X GET http://localhost:8888/api/v1/profile/me
4. 修改密码
修改用户密码
验证点:
- 返回正确的成功响应
- 错误密码返回正确错误信息
示例请求:
curl -X POST http://localhost:8888/api/v1/profile/password \
-H "Content-Type: application/json" \
-d '{
"oldPassword": "password123",
"newPassword": "newpassword123"
}'
注意: 修改密码后需要重新登录,完整验证流程需要实现登录接口并获取新 token。
测试注意事项
-
环境准备
- 确保服务已启动
- 数据库已连接
- 端口可访问
-
数据隔离
- 每次测试使用不同的测试数据
- 避免与其他测试产生冲突
- 建议使用时间戳或随机数生成唯一数据
-
错误处理
- 验证错误提示信息正确
- 验证 HTTP 状态码
- 验证响应格式
-
边界条件
- 测试必填字段缺失
- 测试数据格式错误(如邮箱格式)
- 测试字段长度限制
- 测试重复数据(唯一性验证)