Client is an E-commerce company, providing user friendly online shopping experience for their customers across the globe. Client has developed web and mobile applications to increase their customer base and market reach, and the developed applications go-live in the impending Holiday Season.
Scalability: Application must be able to handle the load of 10,000 concurrent users from web traffic and 5,000 concurrent users from mobile traffic.
Efficiency: Customer expectation includes the highly efficient application with minimal page navigation response time.
Fail Over: Application should be able to behave as expected under specified load and should have the Fail Over control.
Client has observed a couple of performance outages due to load at peak time and wanted to evaluate their web and mobile E-commerce application performance level ASAP, so that client can optimize Web Service/ APIs or upgrade their infrastructure. Alongside load testing the web application with 10,000 concurrent users and mobile app with 5,000 concurrent users, client wanted to find the performance bottlenecks as quick as possible.
With an understanding of the client profile, problem statement and requirement, our team has taken the first step – choosing the right tool with their extensive exposure to several commercial and open source performance testing tools. Our team has shortlisted Jmeter, an open source Load Testing tool that offers a powerful, realistic load tests for thousands of users running business scenarios across a broad range of enterprise application environments.
We have used Jmeter to achieve following aspects of load testing:
- Breaking point of application
- Stress/Scalability/Capacity Testing
- Spike and Synchronization Testing
- Soak, Endurance Test and Reliability Testing
- Performance Tuning and Diagnostics
Our Approach towards load testing using Jmeter:
- Setting up a test environment that matches with the expected production environment
- Creating Test plan using Jmeter GUI using all possible controls to make the identified scenarios more realistic
- Scheduling the test execution at distinct times, including peak hours
- Analyzing the metrics obtained from the test execution to prepare a load test report
- Re-executing the test and verifying the improvement in performance after re-work on the bottlenecks identified
Performance Testing Process Flow:
Step-1 : Plan the Tests
Step-2 : Create Virtual Users Script
Step-3 : Create the Scenarios
Step-4 : Run the Scenarios
Step-5 : Monitor the Scenarios
Step-6 : Analyze the Test Results and prepare the Test Report
- Early detection of bottlenecks in the performance and reduced risk of page load delays caused by performance issues.
- Client E-commerce application was able to handle 10,000 concurrent users from web traffic and 5,000 concurrent users from mobile traffic
- As a part of bottleneck analysis, we have used “new relic” – an APM tool to monitor Jmeter stats. We have found out that for few customers, there were many loops on the sql calls as each customer had multiple purchases and this increased the response times and we have suggested DB admits to correct the queries or use cache.
- We have also found that memory was leaking out for longer duration tests. We have maintained different Jmeter memory configurations after thorough testing. After client had implemented suggested changes on specific pages, we have observed overall 150% improvement on the application.
- Client was able to comprehend the performance of the server and accordingly client had identified the production server/ infrastructure requirements and was able to determine the monitoring thresholds.
- Client has enhanced the overall system and was able to meet the performance benchmark as client was expecting more users in the coming days
Our team’s expertise and our diligence towards client’s business need & requirement has given client confidence to go-live in the Holiday Season. Even before the season started, client’s application was ready to perform as it should be at the expected load and stress levels.