Files
vtsuru.live/测试指南-本地提问保存.md
Megghy 4ad9766043 feat: Implement local question saving feature for unauthenticated users
- Added functionality to automatically save questions sent by unauthenticated users to local storage using VueUse's useStorage.
- Introduced a local history button to display the number of saved questions.
- Created a drawer component to view, delete, and clear local question records.
- Enhanced the question form with options for anonymous name and email input.
- Updated UI components and styles for better user experience.
- Added tests and documentation for the new feature.
2025-10-10 14:35:56 +08:00

209 lines
5.2 KiB
Markdown
Raw 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.
# 测试指南 - 本地提问保存功能
## 测试前准备
1. 确保已安装依赖:
```bash
bun install
```
2. 启动开发服务器:
```bash
bun dev
```
## 测试步骤
### 测试场景 1: 未登录用户发送提问并保存
1. **进入页面**
- 访问任意用户的提问箱页面
- 确保处于未登录状态(退出登录)
2. **查看按钮**
- 应该能看到两个按钮:
- "我要提问" (绿色主按钮)
- "本地记录" (蓝色按钮,带数字徽章)
- 初始状态徽章应该为 0 或不显示
3. **发送第一条提问**
- 点击"我要提问"按钮
- 填写提问内容至少3个字
- 可选:填写昵称和邮箱
- 可选:选择话题标签
- 可选:上传图片(如果主播允许)
- 完成人机验证
- 点击"发送"按钮
4. **验证自动保存**
- 发送成功后
- "本地记录"按钮的徽章数字应该增加到 1
- 提问表单应该自动收起
5. **查看本地记录**
- 点击"本地记录"按钮
- 应该打开右侧抽屉
- 能看到刚才发送的提问
- 显示内容包括:
- 目标用户名称
- 话题标签(如果有)
- 提问内容
- 发送时间
- 昵称(如果填写了)
- 邮箱(如果填写了)
- 图片标识(如果上传了)
### 测试场景 2: 发送多条提问
1. **重复发送**
- 继续发送 2-3 条提问
- 每次发送成功后,徽章数字应该增加
2. **查看记录列表**
- 打开本地记录抽屉
- 应该看到所有发送的提问
- 最新的提问在最上面
- 每条记录都显示完整信息
### 测试场景 3: 删除单条记录
1. **删除操作**
- 打开本地记录抽屉
- 找到想删除的记录
- 点击记录右上角的删除按钮X图标
- 应该显示"已删除"提示
2. **验证删除**
- 记录应该从列表中消失
- 徽章数字应该减少 1
- 其他记录不受影响
### 测试场景 4: 清空所有记录
1. **清空操作**
- 打开本地记录抽屉
- 点击右上角的"清空全部"按钮
- 应该显示"已清空所有本地提问记录"提示
2. **验证清空**
- 所有记录都应该消失
- 显示空状态提示:"还没有本地提问记录"
- 徽章数字应该消失或变为 0
### 测试场景 5: 已登录用户不显示本地记录
1. **登录账号**
- 使用任意账号登录
2. **验证显示**
- "本地记录"按钮应该不显示
- 只显示"我要提问"和"我发送的"按钮
- 已登录用户应该使用"我发送的"查看历史
### 测试场景 6: 数据持久性
1. **刷新页面**
- 发送几条提问后
- 刷新浏览器页面
- 本地记录应该仍然存在
2. **关闭重开**
- 关闭浏览器标签页
- 重新打开页面
- 本地记录应该仍然存在
3. **清除数据**
- 在浏览器开发者工具中
- 清除本地存储localStorage
- 本地记录应该被清空
### 测试场景 7: 不同用户的提问
1. **访问用户A的提问箱**
- 发送一条提问
- 记录应该保存目标用户名为"用户A"
2. **访问用户B的提问箱**
- 发送一条提问
- 记录应该保存目标用户名为"用户B"
3. **查看本地记录**
- 打开本地记录抽屉
- 应该看到两条记录
- 分别标注了不同的目标用户
## 浏览器兼容性测试
建议在以下浏览器中测试:
- ✅ Chrome / Edge (推荐)
- ✅ Firefox
- ✅ Safari
- ⚠️ IE (不支持)
## 开发者工具检查
### 查看存储数据
1. 打开浏览器开发者工具 (F12)
2. 切换到 Application/Storage 标签
3. 找到 Local Storage
4. 查找键名:`vtsuru-local-questions`
5. 数据应该是 JSON 格式的数组
示例数据:
```json
[
{
"id": "local-1234567890-abc123",
"targetUserId": 123,
"targetUserName": "测试用户",
"message": "这是一条测试提问",
"tag": "测试话题",
"anonymousName": "匿名用户",
"anonymousEmail": "test@example.com",
"hasImage": false,
"sendAt": 1234567890000
}
]
```
## 已知限制
1. **存储大小**: 浏览器 localStorage 有大小限制(通常 5-10MB
2. **跨域隔离**: 不同域名下的数据互不可见
3. **无备份**: 清除浏览器数据会丢失所有记录
4. **图片不保存**: 只记录是否包含图片,不保存图片内容
## 故障排查
### 问题:本地记录不显示
- 检查是否处于未登录状态
- 检查浏览器是否禁用了 localStorage
- 打开开发者工具查看是否有错误
### 问题:发送成功但没有保存
- 检查开发者工具 Console 是否有错误
- 确认 userInfo 对象有正确的 id 和 name
- 检查 isUserLoggedIn 计算属性是否正确
### 问题:刷新后记录消失
- 检查浏览器隐私模式设置
- 确认没有自动清除 Cookie 和存储的设置
- 检查浏览器扩展是否影响存储
## 性能考虑
- ✅ 使用 VueUse 的 `useStorage` 自动处理序列化
- ✅ 数据保存是同步的,不影响发送速度
- ✅ 列表渲染使用虚拟滚动(如果记录很多)
- ⚠️ 建议不要保存超过 1000 条记录
## 反馈与改进
如果在测试过程中发现问题,请记录:
1. 浏览器类型和版本
2. 操作步骤
3. 预期结果
4. 实际结果
5. 控制台错误信息(如果有)