The Quest for More Reality in Load Testing
The expansion of the Internet into every realm has put a growing pressure on web applications and the engineering approaches and services necessary to achieve high performance.
Performance is essential for the success of web applications, and load testing must be realistic as possible. Load testing should simulate real-world conditions to discover how well applications handle peak loads and how well they scale.
Sometimes people don’t even attempt load testing because achieving close to real-world conditions is perceived as intimidating. But websites must handle unpredictable loads as well as diverse and irregular user interactions, and performance issues after launch typically point to a failure to simulate reality closely enough in testing. Estimating the number and behavior of users and real web application recording methods and tools can be part of load-test approaches.
There is no way of knowing how many people will visit websites and when. Load testing uses the concept of a virtual user as a substitute for a real user; the virtual user makes application requests in a given sequence with “think” time between responses and requests.
Load tests using arrival rates are considered more accurate than concurrent user models. (Concurrent users are modeled requesting a variety of services at some regular interval, but not all at once, and not for the same thing). The arrival-rate model reacts to feedback and makes modifications based on response-time changes during the test period. Thus, the generated load is more unpredictable, which aligns with the real world.
Load generation considers user behavior by modeling representative customer behavior. Factors related to user behavior include:
- Connection speed—the distribution of virtual users in connection-speed categories to determine how quickly they can access the site;
- Software/hardware configuration—load factors can vary widely depending on the type of browser, browser plug-ins, OS, and CPU speed; and
- Think time—the amount of time a virtual user spends interacting with a page before requesting the next page. Think time is affected by page size, familiarity of the user with the content, and the type of page (examining order forms vs. glancing at a confirmation).
By utilizing specialized recording tools, testers can navigate through real applications and annotate transactions, creating test scenarios that imitate actual user traffic. Particular roles and interaction activities should be defined for the test and their usage in the scenario should be allocated by percentages. For example, at an ecommerce site, users either browse and leave or browse, add something to the cart, and check out; these are incidents that should be recorded for use in test cases.
Gor is an open-source tool for capturing and replaying live HTTP traffic in a test environment to capture real data for test cases.
Are you feeling the pressure to deliver high-performance websites? The website monitoring services at https://uptime.com/ provides data and reports that can help you ramp up your site’s performance.