Building a tool using Shift-Left Performance Testing Method
As you know, Performance Testing will always be conducted at the later stages of the development or rolling out of the code to the Performance Environment. This will affect the quality of the product/code.
In Agile Development process, Performance Test is usually delayed. To avoid this a new trend is followed by few Organizations i.e. Shift Left Performance Testing.
What is Shift Left Performance Testing?
Shift Left Performance Testing means enabling developers and testers to conduct performance testing in the early stages of development cycles. Traditionally, performance testing is a task performed at the end of development cycles because it requires a set of specialized Performance tools and skills, i.e. expensive hardware in dedicated environments by trained performance test engineers.
To achieve this, teams need to begin creating performance tests along with unit and functional tests. When functionality is implemented and configured, those performance test need to run automatically and report in such a way that it alerts you when there is decrease in performance. To execute the tests automatically, performance test execution must be tightly integrated as a part of the CI/CD process, in which after each code check-in, performance tests are executed in local environments along with functional and unit tests.
Since, Performance Testing Engineers will be busy with Performance Environment, this is difficult for them to perform tests in Lower Environments like DEV or QA.
In Dev Environment, code check-ins will be rapidly done. It's difficult for a team to Validate the script in CI/CD and this might result in Errors in Report.
How to Overcome the above-mentioned Problem?
Build an On-Demand Performance testing framework which can perform test in any environments by Just One click.
How does it work?
In this framework, any Team member can perform Performance Test by just selecting the number of threads in UI and by clicking run test button. This should trigger a test in JMeter and captures all the server-side metrics using APM Tools like Kibana. At the end of the test, reports will be generated and stored to S3 bucket to compare/aggregate all the reports during sprint cycle. Parallelly, if any APIs are breaching SLA time, automatically BUG will be created using JIRA Rest APIs. Only Task for Performance Team is to update a script when there is a change in request.
All the reports like CSV, JMeter HTML Dashboard Report, APM tools Report everything will be sent through a mail automatically to every members of the team including managers after the accomplishment of the test.
Why to follow this approach?
- Cost is less since this approach is using all open source tools.
- Workload will be reduced on the Performance Test Engineers on lower environments.
- Tasks like Performing Testing, Reporting and Bug creation are all automated.
- This gives us both Server-side and client-side performance numbers of the APIs.
- Developers can fix their code at the earlier stage of the Development and can be tracked through a Ticket.
Wow Mohan! You really wrote it well. It is simple, easy to read and makes it point. Performance engineering is a hard problem in the industry.
Remarkable !! I particularly liked the fact that it was an objective look at the issue & address to the problem of performance testers , pointing out the advantages and disadvantages of being early in the game .
A very crisp and compact view of the Shift-left approach in Performance Testing. Well done Mohan M
Very well articulated. Good work 👍
👍