Apache JMeter is an application that is open source, and designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to test even more!
What is it Used For?
JMeter can be used for a variety of things! Its best use though is for performance testing web applications. Using JMeter you can simulate a heavy load on servers, groups of servers, network, or object to test its strength and performance under load.
Apache JMeter features include:
- Ability to load and performance test many different applications/server/protocol types:
- Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- 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, Gradle and Jenkins.
Say you were asked to simulate 200 users hitting an API at one time, how would you do this? Well, JMeter allows you to do exactly that! It would be near impossible to attempt to find 200 people whit a PC and internet access to hit an API at one time right? Well, with JMeter you can do exactly that.
Best used for:
- API Load & Performance Testing
Learning Curve:
- Medium
- Can do more than Google Postman, but is not quite as easy to pickup.
JMeter Advantages
- Open Source
- Friendly GUI
- Platform independents
- Multi-threading framework
- Visualize Test Results
- Easy Install
- Extensible
- Multi Protocol
- Can be used with Blazemeter
How does JMeter work?
JMeter simulates a group of users sending requests to a target. It starts by Sending a request to the target, then getting statistics information of the target, then generates a test report based on the server at test by simulating multiple users sending a request to the target server.
JMeter Plugins
JMeter currently supports 64 plugins. JMeter Plugins can be installed on JMeter using the Plugin Manager.Each plugin serves different purpose.
How do I use JMeter?
- Download JMeter
- Using JMeter to understand how to use it
- Component reference to have detailed information for every Test element
- Functions reference to have detailed information and examples for every function
- Properties reference for all properties that allow you to customize JMeter
- Javadoc API documentation
- JMeter FAQ (Wiki)
- JMeter Wiki
- Building JMeter and Add-Ons for advanced usage