success story

Automated performance testing of streaming services

The framework focuses on all testing dimensions - Performance, Elasticity, Availability, Reliability, and Scalability
challenge_icon
the challenge
For a professional provider of communication networks, high performance and quality of their online content are key. Ensuring real-world load simulation on servers for performance testing was a big challenge. Nagarro gathered the client's biggest pain points and brainstormed the best possible solution, like simulating end-user load on Nginx servers, testing video streaming applications while capturing network traffic for performance optimization, and load testing by using real-user browser simulation to obtain customized API results.
process_icon
the solution
To overcome challenges like limited configuration and memory capacity, support for JavaScript or real-time test monitoring capabilities, and large-scale cloud-based testing, we developed a browser-based load testing framework with AWS and Puppeteer. All web server requests are now captured automatically. Real browser instances are opened on load generators. A puppeteer simulates a real user by navigating the web application using the GUI. Network traffic is recorded live, and performance is measured in real time. Logs and screen shots of every run are recorded in a performance report. This framework also enables the testing of streaming-based applications in the US, Asia & Europe regions. Our framework focuses on all dimensions of performance testing - Performance, Elasticity, Availability, Reliability, and Scalability (PEARS).
solution_icon
the outcome
  • Cost optimization: Servers are shut down during off-hours and are restored in peak business hours, ensuring a cost-effective way of working.
  • Load Generation: Front-end calls put the actual load on nginx servers and are optimized accordingly. 
  • Multiple instance handling: Our solution has handled as many as 80 browsers in a single container with the help of puppeteer.
  • Front-end optimization: We can now gather accurate real-world data, such as network and request delays, to optimize user experience. 
  • Testing of multiple geo locations: We can now test across multiple geographical locations.
  • Automation: Browser-based load testing allows us to automate and fetch performance data for complex applications like ticketing systems, video streaming, gaming etc.