A web application load test performed correctly can be a valuable tool for identifying bottlenecks, determining resource consumption levels, and quantifying system capacity. One done incorrectly is revealed as a waste of time and effort when the system under test (SUT) goes live with completely different performance characteristics than the load test indicated. One problem with load test quality, almost always overlooked, is the potential for the load generator’s user thread pool to sync up and dispatch queries in bunches rather than independently from each other like real users initiate their requests. A spiky launch pattern mischaracterizes workload flow as well as yields erroneous application response time statistics. This talk describes what a real user request timing pattern looks like, illustrates how to identify it in the load generation environment, and exercises a free downloadable tool which measures how well the load generator is mimicking the timing pattern of real web user requests.
Most web application load testing professionals assume their load generator’s virtual user thread pool precisely mimics the request timing that a comparable set of real users produce. However, a traffic generator is one computer initiating web requests with a large fixed set of user threads operating in closed loops while real users each have their own computing device and make queries independently from each other as a dynamically changing subset of a larger population. The simulator’s heavier workload, the think time method it uses, and the feedback produced by its fixed closed loops may cause the user thread pool to sink up and offer unrealistic surges of traffic to the SUT. Few practitioners think about user thread synchronization, and those that do find the problem difficult to quantify when it occurs. This talk describes the request pattern produced by real users and provides a measurement methodology for evaluating request pattern quality. The approach taken is illustrated with a free downloadable tool I developed: the web-generator-toolkit. It can be found at Dr. Neil Gunther’s GitHub location: github.com/DrQz/web-generator-toolkit. To view the full video you must have a CMG membership. Sign up today!