The University of Leicester was implementing a new version of a booking system to allow students to book accommodation once A Level results were released. The project team wanted to ensure the system would cope with the load after problems in the previous academic year.
We worked with the University to develop a Performance Testing plan via a workshop session with all project stakeholders.
Consensus was reached on user journeys, volumes and transactions, and a number of tests were profiled and agreed with the University to represent both normal and peak scenarios, as well as Soak and Stress Tests.
The plan was approved and detailed test preparation was carried out. A set of performance scripts were developed against the user journeys within scope, to accurately simulate all front-end activity on the application on results day. The scripts were collated together to form scenarios, to represent each of the agreed tests to be executed on the system.
Performing the tests
Work was carried out remotely using the JMeter performance test framework, in conjunction with cloud injectors, via Amazon Web Services.
There were issues identified immediately with the number of sessions being created for each concurrent user – three web server sessions were being created for each user, limiting the number of concurrent users that could simultaneously access the system to one third of the number that should have been possible.
There was also a problem with session timeouts being set too long so that completed sessions were not being released quickly enough, further limiting the concurrent users that could access the system.
Once these issues were resolved, the number of users accessing the system was increased, but even so, problems were still identified. In particular, during the Soak Test, an exploratory manual test was carried out while the test was running, which caused database locking issues.
The problem alone would have caused significant problems for the University if it had not been identified in this test proving, without doubt, the value of conducting these tests.
As a result of the issues found, the vendor developed and released a patch for the system.
Once Functional Testing had been completed by the University successfully, the changes were implemented into the test environment and the performance tests were re-run.
A further soak test was then run on the system, taking the number of concurrent users up to the anticipated peak levels. The tests proved that the patch had successfully remedied the problems found.
The final results of the tests provided the University with the confidence that the patched system could cope with the anticipated load for the August peak.