Scalability tests are part of the classic tests to have regularly made on your website. This kind of test, allowing to measure the resistance of a website in the case of a drastic increase in the number of visitors, aims at defining the maximum capacity of the website in question. By analyzing its behaviour during the increase, it is then possible to bring to light the sensitive points of both the system and the application, to optimize the site’s global performances.
During these tests, user paths are simulated through different scenarii, to represent the tracks that a user can follow on the website. It is important to define these scenarii well, by choosing the ones that are the most observed, to get as close as possible of the users’ real behaviour, and thus improve the relevance of the scalability test. It also allows, apart from knowing the volume of traffic that can be handled, to rudely test the user experience offered by the website, based on its response time. The next step is to improve it to, ultimately, increase the conversion rate.
A scalability test is made within a context of prevention, to make sure of the good functioning of an application. It is useful in many cases:
- Before putting a website online, during the development, or during the operational acceptance testing: it allows to verify the pertinence of the technical choices that were made, and to make sure that the application can be efficient according to the number of expected visitors.
- When a traffic peak is expected: it allows to measure the resistance of the website and, in the case of unsatisfying results, to set up optimization solutions beforehand. For instance, before the publication of major news on a media website, before a advertizing campaign for a corportate website, before the sales or a commercial operation on an e-commerce website… In that case, we advise to set up this test at least 2 or 3 weeks before the peak traffic period.
What is measured during a scalability test?
A scalability test measures the response time of the website during a progressive increase of the number of visitors. This response time is the sum of the application’s processing time and of the response time of the webserver. It is however not possible to check where any reduction in speed at the applicative level can come from, without any additional tools (the solution Quanta, for instance, can help you on that point).
How can a peak load be measured?
For an efficient analysis, the increase in load is progressive, in order to find the rupture point of the application. There are two methods however, each with its advantages and drawbacks: continuous increase, or serial increase.
- The continuous increase enables to find the precise rupture point where the application stops responding. It is relatively complex to set up, and it is risky: since the increase is continuous, the test has to be completely automated. It means that the information is gathered at the same time as the monitoring, and that if there is a problem, the test has to be started again from the top. Besides, with this technique it is complex to know the impact of the number of simulated users. Indeed, the previously launched scenarii are not necessarily over when the number of users increases : it can mess with the results.
- With the serial increase, the results analysis is easier: when in doubt, it is possible to relaunch a single test session, independently from the others. This method requires, of course, for the architecture to remain in an identical state, in order not to distort the results, and to be able to efficiently compare the measures.
With what tools?
Scalability tests are made with a charge injector, which simulates the actions of different users. It is composed of a user simulator, which launches scripts that test the predefined scenarii, and of a data generator. The latter’s mission is to influence the scripts, to simulate different operations depending on the users (for instance, choosing different products on an e-commerce website), always in the aim of getting as close as possible of a real behaviour.
Of course, probes also have to be installed on the targeted system to measure the use of different resources, and on the application to measure the effective behaviour of the tested website.
The main objective of these tests is to have concrete elements allowing to act and optimize the website, to constantly ensure its availability for the Internet user, no matter its traffic or activity. Thus, websites can maintain their brand image, their reputation, their visibility but also, in the case of e-commerce websites, their sales and thus their turnover.