Endurance testing is non-functional type of testing where the software is tested with very high load which is extended over a significant amount of the time to verify the behaviour of software application under sustained use. The main goal of endurance testing is to make sure that the application is capable enough to handle extended load without any deterioration of response time. This sort of testing is performed at the last stage of the performance cycle. Endurance testing is a long process and sometimes lasts for even up to an year. This may include applying the external load such as internet traffic or may be user actions, this is what makes the endurance.
Main Goals of Endurance testing:
- The prime goal of endurance testing is to check for memory leaks.
- Discovers how system performs under the sustained usage.
- To make sure that after a long period the system response time will remain the same or get better than the start of the test.
- To decide the number of users /or transactions, if a given system will support and meets performance goals.
- To handle the future loads: we need to understand how many additional resources are required to support usage in future.
- Endurance testing is generally done by either overloading the system or may be by reducing certain system resources and verifying the consequences.
What we have to monitor in Endurance testing?
In endurance testing the things that are tested
- Test memory leakage- constant checks are done to validate if there are any memory leakage in the application, which can cause crashing of the system or OS.
- Test connection closure in between the layer of the system
- Test database connection close successfully-If database connection isn’t closed, it may result in system crash.
- Test response time- System is tested always for the response time because application becomes less efficient as a result of the long use of the system.
Jmeter in Endurance testing:
Consider an example where the endurance testing is performed in order to check the memory leakage by analyzing the heap memory used by the application.
- Add a dummy sample in the Apache Jmeter software
- some listeners
- create more number of threads, specify the thread ramp up time and duration
and execute the test for 5 minutes
- we have to use the Visual VM which comes in JDK package to monitor the heap memory while starting the test.
- when we run the tests on the Java VM, we can get the reports of CPU memory usage etc.
- we can see the garbage collector which monitors the leakage of the heap
We will save the file. Now the test has been completed and the heap leakage has been reduced.