Overview
Ramp-up charts show the configured load profile (VU targets per stage).
Latency charts use aggregated k6 metrics from each run.
p95 latency — all scenarios
HTTP throughput (req/s)
Scenarios
PASS
authenticated-user
Journey
Authenticated session — login → users → browse dashboard and team.
Flow: Login → GET /api/users → GET dashboard.html → GET team.html.
Iterations90
HTTP reqs360
Max VUs5
p951.28 ms
avg1.03 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (9/9 ok)
- login status 20090 pass / 0 fail
- login has token90 pass / 0 fail
- users status 20090 pass / 0 fail
- users has array90 pass / 0 fail
- users responds within 2s90 pass / 0 fail
- static page status 20090 pass / 0 fail
- static page has html90 pass / 0 fail
- static page status 20090 pass / 0 fail
- static page has html90 pass / 0 fail
Thresholds (7/7 ok)
checks rate>0.98http_req_duration p(99)<6000http_req_duration p(95)<2500http_req_duration{endpoint:auth_login} p(95)<3000http_req_duration{endpoint:health} p(95)<800http_req_duration{endpoint:users} p(95)<2000http_req_failed rate<0.01
journeys/authenticated-user.js · npm run test:journey:auth
Sustained login throughput — auth bottleneck detection.
Flow: POST /api/auth/login with token validation each iteration.
Iterations158
HTTP reqs158
Max VUs5
p951.35 ms
avg1.15 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (2/2 ok)
- login 200158 pass / 0 fail
- login token present158 pass / 0 fail
Thresholds (9/9 ok)
checks rate>0.98http_req_duration p(95)<2500http_req_duration p(99)<6000http_req_duration{endpoint:auth_login} p(95)<3000http_req_duration{endpoint:health} p(95)<800http_req_duration{endpoint:users} p(95)<2000http_req_failed rate<0.01login_duration p(95)<2000login_errors rate<0.01
scenarios/load/api-auth.js · npm run test:load:auth
Read-heavy users list with token reuse via setup().
Flow: setup: login once → GET /api/users (authenticated) per iteration.
Iterations160
HTTP reqs161
Max VUs5
p951.32 ms
avg1.09 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (5/5 ok)
- users status 200160 pass / 0 fail
- users has array160 pass / 0 fail
- users responds within 2s160 pass / 0 fail
- login status 2001 pass / 0 fail
- login has token1 pass / 0 fail
Thresholds (8/8 ok)
checks rate>0.98http_req_duration p(95)<2500http_req_duration p(99)<6000http_req_duration{endpoint:auth_login} p(95)<3000http_req_duration{endpoint:health} p(95)<800http_req_duration{endpoint:users} p(95)<2000http_req_failed rate<0.01users_list_duration p(95)<2000
scenarios/load/api-users.js · npm run test:load:users
HTTP user journey — login page → API login → dashboard.
Flow: Group 01: GET login.html → Group 02: POST login → Group 03: GET dashboard.html.
Iterations123
HTTP reqs369
Max VUs5
p951.43 ms
avg1.13 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (6/6 ok)
- static page status 200123 pass / 0 fail
- static page has html123 pass / 0 fail
- login succeeds123 pass / 0 fail
- token returned123 pass / 0 fail
- static page status 200123 pass / 0 fail
- static page has html123 pass / 0 fail
Thresholds (8/8 ok)
checks rate>0.98http_req_duration p(95)<2500http_req_duration p(99)<6000http_req_duration{endpoint:auth_login} p(95)<3000http_req_duration{endpoint:health} p(95)<800http_req_duration{endpoint:users} p(95)<2000http_req_failed rate<0.01login_flow_duration p(95)<4000
journeys/login-flow.js · npm run test:journey:login
Realistic weighted mix of API and static page traffic.
Flow: Login → weighted pick: 35% health, 30% users (auth), 15% static, 20% users (anon).
Iterations130
HTTP reqs260
Max VUs5
p951.24 ms
avg0.89 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (9/9 ok)
- login status 200130 pass / 0 fail
- login has token130 pass / 0 fail
- health status 20041 pass / 0 fail
- health responds quickly41 pass / 0 fail
- static page status 20022 pass / 0 fail
- static page has html22 pass / 0 fail
- users status 20067 pass / 0 fail
- users has array67 pass / 0 fail
- users responds within 2s67 pass / 0 fail
Thresholds (7/7 ok)
checks rate>0.98http_req_duration p(95)<2500http_req_duration p(99)<6000http_req_duration{endpoint:auth_login} p(95)<3000http_req_duration{endpoint:health} p(95)<800http_req_duration{endpoint:users} p(95)<2000http_req_failed rate<0.01
scenarios/load/mixed-traffic.js · npm run test:load:mixed
Minimal VUs — availability gate and baseline API latency.
Flow: GET /health → GET /api/users → POST /api/auth/login per iteration.
Iterations80
HTTP reqs240
Max VUs5
p951.49 ms
avg1.12 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (7/7 ok)
- health status 20080 pass / 0 fail
- health responds quickly80 pass / 0 fail
- users status 20080 pass / 0 fail
- users has array80 pass / 0 fail
- users responds within 2s80 pass / 0 fail
- login status 20080 pass / 0 fail
- login has token80 pass / 0 fail
Thresholds (7/7 ok)
checks rate>0.99http_req_duration p(95)<1500http_req_duration avg<800http_req_duration{endpoint:auth_login} p(95)<2000http_req_duration{endpoint:health} p(95)<500http_req_duration{endpoint:users} p(95)<1500http_req_failed rate<0.005
scenarios/smoke/api-health.js · npm run test:smoke
Sudden burst (5→100 VUs) — validates recovery under spike.
Flow: GET /health → login → GET /api/users with minimal think time.
Iterations1526
HTTP reqs4578
Max VUs5
p951.49 ms
avg0.83 ms
http failed0.00%
checks100.00%
exit code0
Load profile — ramp-up (ci)
HTTP latency percentiles
Checks (7/7 ok)
- health status 2001526 pass / 0 fail
- health responds quickly1526 pass / 0 fail
- login status 2001526 pass / 0 fail
- login has token1526 pass / 0 fail
- users status 2001526 pass / 0 fail
- users has array1526 pass / 0 fail
- users responds within 2s1526 pass / 0 fail
Thresholds (4/4 ok)
checks rate>0.95http_req_duration p(95)<5000http_req_failed rate<0.05spike_failures rate<0.10
scenarios/spike/api-spike.js · npm run test:spike
Threshold profiles (reference)
smoke
http_req_failed — rate < 0.5%http_req_duration — p(95) < 1500 ms, avg < 800 mshttp_req_duration{endpoint:health} — p(95) < 500 mshttp_req_duration{endpoint:users} — p(95) < 1500 mshttp_req_duration{endpoint:auth_login} — p(95) < 2000 mschecks — rate > 99%
load
http_req_failed — rate < 1%http_req_duration — p(95) < 2500 ms, p(99) < 6000 mshttp_req_duration{endpoint:health} — p(95) < 800 mshttp_req_duration{endpoint:users} — p(95) < 2000 mshttp_req_duration{endpoint:auth_login} — p(95) < 3000 mschecks — rate > 98%
stress
http_req_failed — rate < 5%http_req_duration — p(95) < 5000 mschecks — rate > 95%
soak
http_req_failed — rate < 0.5%http_req_duration — p(95) < 2500 ms, avg < 1200 mschecks — rate > 99%