Apache JMeter is one of the most popular tool to measure the performance of web application or variety of services. It can be used to simulate a heavy load on a server or network or object to analyze and measure performance under different load types.
"The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions."
The protocols supported by JMeter are:
1. Web Protocol: To test the web applications, it supports both HTTP and HTTPS protocols.
2. Web Services: To test web services applications, it supports both SOAP and REST.
3. FTP: File Transfer Protocol, it is used to test the FTP servers and applications.
4. Database via JDBC: It is used to test the database applications.
5. LDAP: Lightweight Directory Access Protocol
6. Message-oriented middleware (MOM) via JMS
7. Mail – It is used to test mail servers such as SMTP(S), POP3(S) and IMAP(S)
8. MongoDB (NoSQL): It is recently supported protocol by JMeter.
9. Native commands or shell scripts
Let’s have some basic concepts where JMeter can be used:
Load tests: Load testing is meant to test the system by constantly and steadily increasing the load on the system till the time it reaches the threshold limit. It is mainly performed to determine the behavior of the system under both regular and high conditions.
Performance tests: Performance testing is a wide category of test in which we look at how the Software Under Test (STU) behaves from a technical point of view: time to do some computation, response time of API or UI, memory used on the machine, disk footprint etc.
Stress tests: Stress testing is a form of software testing that is used to determine the stability of a given system. Under stress testing, various activities to overload the existing resources with excess jobs are carried out in an attempt to break the system down.