concept

Arrival Rate Model

Driving a load test by requests arriving per second regardless of how the system responds, rather than by a fixed number of virtual users.

The two ways to drive load behave completely differently once a system starts to struggle. With a fixed pool of virtual users each waiting for a response before sending the next request, slowing responses reduce the offered load — the test politely backs off exactly when you needed it to push. This is closed-loop, and it systematically hides the behaviour you are testing for.

An open-loop model injects requests at a specified rate independent of response times, which is how real users and upstream systems behave: they do not wait for your recovery before arriving. Under this model a degrading system accumulates concurrency, queues grow, and the collapse that would happen in production happens in the test.

The related distortion is coordinated omission: a load generator that stalls waiting on a slow response fails to record the requests it should have sent during the stall, so the worst latencies never enter the measurement. Percentiles come out looking respectable while the system was effectively unavailable. Both effects push in the same direction — towards a comfortable result — which is why a test that reports no problem deserves scrutiny of its driver before its conclusion.