feat: 完善IM后台Kafka与组织架构管理
This commit is contained in:
@@ -0,0 +1,418 @@
|
||||
# IM 后台菜单覆盖测试文档
|
||||
|
||||
## 1. 测试范围
|
||||
|
||||
本文档用于覆盖 IM 后台菜单从「组织架构」开始,沿左侧菜单向下逐个页面点击验证。
|
||||
|
||||
当前覆盖菜单顺序:
|
||||
|
||||
1. 组织架构
|
||||
2. 文件治理
|
||||
3. 注册邀请码
|
||||
4. 文件策略
|
||||
5. 通知模板
|
||||
6. 工作台配置
|
||||
7. 外部服务配置
|
||||
8. 版本更新
|
||||
9. 举报原因
|
||||
10. 总经理信箱配置
|
||||
11. 意见反馈配置
|
||||
12. 任务看板
|
||||
13. Kafka 命令
|
||||
14. Kafka 死信
|
||||
15. Kafka 审计事件
|
||||
|
||||
## 2. 测试环境
|
||||
|
||||
| 项目 | 地址 |
|
||||
| --- | --- |
|
||||
| 前端 | `http://127.0.0.1:8001/` |
|
||||
| 后端 | `http://127.0.0.1:8000/admin` |
|
||||
| 登录账号 | 使用具备 IM 管理权限的后台账号 |
|
||||
| 浏览器 | Chrome,打开 DevTools Network 和 Console |
|
||||
|
||||
## 3. 通用检查项
|
||||
|
||||
每进入一个菜单页面,都先执行以下检查:
|
||||
|
||||
| 编号 | 检查项 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| COMMON-001 | 点击左侧菜单 | URL、页签、面包屑、页面标题正确变化 | 待测 |
|
||||
| COMMON-002 | 页面首次加载 | 无白屏,无永久 loading,无明显样式错乱 | 待测 |
|
||||
| COMMON-003 | Console | 无新的 JS Error,例如组件方法不存在、字典方法不存在 | 待测 |
|
||||
| COMMON-004 | Network | 页面主列表接口 HTTP 200,业务响应 `code=0` | 待测 |
|
||||
| COMMON-005 | 查询按钮 | 点击后列表刷新,请求参数包含搜索表单值 | 待测 |
|
||||
| COMMON-006 | 重置按钮 | 搜索条件清空,列表回到默认查询 | 待测 |
|
||||
| COMMON-007 | 展开/收起 | 搜索区域展开、收起正常,不遮挡表格 | 待测 |
|
||||
| COMMON-008 | 表格刷新图标 | 点击后重新请求列表接口 | 待测 |
|
||||
| COMMON-009 | 表格密度/列设置 | 可打开设置,切换后表格仍正常显示 | 待测 |
|
||||
| COMMON-010 | 分页 | 切换页码和每页数量,请求参数正确,页面不报错 | 待测 |
|
||||
|
||||
说明:涉及删除、撤销、重放、清理等副作用操作时,优先使用测试数据。没有测试数据时,至少验证弹窗、参数校验、取消流程;正式执行前确认不会影响线上有效数据。
|
||||
|
||||
## 4. 组织架构
|
||||
|
||||
菜单路径:`IM管理 / 组织架构`
|
||||
|
||||
主要区域:部门列表、成员列表。
|
||||
|
||||
### 4.1 搜索与列表
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| ORG-001 | 打开「组织架构」 | 页面标题显示「组织架构」,部门列表和成员列表正常渲染 | 待测 |
|
||||
| ORG-002 | 选择租户后查询部门 | 部门列表请求成功,显示部门 ID、部门名称、状态、成员数等字段 | 待测 |
|
||||
| ORG-003 | 输入部门名称、状态后点击查询 | 部门列表按条件刷新 | 待测 |
|
||||
| ORG-004 | 输入成员关键词、在职状态后点击查询 | 成员列表按条件刷新 | 待测 |
|
||||
| ORG-005 | 点击部门行「成员」 | 成员列表切换到当前部门范围,添加成员按钮可用 | 待测 |
|
||||
|
||||
### 4.2 部门按钮
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| ORG-010 | 点击「新增部门」 | 打开部门编辑弹窗 | 待测 |
|
||||
| ORG-011 | 新增部门弹窗点击「取消」 | 弹窗关闭,列表不刷新或数据不变化 | 待测 |
|
||||
| ORG-012 | 新增部门弹窗直接点击「保存」 | 必填项校验正常展示 | 待测 |
|
||||
| ORG-013 | 填写部门名称、上级部门、排序、状态后点击「保存」 | 保存成功,部门列表刷新,新部门出现 | 待测 |
|
||||
| ORG-014 | 点击部门行「编辑」 | 打开编辑弹窗,已有数据正确回填 | 待测 |
|
||||
| ORG-015 | 修改部门信息后点击「保存」 | 保存成功,列表展示新值 | 待测 |
|
||||
| ORG-016 | 点击部门行「删除」再点取消 | 弹窗关闭,部门不删除 | 待测 |
|
||||
| ORG-017 | 点击部门行「删除」并确认 | 删除成功,列表刷新;有子部门或成员时应给出清晰错误 | 待测 |
|
||||
| ORG-018 | 点击「导出部门」 | 触发文件下载,导出条件与当前查询一致 | 待测 |
|
||||
|
||||
### 4.3 成员按钮
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| ORG-020 | 未选择部门时观察「添加成员」 | 按钮禁用或提示先选择部门 | 待测 |
|
||||
| ORG-021 | 选择部门后点击「添加成员」 | 打开成员编辑弹窗,部门信息默认带入 | 待测 |
|
||||
| ORG-022 | 成员弹窗直接点击「保存」 | 必填项校验正常展示 | 待测 |
|
||||
| ORG-023 | 填写用户 ID、岗位、排序、可联系等信息后保存 | 保存成功,成员列表刷新 | 待测 |
|
||||
| ORG-024 | 点击成员行「编辑」 | 打开编辑弹窗,成员信息正确回填 | 待测 |
|
||||
| ORG-025 | 修改成员信息后保存 | 保存成功,列表展示新值 | 待测 |
|
||||
| ORG-026 | 点击成员行「移除」再取消 | 弹窗关闭,成员仍保留 | 待测 |
|
||||
| ORG-027 | 点击成员行「移除」并确认 | 移除成功,成员列表刷新 | 待测 |
|
||||
| ORG-028 | 点击「导出成员」 | 触发文件下载,导出条件与当前查询一致 | 待测 |
|
||||
|
||||
## 5. 文件治理
|
||||
|
||||
菜单路径:`IM管理 / 文件治理`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| FILE-001 | 打开页面 | 文件列表正常展示,包含文件 ID、状态、用途、上传用户、MIME、大小、引用数等字段 | 待测 |
|
||||
| FILE-002 | 按租户、文件 ID、上传用户、状态、用途、MIME、Topic、更新时间查询 | 列表按条件刷新 | 待测 |
|
||||
| FILE-003 | 点击行操作「详情」 | 打开详情弹窗,展示文件基础信息和引用列表 | 待测 |
|
||||
| FILE-004 | 详情弹窗关闭 | 弹窗正常关闭,列表状态不丢失 | 待测 |
|
||||
| FILE-005 | 点击行操作「隔离」再取消 | 确认框正常,取消后文件状态不变 | 待测 |
|
||||
| FILE-006 | 点击行操作「隔离」并确认 | 文件状态变为隔离或列表刷新后状态正确 | 待测 |
|
||||
| FILE-007 | 点击行操作「删除」再取消 | 确认框正常,取消后文件不删除 | 待测 |
|
||||
| FILE-008 | 点击行操作「删除」并确认 | 删除成功,列表刷新 | 待测 |
|
||||
| FILE-009 | 点击「清理孤儿文件」再取消 | 确认框正常,取消后不触发清理 | 待测 |
|
||||
| FILE-010 | 点击「清理孤儿文件」并确认 | 清理请求成功,页面给出成功或结果提示 | 待测 |
|
||||
|
||||
## 6. 注册邀请码
|
||||
|
||||
菜单路径:`IM管理 / 注册邀请码`
|
||||
|
||||
实际菜单路由:`/#/im/registrationInvite`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| INVITE-001 | 打开页面 | 邀请码列表正常展示,包含租户、邀请码、状态、批次 ID、到期时间、使用次数等字段 | 待测 |
|
||||
| INVITE-002 | 平台管理员不选择租户点击「添加」 | 提示先选择租户 | 待测 |
|
||||
| INVITE-003 | 选择租户后点击「添加」 | 打开生成邀请码弹窗 | 待测 |
|
||||
| INVITE-004 | 生成弹窗点击「取消」 | 弹窗关闭,列表不变化 | 待测 |
|
||||
| INVITE-005 | 生成弹窗清空到期时间后点击「确认」 | 表单校验提示请选择到期时间 | 待测 |
|
||||
| INVITE-006 | 填写到期时间、备注后点击「确认」 | 生成成功,列表刷新并出现新邀请码 | 待测 |
|
||||
| INVITE-007 | 点击「批量生成」 | 打开批量生成弹窗,包含生成数量、到期时间、备注 | 待测 |
|
||||
| INVITE-008 | 批量生成数量小于 1 或大于 1000 | 表单校验拦截 | 待测 |
|
||||
| INVITE-009 | 输入合法数量后确认 | 批量生成成功,列表出现同一批次的邀请码 | 待测 |
|
||||
| INVITE-010 | 按邀请码、状态、批次 ID、创建人、创建时间、到期时间查询 | 列表按条件刷新 | 待测 |
|
||||
| INVITE-011 | 点击行操作「批次」 | 打开批次详情弹窗,展示总数、有效、撤销、过期、使用次数和明细 | 待测 |
|
||||
| INVITE-012 | 点击有效邀请码行操作「撤销」再取消 | 确认框正常,取消后状态不变 | 待测 |
|
||||
| INVITE-013 | 点击有效邀请码行操作「撤销」并确认 | 撤销成功,状态变为已撤销 | 待测 |
|
||||
| INVITE-014 | 点击有效批次行操作「撤销批次」再取消 | 确认框正常,取消后批次状态不变 | 待测 |
|
||||
| INVITE-015 | 点击有效批次行操作「撤销批次」并确认 | 批次内有效邀请码变为已撤销 | 待测 |
|
||||
| INVITE-016 | 点击「导出」 | 下载 CSV 文件,内容与当前筛选条件一致 | 待测 |
|
||||
|
||||
## 7. 文件策略
|
||||
|
||||
菜单路径:`IM管理 / 文件策略`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| FILE-POLICY-001 | 打开页面 | 策略列表正常展示,包含用途、大小上限、保留天数、自动清理、病毒扫描、MIME 白名单等字段 | 待测 |
|
||||
| FILE-POLICY-002 | 按租户、用途、自动清理、病毒扫描查询 | 列表按条件刷新 | 待测 |
|
||||
| FILE-POLICY-003 | 点击行操作「编辑」 | 打开编辑弹窗,字段正确回填 | 待测 |
|
||||
| FILE-POLICY-004 | 编辑弹窗点击「取消」 | 弹窗关闭,数据不变化 | 待测 |
|
||||
| FILE-POLICY-005 | 修改大小上限、保留天数、开关、MIME 白名单后保存 | 保存成功,列表刷新并展示新值 | 待测 |
|
||||
| FILE-POLICY-006 | 输入非法大小或保留天数后保存 | 表单校验或后端错误提示清晰 | 待测 |
|
||||
|
||||
## 8. 通知模板
|
||||
|
||||
菜单路径:`IM管理 / 通知模板`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| NOTIFY-001 | 打开页面 | 模板列表正常展示,包含场景、状态、站内、Push、短信、标题模板、内容模板等字段 | 待测 |
|
||||
| NOTIFY-002 | 按租户、场景、状态查询 | 列表按条件刷新 | 待测 |
|
||||
| NOTIFY-003 | 点击行操作「编辑」 | 打开编辑弹窗,模板字段正确回填 | 待测 |
|
||||
| NOTIFY-004 | 编辑弹窗点击「取消」 | 弹窗关闭,数据不变化 | 待测 |
|
||||
| NOTIFY-005 | 修改标题模板、内容模板、站内/Push/短信开关后保存 | 保存成功,列表刷新并展示新值 | 待测 |
|
||||
| NOTIFY-006 | 清空必填字段后保存 | 表单校验或后端错误提示清晰 | 待测 |
|
||||
|
||||
## 9. 工作台配置
|
||||
|
||||
菜单路径:`IM管理 / 工作台配置`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| WORKBENCH-001 | 打开页面 | 工作台模块列表正常展示,包含编码、名称、路由、排序、图标 ID、角标 Key、状态、权限等字段 | 待测 |
|
||||
| WORKBENCH-002 | 按租户、编码、名称、状态查询 | 列表按条件刷新 | 待测 |
|
||||
| WORKBENCH-003 | 点击「新增模块」 | 打开模块编辑弹窗 | 待测 |
|
||||
| WORKBENCH-004 | 新增弹窗点击「取消」 | 弹窗关闭,列表不变化 | 待测 |
|
||||
| WORKBENCH-005 | 新增弹窗直接保存 | 必填项校验正常展示 | 待测 |
|
||||
| WORKBENCH-006 | 填写编码、名称、路由、排序、状态等信息后保存 | 保存成功,列表刷新 | 待测 |
|
||||
| WORKBENCH-007 | 点击行操作「编辑」 | 打开编辑弹窗,字段正确回填 | 待测 |
|
||||
| WORKBENCH-008 | 修改模块信息后保存 | 保存成功,列表展示新值 | 待测 |
|
||||
| WORKBENCH-009 | 点击行操作「禁用」再取消 | 确认框正常,取消后状态不变 | 待测 |
|
||||
| WORKBENCH-010 | 点击行操作「禁用」并确认 | 禁用成功,列表刷新后状态正确 | 待测 |
|
||||
| WORKBENCH-011 | 点击「保存排序」 | 排序保存成功;列表刷新后顺序保持一致 | 待测 |
|
||||
|
||||
## 10. 外部服务配置
|
||||
|
||||
菜单路径:`IM管理 / 外部服务配置`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| EXT-CONFIG-001 | 打开页面 | 配置列表正常展示,包含服务、服务商、端点、启用、配置状态、敏感配置、检查结果等字段 | 待测 |
|
||||
| EXT-CONFIG-002 | 按租户、服务、服务商、启用状态查询 | 列表按条件刷新 | 待测 |
|
||||
| EXT-CONFIG-003 | 点击行操作「编辑」 | 打开编辑弹窗,字段正确回填 | 待测 |
|
||||
| EXT-CONFIG-004 | 编辑弹窗切换「启用」开关 | 开关状态可变更,保存前不应提前提交 | 待测 |
|
||||
| EXT-CONFIG-005 | 修改服务商、端点、配置内容后保存 | 保存成功,列表刷新并展示新值 | 待测 |
|
||||
| EXT-CONFIG-006 | 点击行操作「检查」再取消 | 确认框正常,取消后不触发检查 | 待测 |
|
||||
| EXT-CONFIG-007 | 点击行操作「检查」并确认 | 检查请求成功,检查结果和检查时间刷新 | 待测 |
|
||||
|
||||
## 11. 版本更新
|
||||
|
||||
菜单路径:`IM管理 / 版本更新`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| RELEASE-001 | 打开页面 | 版本策略列表正常展示,包含平台、渠道、最新版本、最低支持、更新类型、下载地址等字段 | 待测 |
|
||||
| RELEASE-002 | 按租户、平台、渠道查询 | 列表按条件刷新 | 待测 |
|
||||
| RELEASE-003 | 点击「新增策略」 | 打开策略编辑弹窗 | 待测 |
|
||||
| RELEASE-004 | 新增弹窗直接保存 | 必填项校验正常展示 | 待测 |
|
||||
| RELEASE-005 | 填写平台、渠道、版本号、更新类型、地址、发布时间后保存 | 保存成功,列表刷新 | 待测 |
|
||||
| RELEASE-006 | 点击行操作「编辑」 | 打开编辑弹窗,字段正确回填 | 待测 |
|
||||
| RELEASE-007 | 修改版本策略后保存 | 保存成功,列表展示新值 | 待测 |
|
||||
| RELEASE-008 | 输入非法版本号或 URL 后保存 | 表单校验或后端错误提示清晰 | 待测 |
|
||||
|
||||
## 12. 举报原因
|
||||
|
||||
菜单路径:`IM管理 / 举报原因`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| ABUSE-001 | 打开页面 | 原因列表正常展示,包含对象、编码、文案、要求描述、允许证据、排序、状态等字段 | 待测 |
|
||||
| ABUSE-002 | 按租户、对象、编码、状态查询 | 列表按条件刷新 | 待测 |
|
||||
| ABUSE-003 | 点击「新增原因」 | 打开原因编辑弹窗 | 待测 |
|
||||
| ABUSE-004 | 新增弹窗直接保存 | 必填项校验正常展示 | 待测 |
|
||||
| ABUSE-005 | 填写对象、编码、文案、排序、状态等信息后保存 | 保存成功,列表刷新 | 待测 |
|
||||
| ABUSE-006 | 点击行操作「编辑」 | 打开编辑弹窗,字段正确回填 | 待测 |
|
||||
| ABUSE-007 | 修改原因配置后保存 | 保存成功,列表展示新值 | 待测 |
|
||||
| ABUSE-008 | 点击行操作「禁用」再取消 | 确认框正常,取消后状态不变 | 待测 |
|
||||
| ABUSE-009 | 点击行操作「禁用」并确认 | 禁用成功,列表刷新后状态正确 | 待测 |
|
||||
|
||||
## 13. 总经理信箱配置
|
||||
|
||||
菜单路径:`IM管理 / 总经理信箱配置`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| MAILBOX-001 | 打开页面 | 配置表单正常展示,租户选择框可用 | 待测 |
|
||||
| MAILBOX-002 | 选择租户 | 自动加载该租户信箱配置 | 待测 |
|
||||
| MAILBOX-003 | 点击「刷新」 | 当前租户配置重新加载,表单无异常 | 待测 |
|
||||
| MAILBOX-004 | 未选择租户时观察「保存」 | 按钮禁用或提示先选择租户 | 待测 |
|
||||
| MAILBOX-005 | 修改启用状态、接收人、处理策略等配置后点击「保存」 | 保存成功,再次刷新后配置保持一致 | 待测 |
|
||||
| MAILBOX-006 | 输入非法配置后保存 | 表单校验或后端错误提示清晰 | 待测 |
|
||||
|
||||
## 14. 意见反馈配置
|
||||
|
||||
菜单路径:`IM管理 / 意见反馈配置`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| FEEDBACK-001 | 打开页面 | 配置表单正常展示,租户选择框可用 | 待测 |
|
||||
| FEEDBACK-002 | 选择租户 | 自动加载该租户反馈配置 | 待测 |
|
||||
| FEEDBACK-003 | 点击「刷新」 | 当前租户配置重新加载,表单无异常 | 待测 |
|
||||
| FEEDBACK-004 | 未选择租户时观察「保存」 | 按钮禁用或提示先选择租户 | 待测 |
|
||||
| FEEDBACK-005 | 修改启用状态、分类、处理人、限制策略等配置后点击「保存」 | 保存成功,再次刷新后配置保持一致 | 待测 |
|
||||
| FEEDBACK-006 | 输入非法配置后保存 | 表单校验或后端错误提示清晰 | 待测 |
|
||||
|
||||
## 15. 任务看板
|
||||
|
||||
菜单路径:`IM管理 / 任务看板`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| TASK-001 | 打开页面 | 看板列表正常展示,包含租户、企业码、状态、DB、业务待投递、业务失败、群待投递、群失败、孤儿文件、待物理清理等字段 | 待测 |
|
||||
| TASK-002 | 按租户、状态查询 | 列表按条件刷新 | 待测 |
|
||||
| TASK-003 | 查看建议动作字段 | 异常租户展示可理解的建议动作;正常租户展示正常或为空 | 待测 |
|
||||
| TASK-004 | 刷新表格 | 统计数据重新加载,无接口报错 | 待测 |
|
||||
|
||||
## 16. Kafka 命令
|
||||
|
||||
菜单路径:`IM管理 / Kafka命令`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| KAFKA-CMD-001 | 打开页面 | 命令列表正常展示,包含租户、命令 ID、事件类型、业务类型、业务 ID、状态、错误码、消息等字段 | 待测 |
|
||||
| KAFKA-CMD-002 | 按租户、命令 ID、事件 ID、事件类型、业务 ID、状态、创建时间查询 | 列表按条件刷新 | 待测 |
|
||||
| KAFKA-CMD-003 | 点击「发送缓存失效测试」 | 请求成功,新增一条缓存失效命令或页面提示成功 | 待测 |
|
||||
| KAFKA-CMD-004 | 点击「发送工作台测试事件」 | 请求成功,新增一条工作台测试事件命令或页面提示成功 | 待测 |
|
||||
| KAFKA-CMD-005 | 点击行操作「详情」 | 打开详情弹窗,展示命令 payload、结果、错误原因等信息 | 待测 |
|
||||
| KAFKA-CMD-006 | 详情弹窗点击「关闭」 | 弹窗正常关闭 | 待测 |
|
||||
| KAFKA-CMD-007 | 发送测试事件后等待消费结果 | 状态从待发送/已发送变为成功或失败,失败时错误信息可读 | 待测 |
|
||||
|
||||
## 17. Kafka 死信
|
||||
|
||||
菜单路径:`IM管理 / Kafka死信`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| DEAD-001 | 打开页面 | 死信列表正常展示,包含死信 ID、事件 ID、来源 Topic、消费组、事件类型、业务类型、业务 ID、状态等字段 | 待测 |
|
||||
| DEAD-002 | 按租户、状态、事件类型、业务类型、业务 ID 查询 | 列表按条件刷新 | 待测 |
|
||||
| DEAD-003 | 点击行操作「详情」 | 打开详情弹窗,展示死信 payload、错误原因、处理信息 | 待测 |
|
||||
| DEAD-004 | 详情弹窗点击「关闭」 | 弹窗正常关闭 | 待测 |
|
||||
| DEAD-005 | 详情弹窗点击「忽略」 | 操作成功,状态变为已忽略或列表刷新后状态正确 | 待测 |
|
||||
| DEAD-006 | 详情弹窗点击「标记已处理」 | 操作成功,状态变为已处理 | 待测 |
|
||||
| DEAD-007 | 详情弹窗点击「重放」 | 操作成功,重放次数增加,状态或处理结果正确更新 | 待测 |
|
||||
| DEAD-008 | 对已处理、已忽略死信重复操作 | 系统应拦截或给出清晰提示,不出现脏状态 | 待测 |
|
||||
|
||||
## 18. Kafka 审计事件
|
||||
|
||||
菜单路径:`IM管理 / Kafka审计事件`
|
||||
|
||||
| 编号 | 操作 | 预期结果 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| KAFKA-AUDIT-001 | 打开页面 | 审计事件列表正常展示,包含租户、事件 ID、事件类型、动作、资源、资源 ID、操作者、结果等字段 | 待测 |
|
||||
| KAFKA-AUDIT-002 | 按租户编码、事件 ID、事件类型、动作、资源、资源 ID、结果、接收时间查询 | 列表按条件刷新 | 待测 |
|
||||
| KAFKA-AUDIT-003 | 点击行操作「详情」 | 打开详情弹窗,展示事件详情、请求上下文、结果信息 | 待测 |
|
||||
| KAFKA-AUDIT-004 | 详情弹窗点击「关闭」 | 弹窗正常关闭 | 待测 |
|
||||
|
||||
## 19. 测试数据建议
|
||||
|
||||
| 数据类型 | 建议准备 |
|
||||
| --- | --- |
|
||||
| 租户 | 至少 1 个正常租户,具备独立业务库 |
|
||||
| 组织架构 | 至少 1 个根部门、1 个子部门、2 个用户成员 |
|
||||
| 文件治理 | 至少 1 个正常文件、1 个可隔离文件、1 个孤儿文件 |
|
||||
| 注册邀请码 | 至少 1 个有效邀请码、1 个过期邀请码、1 个批次邀请码 |
|
||||
| Kafka | Kafka、消费者、IM Server 正常运行;准备 1 条可产生成功结果的命令和 1 条可产生死信的命令 |
|
||||
| 配置类 | 文件策略、通知模板、工作台、外部服务、版本更新、举报原因均有初始数据 |
|
||||
|
||||
## 20. 缺陷记录模板
|
||||
|
||||
| 缺陷编号 | 菜单 | 操作步骤 | 实际结果 | 预期结果 | Console/Network 信息 | 严重级别 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| BUG-001 | | | | | | | 待处理 |
|
||||
|
||||
## 21. 第一轮执行记录
|
||||
|
||||
执行时间:2026-09-03 15:16 - 15:22
|
||||
|
||||
执行环境:
|
||||
|
||||
| 项目 | 值 |
|
||||
| --- | --- |
|
||||
| 前端 | `http://127.0.0.1:8001/` |
|
||||
| 后端 | Docker 容器 `im-local-admin`,端口 `8000` |
|
||||
| MySQL | Docker 容器 `relaxed_cori`,库 `hotgo`、`tinode`、`tinode_test` |
|
||||
| Redis | Docker 容器 `brave_blackburn` |
|
||||
| Kafka | Docker 容器 `kafka` |
|
||||
|
||||
本轮说明:
|
||||
|
||||
1. 从左侧菜单「组织架构」开始,按菜单顺序逐页点击。
|
||||
2. 对查询、重置、展开、刷新、新增、编辑、详情等非破坏性按钮进行了点击验证。
|
||||
3. 对删除、隔离、撤销、禁用、重放等有副作用的按钮,本轮只验证入口和取消流程,不确认执行。
|
||||
4. 「收起」按钮在自动化脚本里先于「展开」检测,产生过误报,本轮不作为缺陷记录。
|
||||
5. 「注册邀请码」菜单点击正常,真实路由为 `/#/im/registrationInvite`;直接访问 `/#/im/registrationInvite/index` 会进入 ErrorPage,测试文档已修正。
|
||||
|
||||
### 21.1 页面通过项
|
||||
|
||||
| 菜单 | 本轮结果 |
|
||||
| --- | --- |
|
||||
| 组织架构 | 页面可打开,查询/重置/展开/新增部门可点击;添加成员因未先选择部门处于禁用,符合预期 |
|
||||
| 文件治理 | 页面可打开,查询/重置/展开/详情可点击;列表有数据 |
|
||||
| 注册邀请码 | 通过左侧菜单可打开,查询/重置/展开/添加/批量生成/导出可见;列表有 2 条历史数据 |
|
||||
| 工作台配置 | 页面可打开,查询/重置/展开/新增模块/编辑可点击;禁用弹窗可打开并取消 |
|
||||
| 版本更新 | 页面可打开,查询/重置/展开/新增策略/编辑可点击;列表有数据 |
|
||||
| 举报原因 | 页面可打开,查询/重置/展开/新增原因/编辑可点击;禁用弹窗可打开并取消 |
|
||||
| 总经理信箱配置 | 页面可打开,保存/刷新按钮可见,刷新可点击 |
|
||||
| 意见反馈配置 | 页面可打开,保存/刷新按钮可见,刷新可点击 |
|
||||
| 任务看板 | 页面可打开,查询/重置/展开可点击 |
|
||||
|
||||
### 21.2 本轮发现的问题
|
||||
|
||||
| 缺陷编号 | 菜单 | 操作步骤 | 实际结果 | 预期结果 | 证据 | 严重级别 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| BUG-IM-001 | 文件策略 | 点击「IM管理 / 文件策略」,或点击查询/重置 | 页面 Console 报 `检查IM文件策略失败`,列表无法加载,行操作「编辑」不可测 | 文件策略列表应正常加载,缺省策略应自动初始化 | 后端日志:`SELECT COUNT(1) FROM im_file_policy ... Error 1146: Table 'hotgo.im_file_policy' doesn't exist`;代码位置:`server/internal/logic/sys/im_file_policy.go:128` | P0 | 待处理 |
|
||||
| BUG-IM-002 | 通知模板 | 点击「IM管理 / 通知模板」,或点击查询/重置 | 页面 Console 报 `检查IM通知模板失败,请稍后重试!`,列表无法加载,行操作「编辑」不可测 | 通知模板列表应正常加载,缺省模板应自动初始化 | 后端日志:`SELECT COUNT(1) FROM im_notification_template ... Error 1146: Table 'hotgo.im_notification_template' doesn't exist`;代码位置:`server/internal/logic/sys/im_notification.go:123` | P0 | 待处理 |
|
||||
| BUG-IM-003 | 外部服务配置 | 点击「IM管理 / 外部服务配置」,或点击查询/重置 | 页面 Console 报 `初始化IM外部服务配置失败`,列表无法加载,行操作「编辑」「检查」不可测 | 外部服务配置列表应正常加载,缺省服务配置应自动初始化 | 后端日志:`SELECT COUNT(1) FROM im_external_config ... Error 1146: Table 'hotgo.im_external_config' doesn't exist`;代码位置:`server/internal/logic/sys/im_external_config.go:194` | P0 | 待处理 |
|
||||
| BUG-IM-004 | Kafka命令 | 点击「IM管理 / Kafka命令」后点击「发送缓存失效测试」 | 页面 toast 显示 `读取IM命令Outbox失败`,Kafka 命令列表仍为 0 条 | 应写入 Outbox 并投递 Kafka,页面能看到新事件或明确状态 | 后端日志:`读取IM命令Outbox失败: element of parameter "pointer" for function Scan should type of struct/*struct/[]struct/[]*struct`;代码位置:`server/internal/library/imkafka/command.go:103` | P0 | 待处理 |
|
||||
| BUG-IM-005 | Kafka命令 | 点击「发送缓存失效测试」「发送工作台测试事件」后查看数据库 | 正确表 `hotgo.im_admin_outbox` 为 0 条;带前缀表 `hotgo.hg_im_admin_outbox` 新增 3 条 pending 记录 | Admin 新增 IM 表和代码查询应统一使用无前缀 `im_*` 表,避免 `hg_im_*` 和 `im_*` 双表分裂 | MySQL:`SHOW TABLES LIKE 'hg_im_%'` 可见 `hg_im_admin_outbox`、`hg_im_admin_commands`、`hg_im_audit_events`;`hg_im_admin_outbox` 有 pending 数据,`im_admin_outbox` 为空 | P0 | 待处理 |
|
||||
| BUG-IM-006 | Kafka死信 | 点击「IM管理 / Kafka死信」 | 页面可打开,但列表无数据,行操作「详情」「忽略」「标记已处理」「重放」无法覆盖 | 联调测试库应准备至少 1 条死信数据,才能覆盖处置按钮 | MySQL:`hotgo.im_kafka_dead_letter_events` 计数为 0 | P1 | 待补测试数据 |
|
||||
| BUG-IM-007 | Kafka审计事件 | 点击「IM管理 / Kafka审计事件」 | 页面可打开,但列表无数据,行操作「详情」无法覆盖 | 联调测试库应准备至少 1 条审计事件数据,才能覆盖详情按钮 | MySQL:`hotgo.im_audit_events` 计数为 0 | P1 | 待补测试数据 |
|
||||
|
||||
### 21.3 数据库核查结果
|
||||
|
||||
| 库 | 表 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| `hotgo` | `im_file_policy` | 不存在 |
|
||||
| `hotgo` | `im_notification_template` | 不存在 |
|
||||
| `hotgo` | `im_external_config` | 不存在 |
|
||||
| `hotgo` | `im_admin_commands` | 存在,0 条 |
|
||||
| `hotgo` | `im_admin_outbox` | 存在,0 条 |
|
||||
| `hotgo` | `hg_im_admin_outbox` | 存在,3 条 pending |
|
||||
| `hotgo` | `im_kafka_dead_letter_events` | 存在,0 条 |
|
||||
| `hotgo` | `im_audit_events` | 存在,0 条 |
|
||||
|
||||
### 21.4 下一步建议
|
||||
|
||||
1. 先导入缺失表 SQL:`server/storage/data/generate/im_file_policy_menu.sql`、`server/storage/data/generate/im_notification_menu.sql`、`server/storage/data/generate/im_external_config_menu.sql`。
|
||||
2. 修复 Kafka Outbox 表名前缀分裂问题,确保所有 Kafka Admin 表统一访问 `im_*`,不要落到 `hg_im_*`。
|
||||
3. 修复 `DispatchOutboxByEvent` 中 `g.DB().GetOne` 触发的 `Scan` 参数类型错误。
|
||||
4. 准备 Kafka 死信和 Kafka 审计事件测试数据后,重新覆盖「详情」「忽略」「标记已处理」「重放」等按钮。
|
||||
5. 上述 P0 处理后,重新执行本测试文档第 4 到第 18 章。
|
||||
|
||||
## 22. 第二轮修复记录
|
||||
|
||||
执行时间:2026-09-03 15:37 - 15:50
|
||||
|
||||
### 22.1 已处理项
|
||||
|
||||
| 缺陷编号 | 处理结果 | 复测结果 |
|
||||
| --- | --- | --- |
|
||||
| BUG-IM-001 | 已补齐 `hotgo.im_file_policy` 表;访问文件策略列表时可自动初始化默认策略 | `/admin/imFilePolicy/list?tenantId=1` 返回 `code=0`,列表 6 条 |
|
||||
| BUG-IM-002 | 已补齐 `hotgo.im_notification_template` 表;访问通知模板列表时可自动初始化默认模板 | `/admin/imNotification/templateList` 返回 `code=0`,列表 7 条 |
|
||||
| BUG-IM-003 | 已补齐 `hotgo.im_external_config` 表;访问外部服务配置列表时可自动初始化默认配置 | `/admin/imExternalConfig/list?tenantId=1` 返回 `code=0`,列表 5 条 |
|
||||
| BUG-IM-004 | 已修复 Kafka Admin 命令/Outbox 读写 DB,统一改为无前缀 `imRegistry` 连接 | 点击等价接口 `/admin/imKafkaCommand/cacheInvalidate` 返回 `code=0`,不再报 `读取IM命令Outbox失败` |
|
||||
| BUG-IM-005 | 已修复 `im_admin_commands`、`im_admin_outbox`、`im_audit_events`、`im_kafka_dead_letter_events` 读写前缀分裂 | 新增 Kafka 测试事件写入 `hotgo.im_admin_outbox`,状态为 `sent`;没有继续写入 `hg_im_admin_outbox` |
|
||||
|
||||
### 22.2 额外修复
|
||||
|
||||
| 问题 | 处理结果 | 复测结果 |
|
||||
| --- | --- | --- |
|
||||
| Docker 本地 admin 缺少运行时 MySQL/Redis 环境变量导致启动 panic | 本地容器启动时显式传入 `MYSQL_DSN`、`REDIS_ADDR`、`TOKEN_SECRET_KEY` 等变量 | `im-local-admin` 正常启动,`http://127.0.0.1:8000/admin/` 可访问 |
|
||||
| admin 容器内 `im-server:6060` 解析到不可用地址,死信内部查询 EOF | `config.template`、`entrypoint.sh` 增加 IM API 环境变量;本地容器使用 `IM_INTERNAL_API_BASE_URL=http://im-local-im:6060` | `/admin/imDeadLetter/list?tenantId=1` 返回 `code=0`,列表 18 条 |
|
||||
| 测试库 IM 菜单中文标题乱码 | 已在测试库用 UTF-8 连接修复 `hg_admin_menu.title`;新增 `im_menu_title_repair.sql` 可重复修复 | `imManager`、`imOrgIndex`、`imFilePolicyIndex`、`imKafkaCommandIndex` 等标题查询显示正常中文 |
|
||||
| 部分新增菜单 SQL 使用旧版 `hg_admin_menu` 字段 `route/is_cache/created_by/updated_by` | 已转换相关 `*_menu.sql` 菜单插入字段为当前 HotGo 表结构 | 相关 SQL 在本地 `hotgo` 库重复执行通过,无 `Unknown column 'route'` |
|
||||
|
||||
### 22.3 当前剩余注意项
|
||||
|
||||
1. 当前浏览器页签仍保存旧 token,页面上可能继续弹「登录身份已失效」;刷新并重新登录后再继续 UI 点击测试。
|
||||
2. `hg_im_admin_outbox` 里还保留第一轮测试误写入的 3 条旧数据,仅用于证明旧问题,不影响新链路;后续可按运维需要清理。
|
||||
3. Kafka 审计事件列表当前仍无数据,需要 IM Server 产生或导入审计事件后才能覆盖详情弹窗。
|
||||
Reference in New Issue
Block a user