test(acceptance): complete release acceptance testing — conditional pass
All 7 phases of release acceptance testing completed: - Static quality gates: build, type-check, lint, unit-coverage all passed - Regression: 356 E2E passed (Chromium core features), CMS workflow, user journeys - Visual regression: 84/84 passed across 5 browser/device projects (baselines updated) - Mobile: 173 passed, FCP 68ms / LCP 280ms - Lighthouse: 7 pages, 4 categories ≥ 0.9, CWV compliant - Load test: 200 concurrent, p95=7.26ms, 0.28% error rate - Stress test: 300 concurrent, p95=3.95ms, 0% error rate - Accessibility: contrast 7/7, headings 10/10, a11y 66/66 - Security: 2 moderate vulnerabilities (accepted risk) - docs/lessons-learned.md: added 3 new entries (5.7-5.9) Conclusion: conditional pass — Firefox (127 failed) and mobile (37 failed) compatibility issues documented as known defects.
This commit is contained in:
@@ -148,6 +148,36 @@
|
||||
3. 优先使用 `data-testid` 或语义选择器定位,点击后通过 `page.waitForURL()` 显式等待目标 URL,而非依赖 locator 的隐式等待。
|
||||
- **来源**:2026-07-27 `e2e/p2-functional-e2e.spec.ts` Footer 链接测试修复。
|
||||
|
||||
### 5.7 封版阶段依赖升级需独立评估,避免 `--force` 一次性修复
|
||||
|
||||
- **问题**:`npm audit fix --force` 无差别升级依赖到最新版本,导致 `@lhci/cli` 被降级到使用 git+ssh 拉取 Lighthouse 的古老版本,且 `eslint-config-next@16` 与当前 `eslint@8` 不兼容。
|
||||
- **根因**:`--force` 会执行 major version 升级,引入 breaking change 风险。
|
||||
- **方案**:
|
||||
1. 封版阶段不执行 `--force` 修复,仅执行向后兼容的 `npm audit fix`。
|
||||
2. major version 升级应作为独立专项任务,在封版前或上线后安排。
|
||||
3. 修复前备份 `package-lock.json`,并制定回退策略。
|
||||
- **来源**:2026-08-12 封版验收阶段 1-B。
|
||||
|
||||
### 5.8 性能测试脚本必须与 API 接口契约对齐
|
||||
|
||||
- **问题**:`stress-test.js` 向 `/api/contact` 发送 JSON body,但接口期望 `formData`,且 IP 限流每小时 5 次/IP,导致 66.7% 请求失败。
|
||||
- **根因**:测试脚本编写时未审查 API 接口的具体实现(`request.formData()` 和 `isRateLimited`)。
|
||||
- **方案**:
|
||||
1. 新增/修改 API 后同步审查性能测试脚本,确保请求体格式、认证/限流机制与接口契约一致。
|
||||
2. 将对依赖外部服务的接口(如 `formsubmit.co`)的压测排除在压力测试之外。
|
||||
3. 重写后的脚本仅对本地静态页面进行 GET 压力测试,避免外部依赖干扰。
|
||||
- **来源**:2026-08-12 封版验收阶段 5,stress-test.js 修复。
|
||||
|
||||
### 5.9 测试摘要文件需在迭代中保护,避免被失败运行覆盖
|
||||
|
||||
- **问题**:k6 测试运行时预览服务器被停止,后续重新运行写入的摘要文件包含无效数据(0% 通过率),覆盖了之前成功的运行结果。
|
||||
- **根因**:k6 的 `handleSummary` 输出路径与 `--summary-export` 路径不一致,且无版本保护机制。
|
||||
- **方案**:
|
||||
1. 使用 `--summary-export` 指定稳定路径(如 `tests/performance/`),与脚本内 `handleSummary` 路径统一。
|
||||
2. 每次运行前备份前一次摘要文件。
|
||||
3. 服务器重启后重新运行性能测试前,确认端口可用性。
|
||||
- **来源**:2026-08-12 封版验收阶段 5,k6 摘要文件保护。
|
||||
|
||||
---
|
||||
|
||||
## 6. 代码组织
|
||||
|
||||
Reference in New Issue
Block a user