  Conventional load-testing tools are based on a fifty-year old time-share
computer paradigm where a finite number of users submit requests and respond in
a synchronized fashion. Conversely, modern web traffic is essentially
asynchronous and driven by an unknown number of users. This difference presents
a conundrum for testing the performance of modern web applications. Even when
the difference is recognized, performance engineers often introduce
modifications to their test scripts based on folklore or hearsay published in
various Internet fora, much of which can lead to wrong results. We present a
coherent methodology, based on two fundamental principles, for emulating web
traffic using a standard load-test environment.
