Shift left is a great way to find out the bugs early in the SDLC. You can checkout out previous article to understand the benefits and how to implement it.
Shift left is not just limited to finding functional issues in the application. Any improvements (functional or non-functional) made to an application before it is pushed to production, benefit both the business and the end user. The non-functional aspect of the application like the performance of the application should also be taken care of, there are several things that can be done to shift left performance testing.
In our previous article about How to Implement Shift-Left Approach Effectively? We have talked about including performance engineers in “Application Architecture & Software Design”. The Software Architect and Performance Engineer should be involved and discuss the software architecture and software design of the application considering factors like scalability, maintainability, and reliability.
For example, including performance engineers during the design phase is important as they can provide inputs with respect to the overall performance of the product.
There are several incidents in the past where brands has to face slowness issues in the production. A few of those incidents as listed below where we can see the issues reported because of missing out on the robust performance checks.
- A popular e-commerce website launched a major sales event without conducting thorough performance testing. As a result, the website experienced a sudden surge in traffic, overwhelming the servers and causing the site to crash. The company lost significant revenue and faced backlash from frustrated customers.
- A gaming company launched a highly anticipated online multiplayer game but failed to conduct comprehensive performance testing on its servers. As a result, players experienced significant lag, frequent disconnections, and unplayable gameplay. The launch was marred by negative user feedback and a decline in player engagement.
- A video streaming service introduced a new feature to enhance the user experience but failed to adequately test its performance. Subscribers faced excessive buffering, playback interruptions, and low video quality, which led to widespread complaints and cancellations of subscriptions. The company's reputation suffered, and it took considerable time and effort to regain customer trust.
As it is beneficial to start performance testing of the application early. Let’s see How to use JMeter to shift left performance testing
- JMeter is easy to use tool, developers should include this for testing the performance at the unit level. JMeter has various samplers to simulate the load on different protocols.
- If the backend functionality is exposed via REST APIs then it is advised that the developers use JMeter to test the API in isolation to ensure that the individual API can handle expected load and response time.
- In Jmeter, developers can add the listeners that collect and display the test results in various formats, such as tables, graphs, and trees. It provides valuable information about response times, throughput, errors, and other performance metrics, that will help the developers to know performance issues during the development phase.
- Developers can put high loads and stress conditions in the Thread group using Jmeter during the development phase to identify performance bottlenecks. This can generate user traffic or use load testing tools to simulate realistic user scenarios.
- Run your JMeter performance tests on the test environment. Monitor system resource usage, such as CPU, memory, and network, during the test execution. JMeter provides listeners to collect and analyze performance metrics. This helps to evaluate the resource utilization and fix before it gets merged into the main branch.
- Share the performance test results and connect with the development team to address the identified issues. This collaboration promotes a proactive approach to performance optimization and fosters a culture of continuous improvement.
- Implementing continuous delivery and continuous integration (CI/CD) pipelines to automate the testing process and ensure that performance testing is integrated and performance tests are executed before every release to production