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:
2026-08-13 07:11:12 +08:00
parent 350878fd07
commit a2ffd6f27b
69 changed files with 922 additions and 86 deletions
+258
View File
@@ -0,0 +1,258 @@
{
"root_group": {
"groups": [],
"checks": [
{
"path": "::status is 200",
"id": "6210a8cd14cd70477eba5c5e4cb3fb5f",
"passes": 50275,
"fails": 0,
"name": "status is 200"
},
{
"name": "response time < 500ms",
"path": "::response time < 500ms",
"id": "3e02485a995423a591645f4eee6c60eb",
"passes": 50133,
"fails": 142
}
],
"name": "",
"path": "",
"id": "d41d8cd98f00b204e9800998ecf8427e"
},
"options": {
"summaryTrendStats": [
"avg",
"min",
"med",
"max",
"p(90)",
"p(95)"
],
"summaryTimeUnit": "",
"noColor": false
},
"state": {
"isStdErrTTY": false,
"testRunDurationMs": 962269.696,
"isStdOutTTY": false
},
"metrics": {
"vus": {
"contains": "default",
"values": {
"max": 200,
"value": 1,
"min": 1
},
"type": "gauge"
},
"data_sent": {
"type": "counter",
"contains": "data",
"values": {
"count": 3787370,
"rate": 3935.8716332266167
}
},
"data_received": {
"type": "counter",
"contains": "data",
"values": {
"count": 4114391706,
"rate": 4275715.761498947
}
},
"http_req_failed": {
"contains": "default",
"values": {
"fails": 50275,
"rate": 0,
"passes": 0
},
"thresholds": {
"rate<0.01": {
"ok": true
}
},
"type": "rate"
},
"http_req_sending": {
"type": "trend",
"contains": "time",
"values": {
"min": 0.002,
"med": 0.011,
"max": 177.801,
"p(90)": 0.026,
"p(95)": 0.035,
"avg": 0.032912302337142686
}
},
"iteration_duration": {
"type": "trend",
"contains": "time",
"values": {
"avg": 2512.0013247870893,
"min": 1001.589709,
"med": 2512.430792,
"max": 4962.330875,
"p(90)": 3706.0576334,
"p(95)": 3854.9937001
}
},
"vus_max": {
"type": "gauge",
"contains": "default",
"values": {
"value": 200,
"min": 200,
"max": 200
}
},
"http_req_blocked": {
"type": "trend",
"contains": "time",
"values": {
"p(90)": 0.009,
"p(95)": 0.012,
"avg": 0.014019035305816654,
"min": 0,
"med": 0.003,
"max": 82.091
}
},
"http_req_waiting": {
"type": "trend",
"contains": "time",
"values": {
"avg": 5.787236081551489,
"min": 0.386,
"med": 1.181,
"max": 1103.045,
"p(90)": 3.599,
"p(95)": 6.726899999999993
}
},
"errors": {
"type": "rate",
"contains": "default",
"values": {
"rate": 0.0028244654400795626,
"passes": 142,
"fails": 50133
},
"thresholds": {
"rate<0.01": {
"ok": true
}
}
},
"http_req_tls_handshaking": {
"type": "trend",
"contains": "time",
"values": {
"p(95)": 0,
"avg": 0,
"min": 0,
"med": 0,
"max": 0,
"p(90)": 0
}
},
"http_req_receiving": {
"type": "trend",
"contains": "time",
"values": {
"max": 70.258,
"p(90)": 0.195,
"p(95)": 0.27,
"avg": 0.14992813525609242,
"min": 0.017,
"med": 0.072
}
},
"iterations": {
"values": {
"count": 50275,
"rate": 52.246267557821966
},
"type": "counter",
"contains": "default"
},
"checks": {
"values": {
"rate": 0.9985877672799602,
"passes": 100408,
"fails": 142
},
"type": "rate",
"contains": "default"
},
"http_reqs": {
"contains": "default",
"values": {
"count": 50275,
"rate": 52.246267557821966
},
"type": "counter"
},
"http_req_duration{expected_response:true}": {
"type": "trend",
"contains": "time",
"values": {
"min": 0.416,
"med": 1.28,
"max": 1103.158,
"p(90)": 3.878,
"p(95)": 7.259599999999995,
"avg": 5.970076519144683
}
},
"http_req_connecting": {
"values": {
"avg": 0.001428622575832919,
"min": 0,
"med": 0,
"max": 18.901,
"p(90)": 0,
"p(95)": 0
},
"type": "trend",
"contains": "time"
},
"http_req_duration": {
"values": {
"avg": 5.970076519144683,
"min": 0.416,
"med": 1.28,
"max": 1103.158,
"p(90)": 3.878,
"p(95)": 7.259599999999995
},
"thresholds": {
"p(95)<500": {
"ok": true
},
"p(99)<1000": {
"ok": true
}
},
"type": "trend",
"contains": "time"
},
"response_time": {
"type": "trend",
"contains": "default",
"values": {
"max": 1103.158,
"p(90)": 3.878,
"p(95)": 7.259599999999995,
"avg": 5.970076519144683,
"min": 0.416,
"med": 1.28
}
}
}
}
+138
View File
@@ -0,0 +1,138 @@
{
"type": "stress-test",
"stages": [
{
"duration": "1m",
"target": 50,
"desc": "Ramp up to 50 users"
},
{
"duration": "2m",
"target": 100,
"desc": "Ramp up to 100 users"
},
{
"duration": "3m",
"target": 200,
"desc": "Ramp up to 200 users"
},
{
"duration": "5m",
"target": 300,
"desc": "Peak load at 300 users"
},
{
"duration": "2m",
"target": 100,
"desc": "Scale down to 100 users"
},
{
"duration": "1m",
"target": 0,
"desc": "Scale down to 0"
}
],
"thresholds": {
"http_req_duration": [
"p(95)<2000ms",
"p(99)<3000ms"
],
"http_req_failed": [
"rate<0.05"
],
"errors": [
"rate<0.05"
]
},
"results": {
"overall": {
"total_requests": 92929,
"error_rate": 0,
"avg_response_time": 2.4518969213054973,
"p95_response_time": 3.949,
"p99_response_time": 0,
"max_response_time": 436.917
},
"per_page": {
"/": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
},
"/about": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
},
"/services": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
},
"/products": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
},
"/news": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
},
"/contact": {
"avg_response_time": null,
"p95_response_time": null,
"p99_response_time": null,
"max_response_time": null,
"error_rate": null,
"total_requests": null,
"error_count": null
}
},
"pages_tested": [
"/",
"/about",
"/services",
"/products",
"/news",
"/contact"
]
},
"checks_passed": [
{
"name": "status is 200",
"passes": 92929,
"fails": 0
},
{
"name": "response time < 2000ms",
"passes": 92929,
"fails": 0
},
{
"name": "body is not empty",
"passes": 92929,
"fails": 0
}
]
}