topfans/backend/docs/社交服务HTTP完整测试流程.md
2026-04-07 22:29:48 +08:00

1158 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 社交服务 HTTP 完整测试流程
## 目录
1. [环境准备](#环境准备)
2. [服务启动](#服务启动)
3. [用户准备](#用户准备)
4. [好友功能测试](#好友功能测试)
5. [异常场景测试](#异常场景测试)
6. [测试数据清理](#测试数据清理)
7. [常见问题](#常见问题)
---
## 环境准备
### 1. 数据库准备
确保 PostgreSQL 数据库已启动并创建了 `top-fans` 数据库:
```sql
CREATE DATABASE "top-fans" OWNER haihuizhu ENCODING 'UTF8';
```
### 2. 环境变量配置
```bash
# Gateway 配置
export SERVER_PORT=8080
export GIN_MODE=debug
export DUBBO_USER_SERVICE_URL="tri://127.0.0.1:20000"
export DUBBO_SOCIAL_SERVICE_URL="tri://127.0.0.1:20001"
export JWT_SECRET="topfans-secret-key-please-change-in-production"
```
### 3. 工具准备
推荐使用以下工具之一进行API测试
- **Postman** (推荐)
- **curl** 命令行
- **HTTPie**
- **Insomnia**
---
## 服务启动
### 1. 启动 UserService
```bash
cd /Users/haihuizhu/infinite_matrix/top-fans/backend/services/userService
./start.sh
```
**预期输出:**
```
Starting User Service...
Dubbo-go service started successfully. Press Ctrl+C to exit.
```
**检查端口:**
```bash
lsof -i :20000
```
### 2. 启动 SocialService
```bash
cd /Users/haihuizhu/infinite_matrix/top-fans/backend/services/socialService
./start.sh
```
**预期输出:**
```
Starting Social Service...
Social service started successfully. Press Ctrl+C to exit.
```
**检查端口:**
```bash
lsof -i :20001
```
### 3. 启动 Gateway
```bash
cd /Users/haihuizhu/infinite_matrix/top-fans/backend/gateway
./start.sh
```
**预期输出:**
```
Starting Top-Fans Gateway...
Gateway server started successfully
```
**检查端口:**
```bash
lsof -i :8080
```
### 4. 健康检查
```bash
curl http://localhost:8080/health
```
**预期响应:**
```json
{
"status": "ok",
"service": "top-fans-gateway"
}
```
---
## 用户准备
### 步骤 1: 注册用户 A张三
```bash
curl -X POST http://localhost:8080/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"mobile": "13800000001",
"password": "password123",
"star_id": 1,
"nickname": "张三"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_expires_at": 1736234567890,
"user": {
"id": 1,
"mobile": "13800000001",
"avatar_url": "",
"is_active": true
},
"fan_profile": {
"id": 1,
"user_id": 1,
"star_id": 1,
"nickname": "张三",
"level": 1,
"social": 0
}
}
}
```
**保存变量:**
- `USER_A_ID`: 1
- `USER_A_TOKEN`: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
### 步骤 2: 注册用户 B李四
```bash
curl -X POST http://localhost:8080/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"mobile": "13800000002",
"password": "password123",
"star_id": 1,
"nickname": "李四"
}'
```
**保存变量:**
- `USER_B_ID`: 2
- `USER_B_TOKEN`: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
### 步骤 3: 注册用户 C王五
```bash
curl -X POST http://localhost:8080/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"mobile": "13800000003",
"password": "password123",
"star_id": 1,
"nickname": "王五"
}'
```
**保存变量:**
- `USER_C_ID`: 3
- `USER_C_TOKEN`: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
---
## 好友功能测试
### API 概览
| 序号 | 功能 | 方法 | 路径 | 说明 |
|------|------|------|------|------|
| 1 | 查找用户 | GET | `/api/v1/social/search-user` | 根据用户ID查找陌生人信息 |
| 2 | 获取随机用户 | GET | `/api/v1/social/random-users` | 获取同一明星下的随机用户(用于推荐加好友) |
| 3 | 发送好友请求 | POST | `/api/v1/social/friend-requests` | 向指定用户发送好友请求 |
| 4 | 获取好友请求列表 | GET | `/api/v1/social/friend-requests` | 获取收到或发出的好友请求 |
| 5 | 处理好友请求 | POST | `/api/v1/social/friend-requests/handle` | 接受或拒绝好友请求 |
| 6 | 获取好友列表 | GET | `/api/v1/social/friends` | 获取好友列表(支持分页和搜索) |
| 7 | 关键字搜索好友 | GET | `/api/v1/social/friends?keyword=xxx` | 在好友列表中模糊搜索 |
| 8 | 检查好友关系 | GET | `/api/v1/social/friendship/check` | 检查是否为好友关系 |
| 9 | 获取好友数量 | GET | `/api/v1/social/friends/count` | 获取当前用户的好友数量 |
| 10 | 设置好友备注 | PUT | `/api/v1/social/friends/remark` | 设置好友的备注名 |
| 11 | 删除好友 | DELETE | `/api/v1/social/friends` | 删除好友关系 |
---
### 测试场景 1: 发送好友请求
#### 1.1 张三向李四发送好友请求
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{
"friend_user_id": 2,
"message": "你好,我是张三,我们交个朋友吧!"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"request_id": 1,
"status": "pending",
"created_at": 1736234567890,
"expires_at": 1738826567890
}
}
```
#### 1.2 查看发出的请求列表(张三)
```bash
curl -X GET "http://localhost:8080/api/v1/social/friend-requests?type=sent&page=1&page_size=10" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"has_more": false,
"items": [
{
"created_at": 1767697774916,
"expires_at": 1770289774915,
"from_user_fan_level": 1,
"from_user_id": 106,
"from_user_nickname": "不爱战战",
"id": 31,
"message": "你好,我是张三,我们交个朋友吧!",
"star_id": 87,
"status": "pending",
"to_user_fan_level": 1,
"to_user_id": 2,
"to_user_nickname": "爱战战"
},
{
"created_at": 1767697552714,
"expires_at": 1770289552714,
"from_user_fan_level": 1,
"from_user_id": 106,
"from_user_nickname": "不爱战战",
"id": 30,
"message": "你好,我们交个朋友吧!",
"star_id": 87,
"status": "pending",
"to_user_fan_level": 1,
"to_user_id": 108,
"to_user_nickname": "张小明"
}
],
"page": 1,
"page_size": 10,
"total": 2
}
}
```
#### 1.3 查看收到的请求列表(李四)
```bash
curl -X GET "http://localhost:8080/api/v1/social/friend-requests?type=received&status=pending&page=1&page_size=10" \
-H "Authorization: Bearer ${USER_B_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [
{
"id": 1,
"from_user_id": 1,
"to_user_id": 2,
"star_id": 1,
"status": "pending",
"message": "你好,我是张三,我们交个朋友吧!",
"created_at": 1736234567890,
"expires_at": 1738826567890,
"from_user_nickname": "张三",
"from_user_avatar": "",
"from_user_fan_level": 1
}
],
"total": 1,
"page": 1,
"page_size": 10,
"has_more": false
}
}
```
### 测试场景 2: 接受好友请求
#### 2.1 李四接受张三的好友请求
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests/handle \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_B_TOKEN}" \
-d '{
"request_id": 1,
"action": "accept"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"action": "accept",
"friendship_created": true,
"processed_at": 1736234600000
}
}
```
#### 2.2 查看张三的好友列表
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"friend_id": 2,
"star_id": 1,
"created_at": 1736234600000,
"friend_nickname": "李四",
"friend_avatar": "",
"friend_fan_level": 1,
"friend_social": 1
}
],
"total": 1,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
#### 2.3 查看李四的好友列表
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20" \
-H "Authorization: Bearer ${USER_B_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [
{
"id": 2,
"user_id": 2,
"friend_id": 1,
"star_id": 1,
"created_at": 1736234600000,
"friend_nickname": "张三",
"friend_avatar": "",
"friend_fan_level": 1,
"friend_social": 1
}
],
"total": 1,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
#### 2.4 查看好友数量
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends/count" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"count": 1
}
}
```
### 测试场景 3: 检查好友关系
```bash
curl -X GET "http://localhost:8080/api/v1/social/friendship/check?friend_user_id=2" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"is_friend": true
}
}
```
### 测试场景 4: 设置好友备注
```bash
curl -X PUT http://localhost:8080/api/v1/social/friends/remark \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{
"friend_user_id": 2,
"remark": "小李"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"remark": "小李"
}
}
```
#### 4.1 再次查看好友列表(确认备注)
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"friend_id": 2,
"star_id": 1,
"created_at": 1736234600000,
"remark": "小李",
"friend_nickname": "李四",
"friend_avatar": "",
"friend_fan_level": 1,
"friend_social": 1
}
],
"total": 1,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
### 测试场景 5: 根据用户ID查找陌生人用于加好友
**说明:** 在发送好友请求前,可以先查找目标用户的信息,查看是否可以添加为好友。
```bash
# 张三查找李四的信息(假设李四的 user_id 为 2
curl -X GET "http://localhost:8080/api/v1/social/search-user?friend_user_id=2" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"user_id": 2,
"nickname": "李四",
"avatar": "https://example.com/avatar/2.jpg",
"fan_level": 1,
"relationship_status": "stranger",
"can_send_request": true
}
}
```
**relationship_status 说明:**
- `stranger`: 陌生人,可以发送好友请求
- `friend`: 已经是好友
- `pending_sent`: 我已发送请求,等待对方处理
- `pending_received`: 对方已发送请求给我,等待我处理
- `rejected`: 之前被拒绝,在冷静期内(会返回 `cooldown_ends_at` 字段)
### 测试场景 6: 关键字搜索好友
**说明:** 在自己的好友列表中进行模糊搜索(搜索昵称或备注名)。
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?keyword=小李&page=1&page_size=20" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [
{
"id": 1,
"user_id": 1,
"friend_id": 2,
"star_id": 1,
"created_at": 1736234600000,
"remark": "小李",
"friend_nickname": "李四",
"friend_avatar": "",
"friend_fan_level": 1,
"friend_social": 1
}
],
"total": 1,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
### 测试场景 7: 拒绝好友请求
#### 6.1 王五向李四发送好友请求
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_C_TOKEN}" \
-d '{
"friend_user_id": 2,
"message": "李四你好!"
}'
```
#### 6.2 李四拒绝王五的好友请求
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests/handle \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_B_TOKEN}" \
-d '{
"request_id": 2,
"action": "reject"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"action": "reject",
"friendship_created": false,
"processed_at": 1736234700000
}
}
```
#### 6.3 验证好友关系未建立
```bash
curl -X GET "http://localhost:8080/api/v1/social/friendship/check?friend_user_id=2" \
-H "Authorization: Bearer ${USER_C_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"is_friend": false
}
}
```
### 测试场景 8: 设置好友备注
```bash
curl -X PUT http://localhost:8080/api/v1/social/friends/remark \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{
"friend_user_id": 2,
"remark": "小李"
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"remark": "小李"
}
}
```
### 测试场景 9: 删除好友
```bash
curl -X DELETE http://localhost:8080/api/v1/social/friends \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{
"friend_user_id": 2
}'
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"success": true
}
}
```
#### 7.1 验证好友已被删除(张三)
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [],
"total": 0,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
#### 7.2 验证好友已被删除(李四)
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20" \
-H "Authorization: Bearer ${USER_B_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": {
"items": [],
"total": 0,
"page": 1,
"page_size": 20,
"has_more": false
}
}
```
### 测试场景 10: 获取随机用户
获取同一明星下的随机用户信息(用于推荐加好友等功能)。
#### 10.1 获取单个随机用户(默认)
```bash
curl -X GET "http://localhost:8080/api/v1/social/random-users" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": [
{
"user_id": 2,
"nickname": "李四"
}
]
}
```
**说明:**
- 默认返回 1 个随机用户
- 返回的用户必须是同一 `star_id` 下的活跃用户
- 每次调用返回的用户可能不同(随机算法)
#### 10.2 获取多个随机用户
```bash
curl -X GET "http://localhost:8080/api/v1/social/random-users?count=3" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": [
{
"user_id": 2,
"nickname": "李四"
},
{
"user_id": 3,
"nickname": "王五"
},
{
"user_id": 4,
"nickname": "赵六"
}
]
}
```
**说明:**
- `count` 参数指定返回数量1-100
- 如果数据库中的用户数量少于请求的数量,返回实际存在的用户数量
- 如果数据库中没有用户,返回空数组
#### 10.3 验证随机性
多次调用接口,验证返回的用户不同:
```bash
# 第一次调用
curl -X GET "http://localhost:8080/api/v1/social/random-users" \
-H "Authorization: Bearer ${USER_A_TOKEN}" | jq -r '.data[0].user_id'
# 第二次调用
curl -X GET "http://localhost:8080/api/v1/social/random-users" \
-H "Authorization: Bearer ${USER_A_TOKEN}" | jq -r '.data[0].user_id'
# 第三次调用
curl -X GET "http://localhost:8080/api/v1/social/random-users" \
-H "Authorization: Bearer ${USER_A_TOKEN}" | jq -r '.data[0].user_id'
```
**说明:**
- 多次调用可能返回不同的用户(随机算法)
- 如果数据库中只有少量用户,可能会重复返回
#### 10.4 边界情况测试
**测试 1: count 参数为 0 或负数**
```bash
curl -X GET "http://localhost:8080/api/v1/social/random-users?count=0" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:** 默认返回 1 个用户
**测试 2: count 参数超过最大值**
```bash
curl -X GET "http://localhost:8080/api/v1/social/random-users?count=200" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:** 最多返回 100 个用户
**测试 3: 数据库中没有用户**
如果当前 `star_id` 下没有任何活跃用户:
```bash
curl -X GET "http://localhost:8080/api/v1/social/random-users" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 200,
"message": "ok",
"data": []
}
```
---
## 异常场景测试
### 异常 1: 查找不存在的用户
```bash
curl -X GET "http://localhost:8080/api/v1/social/search-user?friend_user_id=99999" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 404,
"message": "用户不存在"
}
```
### 异常 2: 查找自己
```bash
curl -X GET "http://localhost:8080/api/v1/social/search-user?friend_user_id=1" \
-H "Authorization: Bearer ${USER_A_TOKEN}"
```
**预期响应:**
```json
{
"code": 400,
"message": "不能查找自己"
}
```
### 异常 3: 未登录访问
```bash
curl -X GET "http://localhost:8080/api/v1/social/friends?page=1&page_size=20"
```
**预期响应:**
```json
{
"code": 401,
"message": "未授权"
}
```
### 异常 4: 重复发送好友请求
```bash
# 第一次
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{"friend_user_id": 2}'
# 第二次(重复)
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{"friend_user_id": 2}'
```
**第二次预期响应:**
```json
{
"code": 400,
"message": "已有待处理的好友请求"
}
```
### 异常 5: 添加自己为好友
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{"friend_user_id": 1}'
```
**预期响应:**
```json
{
"code": 400,
"message": "不能添加自己为好友"
}
```
### 异常 4: 冷却期内重复请求
```bash
# 假设李四拒绝了张三的请求后,张三立即重新发送
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{"friend_user_id": 2}'
```
**预期响应:**
```json
{
"code": 400,
"message": "请求已被拒绝,请 7 天后再试"
}
```
### 异常 6: 处理不存在的请求
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests/handle \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_B_TOKEN}" \
-d '{
"request_id": 99999,
"action": "accept"
}'
```
**预期响应:**
```json
{
"code": 404,
"message": "好友请求不存在"
}
```
### 异常 7: 删除不存在的好友
```bash
curl -X DELETE http://localhost:8080/api/v1/social/friends \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{"friend_user_id": 99999}'
```
**预期响应:**
```json
{
"code": 400,
"message": "你们不是好友"
}
```
### 异常 8: 无效的参数
```bash
curl -X POST http://localhost:8080/api/v1/social/friend-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{}'
```
**预期响应:**
```json
{
"code": 400,
"message": "参数错误: Key: 'friend_user_id' Error:Field validation for 'friend_user_id' failed on the 'required' tag"
}
```
### 异常 8: 备注过长
```bash
curl -X PUT http://localhost:8080/api/v1/social/friends/remark \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${USER_A_TOKEN}" \
-d '{
"friend_user_id": 2,
"remark": "这是一个超过50个字符的备注名这是一个超过50个字符的备注名这是一个超过50个字符的备注名这是一个超过50个字符的备注名"
}'
```
**预期响应:**
```json
{
"code": 400,
"message": "备注长度不能超过50个字符"
}
```
---
## 测试数据清理
### 方法 1: 通过 API 删除(推荐)
依次删除好友关系和用户数据(通过应用逻辑)。
### 方法 2: 直接清理数据库
```sql
-- 删除好友关系
DELETE FROM friendships WHERE star_id = 1;
-- 删除好友请求
DELETE FROM friend_requests WHERE star_id = 1;
-- 删除粉丝档案
DELETE FROM fan_profiles WHERE star_id = 1;
-- 删除用户(可选)
DELETE FROM users WHERE mobile IN ('13800000001', '13800000002', '13800000003');
```
---
## 测试检查清单
- [ ] 所有服务正常启动
- [ ] 健康检查通过
- [ ] 用户注册成功
- [ ] 发送好友请求成功
- [ ] 查看请求列表正确
- [ ] 接受好友请求成功
- [ ] 好友列表显示正确
- [ ] 好友数量统计正确
- [ ] 检查好友关系正确
- [ ] 设置好友备注成功
- [ ] 关键字搜索好友有效
- [ ] 拒绝好友请求成功
- [ ] 删除好友成功
- [ ] 所有异常场景返回正确错误
---
## 常见问题
### Q1: 服务启动失败怎么办?
检查:
1. 数据库是否正常运行
2. 端口是否被占用
3. 配置文件是否正确
4. 依赖服务是否已启动
### Q2: Token 过期怎么办?
重新登录获取新的 Token
```bash
curl -X POST http://localhost:8080/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"mobile": "13800000001",
"password": "password123"
}'
```
### Q3: 如何查看服务日志?
```bash
# UserService 日志
tail -f /path/to/user-service.log
# SocialService 日志
tail -f /path/to/social-service.log
# Gateway 日志
tail -f /path/to/gateway.log
```
### Q4: 如何重置测试环境?
1. 停止所有服务
2. 清理数据库执行上述清理SQL
3. 重新启动所有服务
4. 重新注册测试用户
---
## 附录
### A. 完整的 Postman Collection
可以导入以下 JSON 到 Postman 进行测试:
[下载 Postman Collection](./社交服务测试集合.postman_collection.json)
### B. 自动化测试脚本
参考 `tests/social_service_integration_test.sh` 进行自动化测试。
### C. 性能测试建议
- 使用 Apache Bench 或 wrk 进行压力测试
- 建议并发用户数100-1000
- 观察响应时间和错误率
---
**文档版本**: v1.0
**最后更新**: 2026-01-06
**维护者**: AI Assistant