# UserController 接口测试文档 ## 1. 用户注册接口 ### 接口信息 - 请求路径:`/api/users/register` - 请求方法:POST - 请求体类型:application/json ### 请求参数 ```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": "账号名已存在" } ``` 2. 账号名格式错误 - 请求参数: ```json { "nickname": "测试用户", "accountName": "ab", // 少于4位 "password": "password123" } ``` - 预期响应: ```json { "code": 400, "message": "账号名必须是4-16位字母、数字或下划线" } ``` 3. 密码格式错误 - 请求参数: ```json { "nickname": "测试用户", "accountName": "test123", "password": "123" // 少于6位 } ``` - 预期响应: ```json { "code": 400, "message": "密码必须是6-16位字母、数字或下划线" } ``` 4. 必填字段为空 - 请求参数: ```json { "nickname": "", "accountName": "", "password": "" } ``` - 预期响应: ```json { "code": 400, "message": "用户名不能为空" } ``` ## 2. 用户登录接口 ### 接口信息 - 请求路径:`/api/users/login` - 请求方法:POST - 请求体类型:application/json ### 请求参数 ```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": "账号不存在" } ``` 2. 密码错误 - 请求参数: ```json { "accountName": "test123", "password": "wrong_password" } ``` - 预期响应: ```json { "code": 400, "message": "密码错误" } ``` 3. 必填字段为空 - 请求参数: ```json { "accountName": "", "password": "" } ``` - 预期响应: ```json { "code": 400, "message": "账号名不能为空" } ``` ## 3. 获取用户信息接口 ### 接口信息 - 请求路径:`/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无效" } ``` 2. token 无效 - 请求头: ``` token: invalid_token ``` - 预期响应: ```json { "code": 401, "message": "token无效或已过期" } ``` 3. token 已过期 - 请求头: ``` token: expired_token ``` - 预期响应: ```json { "code": 401, "message": "token无效或已过期" } ``` 4. 用户不存在 - 请求头: ``` 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. 测试时注意清理测试数据,避免影响其他测试用例