274 lines
5.1 KiB
Markdown
274 lines
5.1 KiB
Markdown
|
|
# 云大阁聊天系统 - API接口测试文档
|
|||
|
|
|
|||
|
|
## 文档信息
|
|||
|
|
- 版本:1.0.0
|
|||
|
|
- 日期:2025-07-20
|
|||
|
|
- 测试环境:
|
|||
|
|
- 前端:http://localhost:3000
|
|||
|
|
- 后端:http://localhost:8080
|
|||
|
|
|
|||
|
|
## 测试账号
|
|||
|
|
- 测试手机号:18362903328(或您的手机号)
|
|||
|
|
- 开发模式验证码:123456
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、认证模块测试
|
|||
|
|
|
|||
|
|
### 1.1 发送验证码
|
|||
|
|
**接口地址**: `POST /api/auth/send-code`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 访问注册/登录页面
|
|||
|
|
- [ ] 输入手机号/邮箱
|
|||
|
|
- [ ] 点击"发送验证码"按钮
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 按钮显示倒计时60秒
|
|||
|
|
- [ ] 控制台显示验证码(开发模式)
|
|||
|
|
- [ ] 响应状态码:200
|
|||
|
|
|
|||
|
|
**测试数据**:
|
|||
|
|
```json
|
|||
|
|
请求:
|
|||
|
|
{
|
|||
|
|
"contact": "18362903328"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
响应:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "验证码已发送",
|
|||
|
|
"data": {
|
|||
|
|
"code": "123456" // 开发模式返回
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 1.2 用户注册
|
|||
|
|
**接口地址**: `POST /api/auth/register`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 访问注册页面
|
|||
|
|
- [ ] 输入用户名、手机号/邮箱
|
|||
|
|
- [ ] 输入验证码(123456)
|
|||
|
|
- [ ] 点击"注册"按钮
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 注册成功,自动跳转到首页
|
|||
|
|
- [ ] 本地存储token
|
|||
|
|
- [ ] 响应状态码:200
|
|||
|
|
|
|||
|
|
**测试数据**:
|
|||
|
|
```json
|
|||
|
|
请求:
|
|||
|
|
{
|
|||
|
|
"username": "testuser",
|
|||
|
|
"phone": "18362903328",
|
|||
|
|
"code": "123456"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
响应:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"token": "eyJhbGciOiJIUzI1NiJ9...",
|
|||
|
|
"type": "Bearer",
|
|||
|
|
"id": 2,
|
|||
|
|
"username": "testuser",
|
|||
|
|
"phone": "18362903328",
|
|||
|
|
"email": null
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 1.3 用户登录
|
|||
|
|
**接口地址**: `POST /api/auth/login`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 访问登录页面
|
|||
|
|
- [ ] 输入手机号/邮箱
|
|||
|
|
- [ ] 输入验证码(123456)
|
|||
|
|
- [ ] 点击"登录"按钮
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 登录成功,跳转到首页
|
|||
|
|
- [ ] 显示用户信息
|
|||
|
|
- [ ] 本地存储token
|
|||
|
|
|
|||
|
|
**测试数据**:
|
|||
|
|
```json
|
|||
|
|
请求:
|
|||
|
|
{
|
|||
|
|
"contact": "18362903328",
|
|||
|
|
"code": "123456"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
响应:同注册响应
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、聊天模块测试
|
|||
|
|
|
|||
|
|
### 2.1 发送消息(同步模式)
|
|||
|
|
**接口地址**: `POST /qa/ask`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 登录后在首页输入消息
|
|||
|
|
- [ ] 点击发送按钮
|
|||
|
|
- [ ] 等待AI回复
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 用户消息立即显示
|
|||
|
|
- [ ] AI回复完整显示
|
|||
|
|
- [ ] 新会话添加到侧边栏
|
|||
|
|
|
|||
|
|
**测试数据**:
|
|||
|
|
```json
|
|||
|
|
请求:
|
|||
|
|
{
|
|||
|
|
"mode": "chat",
|
|||
|
|
"conversationId": null, // 新会话
|
|||
|
|
"message": "你好"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
响应:
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"conversationId": "37",
|
|||
|
|
"messageId": "75",
|
|||
|
|
"answer": "你好!很高兴见到你...",
|
|||
|
|
"tokensUsed": 100,
|
|||
|
|
"timeMs": 2000
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 发送消息(流式模式)
|
|||
|
|
**接口地址**: `POST /qa/ask/stream`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 发送较长的问题
|
|||
|
|
- [ ] 观察AI回复是否逐字显示
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] AI回复实时流式显示
|
|||
|
|
- [ ] 显示打字效果
|
|||
|
|
- [ ] 完成后保存完整消息
|
|||
|
|
|
|||
|
|
**SSE事件流**:
|
|||
|
|
```
|
|||
|
|
event: message
|
|||
|
|
data: {"type":"content","content":"你好","finished":false}
|
|||
|
|
|
|||
|
|
event: message
|
|||
|
|
data: {"type":"content","content":"!","finished":false}
|
|||
|
|
|
|||
|
|
event: finished
|
|||
|
|
data: {"type":"finished","conversationId":"37","messageId":"76","tokensUsed":150,"timeMs":3000,"finished":true}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.3 深度检索模式
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 点击"深度检索"按钮激活
|
|||
|
|
- [ ] 发送需要详细分析的问题
|
|||
|
|
- [ ] 检查是否返回引用资料
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 按钮高亮显示
|
|||
|
|
- [ ] 回复包含引用资料(research模式)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、会话管理测试
|
|||
|
|
|
|||
|
|
### 3.1 获取会话列表
|
|||
|
|
**接口地址**: `GET /qa/conversations`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 刷新页面
|
|||
|
|
- [ ] 检查侧边栏会话列表
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 显示所有历史会话
|
|||
|
|
- [ ] 按时间倒序排列
|
|||
|
|
|
|||
|
|
**响应示例**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"id": 37,
|
|||
|
|
"userId": 2,
|
|||
|
|
"title": "你好",
|
|||
|
|
"mode": "chat",
|
|||
|
|
"createdAt": "2025-07-20T18:33:38",
|
|||
|
|
"updatedAt": "2025-07-20T18:33:39"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.2 获取会话消息
|
|||
|
|
**接口地址**: `GET /qa/conversations/{id}/messages`
|
|||
|
|
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 点击侧边栏的历史会话
|
|||
|
|
- [ ] 观察聊天窗口内容
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 正确加载历史消息
|
|||
|
|
- [ ] 保持消息顺序
|
|||
|
|
- [ ] 滚动到最新消息
|
|||
|
|
|
|||
|
|
**响应示例**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"id": 74,
|
|||
|
|
"conversationId": 37,
|
|||
|
|
"sequence": 1,
|
|||
|
|
"role": "user",
|
|||
|
|
"content": "你好",
|
|||
|
|
"createdAt": "2025-07-20T18:33:38"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": 75,
|
|||
|
|
"conversationId": 37,
|
|||
|
|
"sequence": 2,
|
|||
|
|
"role": "assistant",
|
|||
|
|
"content": "你好!很高兴见到你...",
|
|||
|
|
"createdAt": "2025-07-20T18:33:39"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.3 新建会话
|
|||
|
|
**测试步骤**:
|
|||
|
|
- [ ] 点击"新建对话"按钮
|
|||
|
|
- [ ] 发送第一条消息
|
|||
|
|
- [ ] 检查会话创建
|
|||
|
|
|
|||
|
|
**预期结果**:
|
|||
|
|
- [ ] 清空当前聊天窗口
|
|||
|
|
- [ ] 发送消息后创建新会话
|
|||
|
|
- [ ] 新会话出现在侧边栏顶部
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 测试总结
|
|||
|
|
|
|||
|
|
### 通过的测试项
|
|||
|
|
- [ ] 认证模块 (3/4)
|
|||
|
|
- [ ] 聊天模块 (3/3)
|
|||
|
|
- [ ] 会话管理 (3/3)
|
|||
|
|
|
|||
|
|
|
|||
|
|
**测试人员**:江争达
|
|||
|
|
**测试日期**:2025-07-20
|
|||
|
|
**签名**:_______________
|