{ "_comment": "WalkGuide Load Test — 50 VUs, 5 minutes. Normal production load simulation.", "_meta": { "min_vu_requirement": 50, "note": "Pillar 3 ketentuan: load test harus >= 50 concurrent users" }, "scenarios": { "load_auth": { "executor": "ramping-vus", "startVUs": 0, "stages": [ { "duration": "30s", "target": 10 }, { "duration": "60s", "target": 20 }, { "duration": "120s", "target": 20 }, { "duration": "30s", "target": 0 } ], "gracefulRampDown": "15s" }, "load_location": { "executor": "ramping-vus", "startVUs": 0, "stages": [ { "duration": "30s", "target": 15 }, { "duration": "120s", "target": 20 }, { "duration": "30s", "target": 0 } ], "startTime": "10s", "gracefulRampDown": "15s" }, "load_obstacle": { "executor": "constant-vus", "vus": 10, "duration": "180s", "startTime": "20s" } }, "thresholds": { "http_req_duration": ["p(95)<500", "p(99)<1000"], "http_req_failed": ["rate<0.01"], "walkguide_error_rate": ["rate<0.01"], "walkguide_location_latency_ms": ["p(95)<300"], "walkguide_obstacle_latency_ms": ["p(95)<400"], "walkguide_sos_latency_ms": ["p(95)<200"], "walkguide_auth_latency_ms": ["p(95)<800"], "walkguide_timeline_latency_ms": ["p(95)<1000"] }, "summaryTrendStats": ["min", "med", "avg", "p(90)", "p(95)", "p(99)", "max"], "summary_export": "k6-results/load-test-summary.json" }