通知系统测试场景

📋 测试概述

本文档列出了统一错误处理和通知系统的完整测试场景,用于验证各种情况下的表现。


✅ 成功场景测试

1. 创建知识库成功

操作步骤:

  1. 点击"创建知识库"按钮
  2. 填写表单(名称、描述等)
  3. 点击"创建"

预期结果:

  • ✅ 显示成功通知:"创建成功 - 知识库「XXX」已创建"
  • ✅ 通知从右侧滑入,绿色背景
  • ✅ 3秒后自动关闭(带进度条)
  • ✅ 创建模态框自动关闭
  • ✅ 知识库列表自动刷新
  • ✅ 新创建的知识库出现在列表中

验证点:

  • 通知UI正确显示
  • 通知自动关闭
  • 模态框关闭
  • 列表刷新

2. 上传文件成功

操作步骤:

  1. 打开知识库详情
  2. 拖放或选择文件上传
  3. 等待上传完成

预期结果:

  • ✅ 显示成功通知:"上传成功 - 文件「XXX.pdf」已上传并处理"
  • ✅ 通知显示文件名称
  • ✅ 知识库详情自动刷新
  • ✅ 文件信息更新(页数、字符数等)

验证点:

  • 通知包含文件名
  • 详情页刷新
  • 文件信息更新

3. URL导入成功

操作步骤:

  1. 打开知识库详情
  2. 在URL导入区域输入网页URL或YouTube链接
  3. 点击"导入"

预期结果:

  • ✅ 显示成功通知:"导入成功 - 已成功导入:XXX"
  • ✅ 显示导入的标题或URL
  • ✅ 知识库详情刷新
  • ✅ 显示导入的内容统计

验证点:

  • 通知显示导入信息
  • 详情页刷新
  • 内容统计更新

4. 批量上传成功

操作步骤:

  1. 打开知识库详情
  2. 选择多个文件(支持格式)
  3. 拖放或选择上传

预期结果:

  • ✅ 显示批量上传进度模态框
  • ✅ 每个文件显示上传状态
  • ✅ 全部完成后显示汇总通知:"批量上传完成:X个成功,Y个处理中,Z个失败"
  • ✅ 知识库列表刷新

验证点:

  • 进度模态框显示
  • 文件状态更新
  • 汇总通知显示

❌ 错误场景测试

1. 网络错误

模拟方法:

  • 断开网络连接
  • 或使用浏览器开发者工具模拟网络错误

操作步骤:

  1. 断开网络
  2. 尝试创建知识库

预期结果:

  • ✅ 显示错误通知:"网络错误 - 网络连接失败,请检查网络设置"
  • ✅ 红色背景,AlertCircle图标
  • ✅ 6秒后自动关闭(错误消息显示更久)
  • ✅ 可以手动关闭

验证点:

  • 错误消息友好
  • 显示时长正确
  • 可以手动关闭

2. 验证错误(400)

模拟方法:

  • 提交无效数据(如空名称)

操作步骤:

  1. 创建知识库时,名称为空
  2. 点击创建

预期结果:

  • ✅ 显示错误通知:"请求错误 - [后端返回的具体验证错误]"
  • ✅ 自动提取FastAPI的detail字段
  • ✅ 显示具体的验证错误信息

验证点:

  • 错误消息准确
  • 提取后端错误信息

3. 认证错误(401)

模拟方法:

  • Token过期
  • 或手动删除Token

操作步骤:

  1. 删除localStorage中的token
  2. 尝试操作

预期结果:

  • ✅ 显示错误通知:"认证失败 - 登录已过期,请重新登录"
  • ✅ 可能触发自动Token刷新
  • ✅ 如果刷新失败,跳转到登录页

验证点:

  • 错误消息友好
  • Token刷新机制
  • 自动跳转登录

4. 权限错误(403)

模拟方法:

  • 使用无权限的Token

操作步骤:

  1. 使用无权限账户
  2. 尝试删除知识库

预期结果:

  • ✅ 显示错误通知:"权限不足 - 没有权限执行此操作"
  • ✅ 操作被阻止

验证点:

  • 错误消息准确
  • 操作被阻止

5. 服务器错误(500)

模拟方法:

  • 后端返回500错误

操作步骤:

  1. 触发服务器错误

预期结果:

  • ✅ 显示错误通知:"服务器错误 - 服务器错误,请稍后重试"
  • ✅ 提供重试按钮(如果支持)

验证点:

  • 错误消息友好
  • 重试功能(如果实现)

6. 文件格式错误

操作步骤:

  1. 选择不支持的文件格式
  2. 尝试上传

预期结果:

  • ✅ 显示警告通知:"文件格式不支持 - 请选择 PDF, TXT, MD, PPT, Excel, DOCX, HTML 格式的文件"
  • ✅ 黄色背景,AlertTriangle图标
  • ✅ 4秒后自动关闭

验证点:

  • 警告消息清晰
  • 列出支持的格式

7. 批量上传部分失败

操作步骤:

  1. 选择多个文件(部分格式不支持)
  2. 批量上传

预期结果:

  • ✅ 显示警告通知:"文件格式不支持"
  • ✅ 只上传有效文件
  • ✅ 显示上传结果汇总

验证点:

  • 部分文件处理
  • 汇总信息准确

🔄 重试场景测试

1. 带重试的操作

操作步骤:

  1. 触发一个可能失败的操作(如上传大文件)
  2. 如果失败,点击"重试"按钮

预期结果:

  • ✅ 错误通知显示"重试"按钮
  • ✅ 点击重试后重新执行操作
  • ✅ 重试成功显示成功通知
  • ✅ 重试失败显示新的错误通知(减少重试次数)

验证点:

  • 重试按钮显示
  • 重试功能正常
  • 重试次数限制

🎨 UI/UX 测试

1. 通知显示

测试点:

  • 通知从右侧滑入
  • 动画流畅
  • 不同类型的通知有不同的颜色和图标
  • 通知位置正确(右上角)
  • 多个通知垂直排列

2. 通知关闭

测试点:

  • 自动关闭(带进度条)
  • 手动关闭(点击X按钮)
  • 点击通知内容不关闭
  • 关闭动画流畅

3. 通知队列

测试点:

  • 最多显示50条通知
  • 相同通知5秒内不重复
  • 高优先级通知优先显示
  • 通知按时间顺序排列

4. 通知样式

测试点:

  • 成功通知:绿色背景,CheckCircle图标
  • 错误通知:红色背景,AlertCircle图标
  • 警告通知:黄色背景,AlertTriangle图标
  • 信息通知:蓝色背景,Info图标

📊 性能测试

1. 大量通知

测试步骤:

  1. 快速触发多个操作(成功/失败)
  2. 观察通知队列表现

预期结果:

  • ✅ 通知队列正常工作
  • ✅ 不会造成性能问题
  • ✅ UI响应流畅

2. 长时间运行

测试步骤:

  1. 长时间使用应用
  2. 观察通知系统表现

预期结果:

  • ✅ 通知队列不会无限增长
  • ✅ 内存使用正常
  • ✅ 没有内存泄漏

🧪 边界情况测试

1. 空错误消息

测试步骤:

  1. 触发一个返回空错误消息的错误

预期结果:

  • ✅ 显示默认错误消息:"操作失败"
  • ✅ 不会显示空白通知

2. 超长错误消息

测试步骤:

  1. 触发一个返回超长错误消息的错误

预期结果:

  • ✅ 错误消息正确显示
  • ✅ 通知UI不会破坏
  • ✅ 可以滚动查看(如果需要)

3. 特殊字符

测试步骤:

  1. 错误消息包含特殊字符(HTML、脚本等)

预期结果:

  • ✅ 特殊字符正确转义
  • ✅ 不会造成XSS攻击
  • ✅ 显示正常

📝 测试检查清单

功能测试

  • 成功通知显示
  • 错误通知显示
  • 警告通知显示
  • 信息通知显示
  • 通知自动关闭
  • 通知手动关闭
  • 重试功能
  • 操作按钮

UI测试

  • 通知样式正确
  • 动画流畅
  • 响应式设计
  • 多通知排列

错误处理测试

  • 网络错误
  • 验证错误
  • 认证错误
  • 权限错误
  • 服务器错误
  • 文件格式错误

性能测试

  • 大量通知
  • 长时间运行
  • 内存使用

边界测试

  • 空错误消息
  • 超长错误消息
  • 特殊字符

🎯 测试结果记录

测试日期: ___________

测试人员: ___________

测试场景 状态 备注
创建知识库成功
上传文件成功
URL导入成功
批量上传成功
网络错误
验证错误
认证错误
权限错误
服务器错误
文件格式错误
重试功能
UI显示
通知队列
性能测试

🔧 已知问题

待修复

  • 问题1:描述
  • 问题2:描述

待优化

  • 优化1:描述
  • 优化2:描述

📈 测试总结

通过率: ___%

主要问题:

1. 2.

建议改进:

1. 2.