In stress test, we are often confused on concurrent loads with concurrent users. The question is “Should I conduct stress test based on concurrent users or concurrent loads?”.
Google Analytics provides a wealth of information about user and traffic statistics on website. Here is a GA dashboard of page peak usage statistics.
Formula of converting Pageviews Per Hour to Concurrent Users:
Concurrent_users = (Hourly_views * Time_on_page_by_second) / 3600
According to above GA statistic of the page peak usage, here is the base information for load test:
Page Views: 15000 per hour
Avg. Time On Page: 73 second
Concurrent Users: 15000 * 73 / 3600 = 305
Below is another GA report which was actual heartbeats during the peaks of the site. It can give us the answers to “how many requests, users to use for our load test?”. The information presented in the first row of charts includes three data points that are EXTREMELY useful to calibrating our load test against real world data.
• Active Visitors: How many users are clicking around the site, where a visitor is considered active if they are doing something (navigating, clicking items that generate tracking events, etc.) within a 30 minute sliding window. At peak times, this can give us rough feel for what the peak number of concurrent could look like in the pathological case (where they are all 100% active at the same time). In the screenshot, there were 718 visitors actively using the site. We might consider this number as the maximum number of clients, but Page Views per Second (described below) may offer us more insight.
• Page Views per Minute: This chart can give us an aggregate sense on the speed with which visitors were navigating between pages on the site. It’s useful to get a sense over a 30 minute window of how “bursty” user’s access patterns are, and if it looks fairly even (as it does in our screenshot) provided good evidence for testing with a continuous load pattern.
• Page Views per Second: This is the real heartbeat, what we see as a trend here can tell us about how many requests per second we should be able to support. In the screenshot, They are showing between 5-10 page views per second, only once jumped to 15 — not a very high number considering we have around 718 users (which is a good example of how Active Visitors may overstate the real load if we treat it as true concurrent load). If we want to test this load, we would, by trial and error, run tests adjusting the number of clients so that we see between 10-15 requests per second.
So the conclusion of correct stress test approach I think should be, based on concurrent loads instead of users, set a certain stress with a proper load then run for a given time period, which will best simulate the real world scenarios.