Files
Mycontent/开发文档/全链路深度测试与迭代报告_20260323.md
2026-04-14 16:00:31 +08:00

8.4 KiB
Raw Permalink Blame History

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.tsx
    • soul-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/usersGET/POST/PUT/DELETE

P1-2 persons 表结构漂移导致流程失败

  • 现象:/api/db/persons 返回 Unknown column 'is_pinned' in 'field list',导致 @人物 -> 自动建人 -> 获客计划 流程回归失败。
  • 根因:历史库在 persons 自动迁移阶段遭遇旧索引冲突,新增列未补齐。
  • 修复:
    • soul-api/internal/database/database.go
      • 增加 ensurePersonSchema():用 GORM HasColumn/HasIndex 做启动自愈(兼容低版本 MySQL
    • soul-api/scripts/add-persons-pin-and-source.sql
      • 增加幂等 SQL信息架构检测 + 动态执行)。
    • 修复后验证:test_article_mention_ckb_flow.py 5/5 通过

P2待迭代

  • 页面切换存在短暂空白/加载抖动(找伙伴、推广中心、系统设置部分子页)。
  • 管理端构建体积偏大(主 chunk > 500KB存在首屏与切页性能优化空间。
  • 部分列表仍有可读性与操作反馈可优化点(批量操作成功/失败反馈一致性)。

P2本轮已闭环 · 20260323 需求续)

  • 首页超级个体:去掉「获客入口」副标题与跳转;无头像会员不再被 vipMemberShowcaseOK 过滤,可与 MBTI 映射头像组合展示。
  • 行为轨迹中文:扩展 userTrackActionLabelCNUserTrackGet / 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_pinnedpersons.person_sourceidx_persons_is_pinned
  • scripts/add-persons-pin-and-source.sql
    • 新增兼容型幂等迁移脚本(适配不支持 IF NOT EXISTS 的 MySQL

测试脚本scripts/test

  • scripts/test/web/admin_routes_smoke.py
  • scripts/test/web/admin_routes_smoke_authless.py
    • 去除硬编码 Windows 路径,改为自动定位当前仓库 soul-api/internal/router/router.go

20260323 需求续(小程序 + 管理端 + API

  • miniprogram/pages/index/index.wxml / index.js:移除超级个体区「获客入口」。
  • miniprogram/pages/my/my.wxml / my.wxss / my.js:名片/VIP 下移;推荐数以收益接口为准;昵称 → 个人资料名片页。
  • soul-api/internal/handler/vip.govipMemberShowcaseOK 不再要求头像 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),优先拆分 UsersPageContentPageDistributionPage
  • 所有破坏性操作统一接入“二次确认组件”(替代散落的 confirm/prompt)。
  • 用户旅程与行为轨迹统一中文事件字典(避免中英混杂),并复用到导出/群播文案。
  • 小程序 app.jsonpages/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. 下一阶段执行计划(可直接开工)

  1. P0/P1 回归闭环(今日)
    • 管理端删除链路二次确认回归
    • 管理员页 CRUD 全链路回归
    • persons 提及链路 + 获客计划联调回归
  2. P2 性能迭代(本周)
    • 管理端路由分包
    • 大列表分页与筛选接口响应压测
  3. 产品体验优化(本周)
    • 用户旅程中文事件标准化
    • 页面 loading 骨架屏与空状态统一

6. 本轮结论

本轮完成了“全站深测 + 关键故障修复 + 一体化优化方案输出”。
当前系统可用性已显著提升,阻断级问题已清理,剩余主要是性能与体验的系统性优化。