Performance testing basically it is a type of non-functional testing because when we perform performance testing we do not test the functionality of the software we assume that the software software’s functionality is working fine and we could proceed with doing the performance testing of the application and that is why it is called non-functional testing because we do not test the functionality of the software when we do performance testing there are four major types of performance testing techniques load testing volume testing stability testing and stress testing
In load testing we gradually increase the load on the application in form of virtual users and we test the performance of the application basically we test that the application basically, we test the response time that the application is taking to open up so generally the application applications response time remains okay with one user five user or ten users assessing the application at the same time but the performance of the application starts to degrade when the number of users just starts to increase so we test the application with hundreds of virtual users who try to access the application at the same time and then we check if whether the response time that the application is taking is within the benchmark defined by the client generally the clients gives the benchmark on the response time that the application should take no matter how many users try to access the application and also the client also give the benchmark on the maximum users that could access the application at any time in peak hours so suppose the application benchmark is thousand users so maximum thousand users the application should be able to handle with the response time of say one millisecond so the application should open up in one millisecond even when thousand virtual users try to access the application at the same time so we test the performance of the application by gradually increasing the load on the application and we check how the application is behaving when the load gets increased.
So the next is volume testing in this we increase the number of records in the database of the application so generally the application’s performance remains okay when there are less number of records in the database but what we do is we gradually increase the number of records in the database and in this case we go up to lacks of records and side by side we test the performance of the application the response time that the application is taking when there are lacks of records in the database so the response time in this case also should remain within the benchmark of the of the application as defined by the client it should not go beyond the benchmark that is the application should not take too much time to open up even when there are lacks of records in the database
In stability testing we test how the application is behaving when number of users work on the application for long hours so in this case we hit the application with a number of users say 100 users who try to access different functionalities of the application and we continue to hit the application for long hours let’s say 24 hours and we test the performance of the application the response time that the application is taking after 24 hours of 100 view users hitting the application so the performance of the application should not degrade even in this case and the last is stress testing in this we increase the load on the application up to the extent that the application breaks down and in this way we get to know that the machine on which the application is deployed could take this number of users and beyond this n number of users the application starts to break down and if we want the application to run on more number of users then we need to increase the need to improve the hardware infrastructure of the application server so suppose with the current hardware infrastructure the application is able to handle 200 virtual users and after that’s that its performance starts to break down then we get to know that the current infrastructure would handle only 200 users and if the client requirement is safe that the application should be able to handle 500 users then we need to drastically improve the hardware in terms of the cpu ram etc so that the application should be able so that the application start handling the number of virtual users even beyond 200 up to 500 so um the next thing is that performance testing can’t be done manually because it is not possible that even 100 users sit on 100 different machines and try to access the application at one time it is very expensive and practically impossible so that’s why the concept of virtual users comes into the picture and virtual users are generated using performance testing tools so the two major most famous performance testing tools are geometer and load runner
jmeter is open source performance testing tool that you could download and use for free but you could use jmeter only to test the performance of a web application whereas load runner is a paid tool by hp company you could use you could do performance testing up to 50 virtual users on any application for free using load runner but beyond 50 users you need to buy a license which is very expensive but the good thing is that you could do performance testing on a number of applications even the applications other than web like desktop applications you could there are a number of protocols in loadrunner like file transfer protocol internet messaging etc which are not available in open source free tool geometer
So if you have a complex application then it is better to use load runner rather than j meter but finally it’s up to you and your choice so this this is all about performance testing.