编辑 | blame | 历史 | 原始文档

UserController 接口测试文档

1. 用户注册接口

接口信息

  • 请求路径:/api/users/register
  • 请求方法:POST
  • 请求体类型:application/json

请求参数

{
    "nickname": "用户昵称",
    "accountName": "账号名",
    "password": "密码"
}

测试用例

成功场景

  1. 正常注册
  • 请求参数:
    json { "nickname": "测试用户", "accountName": "test123", "password": "password123" }
  • 预期响应:
    json { "code": 200, "message": "注册成功", "data": { "id": 1, "nickname": "测试用户", "accountName": "test123" } }

失败场景

  1. 账号名已存在
  • 请求参数:
    json { "nickname": "测试用户", "accountName": "existing_user", "password": "password123" }
  • 预期响应:
    json { "code": 400, "message": "账号名已存在" }
  1. 账号名格式错误
  • 请求参数:
    json { "nickname": "测试用户", "accountName": "ab", // 少于4位 "password": "password123" }
  • 预期响应:
    json { "code": 400, "message": "账号名必须是4-16位字母、数字或下划线" }
  1. 密码格式错误
  • 请求参数:
    json { "nickname": "测试用户", "accountName": "test123", "password": "123" // 少于6位 }
  • 预期响应:
    json { "code": 400, "message": "密码必须是6-16位字母、数字或下划线" }
  1. 必填字段为空
  • 请求参数:
    json { "nickname": "", "accountName": "", "password": "" }
  • 预期响应:
    json { "code": 400, "message": "用户名不能为空" }

2. 用户登录接口

接口信息

  • 请求路径:/api/users/login
  • 请求方法:POST
  • 请求体类型:application/json

请求参数

{
    "accountName": "账号名",
    "password": "密码"
}

测试用例

成功场景

  1. 正常登录
  • 请求参数:
    json { "accountName": "test123", "password": "password123" }
  • 预期响应:
    json { "code": 200, "message": "登录成功", "data": "eyJhbGciOiJIUzI1NiJ9..." // JWT token }

失败场景

  1. 账号不存在
  • 请求参数:
    json { "accountName": "nonexistent", "password": "password123" }
  • 预期响应:
    json { "code": 400, "message": "账号不存在" }
  1. 密码错误
  • 请求参数:
    json { "accountName": "test123", "password": "wrong_password" }
  • 预期响应:
    json { "code": 400, "message": "密码错误" }
  1. 必填字段为空
  • 请求参数:
    json { "accountName": "", "password": "" }
  • 预期响应:
    json { "code": 400, "message": "账号名不能为空" }

3. 退出登录接口

接口信息

  • 请求路径:/api/users/logout
  • 请求方法:POST
  • 请求头:需要携带 token

测试用例

成功场景

  1. 正常退出登录
  • 请求头:
    token: eyJhbGciOiJIUzI1NiJ9...
  • 预期响应:
    json { "code": 200, "message": "退出登录成功", "data": null }

失败场景

  1. 未携带 token
  • 请求头:无 token
  • 预期响应:
    json { "code": 400, "message": "未登录状态", "data": null }
  1. token 无效或已过期
  • 请求头:
    token: invalid_token
  • 预期响应:
    json { "code": 401, "message": "token无效或已过期", "data": null }

4. 获取用户信息接口

接口信息

  • 请求路径:/api/users/info
  • 请求方法:GET
  • 请求头:需要携带 token

测试用例

成功场景

  1. 正常获取用户信息
  • 请求头:
    token: eyJhbGciOiJIUzI1NiJ9...
  • 预期响应:
    json { "code": 200, "data": { "id": 1, "nickname": "测试用户", "accountName": "test123" } }

失败场景

  1. 未携带 token
  • 请求头:无 token
  • 预期响应:
    json { "code": 401, "message": "未登录或token无效" }
  1. token 无效
  • 请求头:
    token: invalid_token
  • 预期响应:
    json { "code": 401, "message": "token无效或已过期" }
  1. token 已过期
  • 请求头:
    token: expired_token
  • 预期响应:
    json { "code": 401, "message": "token无效或已过期" }
  1. 用户不存在
  • 请求头:
    token: valid_token_for_nonexistent_user
  • 预期响应:
    json { "code": 400, "message": "用户不存在" }

测试工具建议

  1. Postman
  2. Swagger UI
  3. JMeter(用于性能测试)

注意事项

  1. 所有接口都支持跨域请求
  2. 注册和登录接口使用 @Valid 注解进行参数验证
  3. 用户信息接口需要有效的 JWT token
  4. 密码在传输过程中应该使用 HTTPS 加密
  5. 建议在测试环境中使用测试数据库
  6. 测试时注意清理测试数据,避免影响其他测试用例
  7. 退出登录后的 token 会被加入黑名单,无法再次使用