Load Testing with k6: Open vs Closed Models, Little's Law, Thresholds as SLOs and the Saturation Point
A practical guide to load tests that expose saturation instead of hiding it: why the closed VU model throttles itself and hides the very saturation you meant to measure, Little's Law as the arithmetic you do before writing the script, the four k6 executors and the unset maxVUs that silently turns an open model into a closed one, thresholds as an SLO contract with abortOnFail and delayAbortEval, dropped_iterations as the most honest saturation signal and how to tell its two causes apart, the stepped arrival-rate ramp that finds the knee and the difference between flattening and collapsing, coordinated omission and why your p99 is optimistic, the limits of the load generator itself, long-tail test data instead of a hot key, correlating with server metrics and what each pair of curves means, a tiered CI strategy and why absolute latency thresholds fail on shared runners, and what broke in k6 v2 (the removed externally-controlled executor, --summary-mode, k6 cloud run, go.k6.io/k6/v2 and automatic extension resolution). With complete JavaScript scripts, GitHub Actions YAML, eight recurring mistakes, a production checklist, FAQ and glossary.
Verificando acceso...