feat:聊天信息支持 文件、图片、语音发送,增加一键启停脚本

This commit is contained in:
bujinyuan
2026-04-20 11:53:27 +08:00
parent 1a5aac9998
commit 0c1540bdee
116 changed files with 20277 additions and 144 deletions

103
test-report-phase2d.md Normal file
View File

@@ -0,0 +1,103 @@
# Phase 2d Playwright 端到端测试报告
> 最后更新2026-04-17
## 测试概述
| 项目 | 内容 |
|---|---|
| 测试阶段 | Phase 2d — 消息类型扩展 |
| 测试工具 | Playwright MCP Browser Automation |
| 测试范围 | 前台用户端 + 后台管理端 |
| 测试日期 | 2026-04-17 |
| 测试结果 | ✅ 全部通过7/7 测试项) |
## 基础环境
| 服务 | 地址 | 状态 |
|---|---|---|
| Go 后端 | http://localhost:8080 | ✅ 运行中 |
| 前台用户端 | http://localhost:5173 | ✅ 运行中 |
| 后台管理端 | http://localhost:3100 | ✅ 运行中 |
| PostgreSQL | localhost:5432 | ✅ Docker 运行中 |
| Redis | localhost:6379 | ✅ Docker 运行中 |
| MinIO | localhost:9000 | ✅ Docker 运行中 |
## 测试结果明细
### 1. 前台用户端 — 单聊输入栏改造 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 语音切换按钮存在 | ✅ | voice-toggle-btn 正确渲染 |
| 文本输入模式 | ✅ | 默认显示文本输入框 |
| 语音模式切换 | ✅ | 点击切换为"按住 说话" |
| 键盘模式回切 | ✅ | 再次点击恢复文本输入 |
| "+" 按钮存在 | ✅ | more-btn 正确渲染 |
| MorePanel 展开 | ✅ | 点击展开,显示"图片"和"文件"选项 |
### 2. 前台用户端 — 群聊输入栏改造 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 群聊输入栏结构 | ✅ | 与单聊一致的改造结构 |
| 语音/键盘切换 | ✅ | 功能正常 |
| MorePanel | ✅ | 功能正常 |
### 3. 管理端消息列表 — 基础展示 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 侧边栏菜单 | ✅ | "消息管理"含"消息列表"和"消息统计"子菜单 |
| 筛选区域 | ✅ | 关键词、类型、状态、发送者ID、时间范围 |
| 表格列头 | ✅ | ID、发送者、类型、内容、状态、会话ID、发送时间、操作 |
| 消息数据 | ✅ | 正确显示发送者头像+昵称+ID消息类型标签内容预览 |
| 分页 | ✅ | 共 141 条20条/页8页支持跳转 |
| 操作按钮 | ✅ | 详情、撤回、删除(已撤回消息无撤回按钮) |
### 4. 管理端消息列表 — 筛选功能 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 关键词搜索 | ✅ | 搜索"测试"→ 141→31 条 |
| 类型筛选 | ✅ | 下拉含文本/图片/语音/文件/系统,选"系统"→15条 |
| 发送者ID筛选 | ✅ | 输入 15 → 4 条(周和智的消息) |
| 重置 | ✅ | 点击重置回到 141 条 |
### 5. 管理端消息列表 — 操作功能 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 详情弹窗 | ✅ | 显示发送者头像+昵称、状态标签、ID/发送者ID/会话ID、消息类型、发送时间、完整内容 |
| 撤回确认弹窗 | ✅ | 显示"确定要撤回消息 #125 吗?"+ 取消/确定撤回按钮 |
| 撤回执行 | ✅ | 撤回后内容变为"[已撤回]",状态变为"已撤回",撤回按钮消失 |
| 删除确认弹窗 | ✅ | 显示"确定要删除消息 #125 吗?"+ 取消/确定删除按钮 |
| 删除执行 | ✅ | 删除操作成功执行,弹窗关闭 |
### 6. 管理端消息统计 — 基础数据 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 顶部卡片 | ✅ | 消息总数: 141今日消息: 4 |
| 时间切换 | ✅ | "近 7 天"/"近 30 天" 单选按钮正常切换 |
### 7. 管理端消息统计 — 图表渲染 ✅
| 测试项 | 结果 | 说明 |
|---|---|---|
| 消息趋势(线图) | ✅ | 正确渲染04-17 显示 4 条消息tooltip 正常 |
| 类型分布(饼图) | ✅ | 显示文本和系统消息两种类型分布 |
| 活跃用户 Top 10条形图 | ✅ | 显示卜锦元(最活跃)和段凌云 |
| 活跃群组 Top 10条形图 | ✅ | 空数据时正常渲染(近期无群聊消息属正常数据表现) |
## 已知限制
1. **富媒体消息测试**:图片/语音/文件上传功能需要真实的文件选择和设备权限如麦克风Playwright 浏览器自动化无法完全模拟这些原生 API`uni.chooseImage``uni.getRecorderManager`),此部分需手动测试
2. **WebSocket 实时推送测试**:管理端撤回消息后的 WS 推送通知需要多浏览器窗口同时在线的场景,单窗口 Playwright 测试无法覆盖
## 结论
Phase 2d 的核心功能均通过端到端测试验证:
- 前台用户端的输入栏改造(语音切换 + MorePanelUI 正常
- 管理端消息列表的筛选、详情、撤回、删除功能完整
- 管理端消息统计的 ECharts 图表渲染和时间切换正常