50 lines
1.6 KiB
JSON
50 lines
1.6 KiB
JSON
{
|
|
"_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"
|
|
}
|