The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance.
JMeter is one of most widely used open source Performance and load testing tool. it is one of the best alternatives to LoadRunner application which is paid.
before we understand the JMeter, we should know some performance testing terms.
- Performance Testing − Performance testing is the non-functional testing and it is to test the best possible performance expectation under a given condition and configuration of infrastructure.
- Load Testing − Testing the system under different load conditions such as full load, step load etc. here we basically simulate the no. of users and operations at given a point of time.
- Stress Testing − This test is an attempt to break the system by overwhelming its resources.
Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications.
It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.
Features of JMeter
- Ability to load and performance test many different applications/server/protocol types:
- Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- Database via JDBC
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- Java Objects
- Full featured Test IDE that allows fast Test Plan recording (from Browsers or native applications), building and debugging.
- Command-line mode (Non GUI / headless mode) to load test from any Java-compatible OS (Linux, Windows, Mac OSX, …)
- A complete and ready to present dynamic HTML report
- Easy correlation through ability to extract data from most popular response formats, HTML, JSON , XML or any textual format
- Complete portability and 100% Java purity.
- Full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
- Caching and offline analysis/replaying of test results.
- Highly Extensible core:
- Pluggable Samplers allow unlimited testing capabilities.
- Scriptable Samplers (JSR223-compatible languages like Groovy and BeanShell)
- Several load statistics may be chosen with pluggable timers.
- Data analysis and visualization plugins allow great extensibility as well as personalization.
- Functions can be used to provide dynamic input to a test or provide data manipulation.
- Easy Continuous Integration through 3rd party Open Source libraries for Maven, Graddle and Jenkins