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

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。


测试注意事项

  1. 环境准备

    • 确保服务已启动
    • 数据库已连接
    • 端口可访问
  2. 数据隔离

    • 每次测试使用不同的测试数据
    • 避免与其他测试产生冲突
    • 建议使用时间戳或随机数生成唯一数据
  3. 错误处理

    • 验证错误提示信息正确
    • 验证 HTTP 状态码
    • 验证响应格式
  4. 边界条件

    • 测试必填字段缺失
    • 测试数据格式错误(如邮箱格式)
    • 测试字段长度限制
    • 测试重复数据(唯一性验证)