Files
Agent-System/.doc/test-reports/2026-09-22-initial-load-closeout-test-report.md
WeiCHEN c89c07f977 docs(ops): add initial-load closeout test report
Record schema-61 n=20 waterfall, throttle, and U7 form evidence; note Edge
channel exception for Playwright Chromium download sandbox.
2026-09-22 21:53:19 +08:00

4.9 KiB
Raw Permalink Blame History

首次加载性能 U1/U3/U7 收尾测试报告

一、 测试背景 (Background)

方案 要求 U1 慢网样本 ≥20 并给出 p50/p75/p95;U3 补浏览器资源瀑布确认首屏无 katex/mermaid/docx;U7 补登录表单可见测量并如实记录是否达「较历史约十几秒基线下降 50%」。本轮在 macOS 上对已部署 dev(schema 61)复测,不放宽预算。

二、 测试目标 (Test Objectives)

  • 登录态瀑布 n=20:成员扇出、会话列表、重模块路径、百分位。
  • 慢网双档(10 Mbps / 2 Mbps)+ CPU 4x,各 n=20,对照拟定表单 p75 预算 1.5 s / 3 s。
  • U7:/ready 已绿后冷导航到登录表单可见 n=20;与约 10 s 历史诊断对比是否 ≤5 s。
  • 不发送聊天;证据去查询串;不写入令牌/正文。

三、 测试方案与环境 (Test Plan & Environment)

  • OS:macOS Darwin arm64;浏览器:本机 Microsoft Edge(PLAYWRIGHT_CHANNEL=msedge)。Playwright 自带 Chromium 因沙箱无法拉取 cdn.playwright.dev,改用已装 Edge,语义仍为 Chromium 内核无头自动化。
  • 被测:http://127.0.0.1:8080,/api/v1/health → schema_version: 61,入口包 assets/index-CgkGfOP7.js。
  • 源码 worktree:feature/loading-perf-closeout-2026-09-22(基线 364ed7f1)。
  • 用例:web/e2e/initial-load-performance.spec.ts;辅助:web/src/lib/initialLoadMetrics.ts。
  • 账号:dev 容器 ADMIN_USERNAME/ADMIN_PASSWORD(报告不写值)。
  • 证据目录:assets/2026-09-22-initial-load-closeout/。

四、 预期结果 (Expected Results)

  • 每样本 distinctMemberProjects ≤ 1、sessionListGetCount = 1(U4 行为仍在)。
  • 匿名与登录后首可操作路径 heavyHits = [](无 katex/mermaid/docx)。
  • 慢网表单可见 p75 ≤ 1500 ms(10 Mbps)/ ≤ 3000 ms(2 Mbps);失败时不得放宽阈值关账。
  • U7 表单 p75 相对约 10 s 基线的 50% 目标为 ≤ 5000 ms;达不到则写未达标。

五、 实际测试结果与判定 (Actual Results & Evaluation)

5.1 U1/U3 登录态瀑布(无节流)

  • 输入:RUN_INITIAL_LOAD_BASELINE=1 INITIAL_LOAD_SAMPLES=20 EXPECT_INIT_MEMBER_PROJECTS=1。
  • 输出:20/20 PASS。成员项目恒为 1、会话列表 GET 恒为 1;全程 heavy 空。匿名 JS 传输 180,393 B(单入口 js)。百分位:表单可见 p50/p75/p95 = 63/64/88 ms;工作台就绪 132/146/161 ms。
  • 判定:PASS(探针与瀑布)。本机无带宽限制,不单独作为预算验收。

5.2 U1 慢网 + CPU 4x

  • 输入:INITIAL_LOAD_THROTTLE=1,CDP 限速 + CPU 4,阻断 Google 字体,各档 n=20。
  • 输出:
档位 表单可见 p50/p75/p95 (ms) 预算 p75 工作台就绪 p75 (ms) 达预算
10mbps-cpu4 590 / 599 / 631 1500 656 是
2mbps-cpu4 1342 / 1346 / 1362 3000 1240 是
  • 判定:PASS。未设置 INITIAL_LOAD_ENFORCE_BUDGETS=1 硬断言,但实测均低于拟定预算,故未放宽阈值。

5.3 U3 瀑布重模块

  • 基线与慢网样本的 anonymousHeavy / loggedInHeavy 均为 []。首按钮/输入区可用时未加载 katex/mermaid/docx。
  • 判定:PASS。

5.4 U7 登录表单可见(补 2026-09-19 libatk 缺口)

  • 输入:INITIAL_LOAD_U7_FORM=1,n=20,app 已 /ready,不做 postgres/app 重启。
  • 输出:表单可见 p50/p75/p95 = 70/75/95 ms;meetsFiftyPercentVsApproxBaseline=true(相对约 10 s → 5 s 目标)。
  • 判定:PASS(本口径)。范围说明:测的是就绪后冷导航表单可见,不是宿主机整机重启首访;整机重启→/ready 仍以 U7 重启报告(1.0–1.2 s)为准。不得把本项外推为「开机到可登录下降 50%」的整机结论。

六、 自动化测试套件汇总 (Test Suite Execution)

cd web && npm test
# pass 473 / fail 0(含 initialLoadMetrics 百分位与 heavy 断言)

cd web && npm run build
# tsc + vite build + precompress 成功

PLAYWRIGHT_CHANNEL=msedge RUN_INITIAL_LOAD_BASELINE=1 …
# logged-in workbench:1 passed
# throttled login:1 passed(~2.0m)
# U7 browser form:1 passed

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

U1 慢网 n=20 百分位与预算对照已齐;U3 浏览器瀑布已确认首屏无延迟重模块;U7 表单可见缺口在 macOS Edge 上已补测并达到相对约 10 s 基线的 50% 目标(仅限 /ready 后冷导航口径)。FEATURE-MATRIX 首次加载专项可按本报告更新为关账结论。剩余非本轮:test/main 探针、整机冷启动矩阵、强制 INITIAL_LOAD_ENFORCE_BUDGETS=1 进 CI(需稳定 runner)。

证据 JSON:login-waterfall-schema61*.json、throttled-schema61*.json、u7-form-visibility*.json。