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.
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.
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
- 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.
- CLI mode (Command-line mode (previously called 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.
Apache JMeter 5.3 releases.
- Default value of httpclient4.time_to_live has been modified from 2000 to 60000, this means HTTP connections will live longer than before. This has impact on connection creation and SSL handshake, see Bug 64289
- The update to Groovy 3 ( Pull request #590 – ) might break some old Groovy code of your tests. Have a look at the update notes for Groovy 3
HTTP Samplers and Test Script Recorder
- Bug 64160 – Test HTTP/S Test Script Recorder: Name transaction controller/ simple controller using prefix without “-XXXX” suffix
- Bug 64289 – Make httpclient4.time_to_live to 60000 to be closer to typical browser behavior
- Bug 64288 – JUnit Request: Improve UX
- Bug 64407 – Improve JMS Publisher UX. Contributed by Ubik Load Pack (https://ubikloadpack.com)
- Bug 64408 – Improve JMS Subscriber UX. Contributed by Ubik Load Pack (https://ubikloadpack.com)
- Bug 64277 – ForEach Controller: Improve UX
- Bug 64280 – If Controller: Improve UX
- Bug 64282 – Throughput Controller: Improve UX
- Bug 64287 – WhileController: Improve UX
- Bug 64150 – View Results Tree: Allow editing of response data in testers
- Bug 63822 – View Results Tree: Keep position of split pane while switching renderer mode
Timers, Assertions, Config, Pre- & Post-Processors
- Bug 64091 – Precise Throughput Timer schedule generation is improved significantly (e.g. 2 seconds for 10M samples)
- Bug 64281 – Counter Config: Improve UX
- Bug 64283 – XPath2 Extractor: Improve UX