success story

Performance Testing for homeschooling made AWS(ome)

Thanks to all our machines in the entire EU region
challenge_icon
the challenge
The client asked for end-to-end performance testing, while considering user volume in future. The requirement was to simulate the browser actions as the application was heavy on the front-end and many Ajax calls/JS codes were getting executed at the front-end, with lot of data coming from the Content Delivery Network (CDN). This meant the load test needed many LGs, and spawning and managing these LGs was a major challenge (up to 1250+ AWS c5.24xlarge servers with a capacity of 96 vCPU and 192 GB RAM). Since there was no out-of-the box testing solution available to simulate audio-visual (AV) scenarios, we came up with an in-house solution to execute the performance testing.
process_icon
the solution
We developed a customized performance testing framework based on open-source tools, using AWS platform, backed by Nagarro’s extensive experience in performance testing. To simulate end-to-end user journeys, we developed JMeter and web driver-based scripts. We also created autoscaling groups across different geographies in the EMEA region to spawn the load. With the help of Python-based scripts, we collected and processed results from different Load Generators (LGs), including a graphical report. And no, that’s not all, we also wrote JavaScript-based utilities to collect WebRTC stats and project the results as charts and graphs. We used Nginx-based utility to auto distribute the test data on LGs. Our ELK and CloudWatch setups helped us monitor the test results and infrastructure statistics.
solution_icon
the outcome
All load and performance tests were run successfully, much to the client’s satisfaction. A thorough platform check and multiple positive results later, it was gladly decided to use this platform for conducting online classes during the pandemic. Apart from achieving the expected goal of meeting client requirements, our testing also ensured high user satisfaction. In addition, the performance data collected during the test helped the client to identify potential upgrade opportunities and adjustments to meet future requirements as well.