Load testing isn’t always as straightforward as one might think. Setting up and executing a load test based on anecdotal information isn’t the best method. Make the wrong assumption and you might quickly find the breaking point of your application or website, unintentionally bringing it down.
Today, most companies often utilize traffic analysis tools to help take the guesswork completely out of the equation. For the majority of companies, Google Analytics is the preferred tool. So, how exactly do you convert web analytics into concurrent users? This article will take you through the process of determining an accurate number of concurrent users based on your web analytics tools. For this case, we will be utilizing Google Analytics.
Gathering User Data
Web analytics tools can provide you with a wealth of data points, such as total users (new or returning), total number of sessions, page views, bounce rates, and more. And furthermore, you can adjust the timeframe by hourly, daily, weekly, monthly, or even input a customized range. In the case of Google Analytics, these metrics can be found within a single dashboard, called the Audience Overview.
Average Traffic vs. Peak Traffic
Before calculating the number of concurrent users, you’ll want to find the times where peak traffic occurs. This is important for a couple of reasons. Using the average traffic metrics will often be significantly lower than peak times. Websites and applications typically have recurring times during the day or week when traffic peaks. In order to test for that level of traffic, you need to test for traffic well beyond average traffic metrics.
Setting up your tests using normal, or average traffic, won’t put the necessary stress on your system to see how your system responds to higher load levels. Remember, load testing sets out to find performance bottlenecks under higher than normal load levels. If you don’t stress your website or application properly, or don’t push your site or applications beyond normal everyday traffic, the results you get back aren’t going to provide you with any data about where potential issues exist. If your site or application suddenly gets bombarded with high levels of traffic, beyond what you tested for, you risk your sites and applications encountering performance problems, and impacting the user experience, at the worst possible time. It is much better to take a proactive approach and be prepared for this scenario, rather than having to suddenly be notified that your site or application went down and now you and your team have to run around trying to bring your systems back online as quickly as possible.
Secondly, you want the most realistic data back from your test. These results will undoubtedly be used for determining if additional infrastructure and capacity is needed, so in order to gauge whether or not your systems can handle peak traffic, you’ll want to know it now, so you can better plan and manage your infrastructure, not down the road when it is too late. And remember that the number of concurrent users is just a starting point. Always keep in mind your individual business objectives and SLAs when carrying out load tests.
Calculating the Number of Concurrent Users
Within the LoadView platform, all times are defined in minutes, so when parsing through the web analytics data, it is important to find the peak number of visits and average visit duration for a given hour. The formula used to determine the number of concurrent users is as follows:
Concurrent users = Peak Hourly Visits x Average Visit Duration (in minutes)/60
For example, if your peak visits per hour is 200 visitors and the average visit duration is 6 minutes, the number of concurrent users that should be used to create 200 visits per hour is 20 concurrent users. Calculating the number of concurrent users is one of the many factors needed to properly setup a load test. The good thing is that LoadView can take the complexity and worry out of load testing. LoadView steps you through the process and takes out the hassle of having to manage load injectors or virtual machines.