8.4 KiB
8.4 KiB
Soul 创业派对 · 全链路深度测试与迭代报告
执行时间:2026-03-23 19:07
测试范围:管理端(soul-admin)+ 后端(soul-api)+ 小程序接口(/api/miniprogram/*)+ 数据库兼容性
目标:逐页面、逐按钮、逐链路验证;输出可直接执行的优化迭代方案,并落地高优先修复。
1. 本轮覆盖结果
1.1 管理端页面与按钮深测(浏览器实测)
已覆盖主菜单与关键子页(含按钮操作):
数据概览:统计卡片、刷新、模块跳转。用户管理:用户列表、获客列表、用户旅程、规则配置、超级个体列表;覆盖新增/编辑/删除/刷新/分页/筛选/详情。内容管理:章节管理、新增章节、新增篇、编辑、付款记录入口。找伙伴:数据统计、找伙伴、资源对接、导师预约、团队招募、刷新。推广中心:概览、订单与代付、绑定管理、提现审核、推广设置。系统设置:系统参数、作者详情、管理员、API 文档。
说明:本轮执行了“可点击项尽量全覆盖”。删除类操作按风险控制原则优先验证到“可触发”与“可取消”。
1.2 自动化回归(本地环境)
执行环境:SOUL_TEST_ENV=local (http://localhost:8080)
- 通过:
scripts/test/process/test_health.py - 通过:
scripts/test/web/test_admin_auth.py - 通过:
scripts/test/miniapp/test_config.py - 跳过:
scripts/test/miniapp/test_dev_login.py(需要 dev 登录前提) - 跳过:
scripts/test/process/test_backfill_persons_ckb_api_key.py(依赖外部前置) - 通过:
scripts/test/process/test_article_mention_ckb_flow.py(修复后重跑)
汇总:10 passed, 2 skipped
1.3 管理端路由冒烟(admin/db 全路由)
- 路由扫描总数:
116 - 鉴权态冒烟:
Failures = 0 - 未鉴权冒烟:仅
POST /api/admin/logout非 401/403(属于可接受例外)
2. 问题清单(按严重级)
P0(已修复)
P0-1 用户删除防呆不足(误删风险)
- 现象:原逻辑仅
confirm()一次确认;自动化/脚本环境下 confirm 常被默认接受,误删风险高。 - 影响:用户管理与管理员管理删除链路。
- 修复:
soul-admin/src/pages/users/UsersPage.tsxsoul-admin/src/pages/admin-users/AdminUsersPage.tsx- 新增二次校验:确认后要求输入“删除”才执行删除。
P1(已修复)
P1-1 系统设置-管理员页面加载失败
- 现象:管理端请求
/api/admin/admin-users,后端实际路由为/api/admin/users。 - 影响:管理员列表、增删改全部不可用。
- 修复:
soul-admin/src/pages/admin-users/AdminUsersPage.tsx- API 路径统一改为
/api/admin/users(GET/POST/PUT/DELETE)。
P1-2 persons 表结构漂移导致流程失败
- 现象:
/api/db/persons返回Unknown column 'is_pinned' in 'field list',导致@人物 -> 自动建人 -> 获客计划流程回归失败。 - 根因:历史库在
persons自动迁移阶段遭遇旧索引冲突,新增列未补齐。 - 修复:
soul-api/internal/database/database.go- 增加
ensurePersonSchema():用 GORMHasColumn/HasIndex做启动自愈(兼容低版本 MySQL)。
- 增加
soul-api/scripts/add-persons-pin-and-source.sql- 增加幂等 SQL(信息架构检测 + 动态执行)。
- 修复后验证:
test_article_mention_ckb_flow.py5/5 通过。
P2(待迭代)
- 页面切换存在短暂空白/加载抖动(找伙伴、推广中心、系统设置部分子页)。
- 管理端构建体积偏大(主 chunk > 500KB),存在首屏与切页性能优化空间。
- 部分列表仍有可读性与操作反馈可优化点(批量操作成功/失败反馈一致性)。
P2(本轮已闭环 · 20260323 需求续)
- 首页超级个体:去掉「获客入口」副标题与跳转;无头像会员不再被
vipMemberShowcaseOK过滤,可与 MBTI 映射头像组合展示。 - 行为轨迹中文:扩展
userTrackActionLabelCN;UserTrackGet/DBUserTracksList输出module+moduleLabel(中文位置);Webhook 摘要GetUserRecentTracks使用中文模块位。 - 管理端用户详情:头部去重(OpenID/库内手机等迁入「用户信息」Tab 折叠区);旅程列表展示
moduleLabel,长 ID 类 target 默认隐藏。 - 规则配置列表:描述仍为折叠,摘要行改为「字数提示」避免整段摊开。
- 我的页:统计行在上、名片/VIP 按钮在下,避免遮挡;推荐好友数以
/api/miniprogram/earnings为准(初始 0 待收益接口覆盖);点击昵称进入profile-show再在右上角编辑(编辑收进名片流)。 - Webhook 频次:留资推送仍按「同一用户自然日仅首条 webhook」去重(
webhookShouldSkip),与需求一致。
3. 本轮已落地代码变更
前端(soul-admin)
src/pages/admin-users/AdminUsersPage.tsx- 修复管理员接口路径错误。
- 删除操作增加“输入删除”二次确认。
src/pages/users/UsersPage.tsx- 用户删除、规则删除增加“输入删除”二次确认。
后端(soul-api)
internal/database/database.go- 增加
ensurePersonSchema(),启动时自愈补齐persons.is_pinned、persons.person_source、idx_persons_is_pinned。
- 增加
scripts/add-persons-pin-and-source.sql- 新增兼容型幂等迁移脚本(适配不支持
IF NOT EXISTS的 MySQL)。
- 新增兼容型幂等迁移脚本(适配不支持
测试脚本(scripts/test)
scripts/test/web/admin_routes_smoke.pyscripts/test/web/admin_routes_smoke_authless.py- 去除硬编码 Windows 路径,改为自动定位当前仓库
soul-api/internal/router/router.go。
- 去除硬编码 Windows 路径,改为自动定位当前仓库
20260323 需求续(小程序 + 管理端 + API)
miniprogram/pages/index/index.wxml/index.js:移除超级个体区「获客入口」。miniprogram/pages/my/my.wxml/my.wxss/my.js:名片/VIP 下移;推荐数以收益接口为准;昵称 → 个人资料名片页。soul-api/internal/handler/vip.go:vipMemberShowcaseOK不再要求头像 URL。soul-api/internal/handler/user.go:轨迹中文动作/模块位、UserTrackGet附加字段、GetUserRecentTracks中文模块。soul-admin/src/components/modules/user/UserDetailModal.tsx:信息区结构优化 + 轨迹展示模块中文。soul-admin/src/pages/users/UsersPage.tsx:规则描述折叠摘要优化。
4. 前端/后端/数据库一体化优化迭代建议
4.1 前端优化(soul-admin + miniprogram)
- 管理端按路由做代码分包(
React.lazy + Suspense),优先拆分UsersPage、ContentPage、DistributionPage。 - 所有破坏性操作统一接入“二次确认组件”(替代散落的
confirm/prompt)。 - 用户旅程与行为轨迹统一中文事件字典(避免中英混杂),并复用到导出/群播文案。
- 小程序
app.json的pages/dev-login/dev-login建议通过构建变量控制(dev 包含、release 排除),防止提审干扰。
4.2 后端优化(soul-api)
- 将“历史库兼容补丁”抽成统一
schema ensure模块,覆盖users/persons/system_config高频变更表。 - 对
POST /api/admin/logout增加鉴权前置(未登录返回 401),与 authless 预期一致。 - 管理端高频列表接口统一增加
request_id与慢查询日志标签,便于排查“加载失败/慢响应”。
4.3 数据库优化
- 建议补建/巡检以下索引:
persons(is_pinned)(本轮已补)user_tracks(user_id, created_at)(旅程时间线)orders(user_id, created_at, status)(用户漏斗/支付链路)
- 建议建立“启动前 schema 巡检脚本”,在部署阶段提前阻断“字段缺失后线上才报错”。
5. 下一阶段执行计划(可直接开工)
- P0/P1 回归闭环(今日)
- 管理端删除链路二次确认回归
- 管理员页 CRUD 全链路回归
- persons 提及链路 + 获客计划联调回归
- P2 性能迭代(本周)
- 管理端路由分包
- 大列表分页与筛选接口响应压测
- 产品体验优化(本周)
- 用户旅程中文事件标准化
- 页面 loading 骨架屏与空状态统一
6. 本轮结论
本轮完成了“全站深测 + 关键故障修复 + 一体化优化方案输出”。
当前系统可用性已显著提升,阻断级问题已清理,剩余主要是性能与体验的系统性优化。