Apache JMeter
Apache JMeter is an open-source Java application for load testing and performance measurement of networked services and applications (performance testing).
- Load and performance testing for web applications, services, and protocols (performance testing)
- Functional testing of applications and services through configurable test plans (functional testing)
- Support for multiple protocols such as HTTP(S), JDBC, LDAP, JMS, and others (protocol testing)
- Extensible plugin architecture with samplers, listeners, timers, and configuration elements (tooling framework)
- Command-line, GUI, and distributed testing modes for local and remote execution (test execution and orchestration)
More About Apache JMeter
Apache JMeter is a Java-based desktop application designed to load test and measure performance of applications and a wide range of services (performance testing). It originated as a tool for testing web applications and has expanded to cover multiple protocols and back-end services. The project is maintained under The Apache Software Foundation and is distributed under the Apache License 2.0 (open-source licensing).
JMeter operates on a concept of test plans composed of thread groups, samplers, controllers, listeners, timers, and configuration elements (test plan modeling). Thread groups define the virtual users and concurrency model, while samplers represent the actual requests sent to target systems, such as Hypertext Transfer Protocol (HTTP) requests, JDBC queries, JMS messages, or LDAP operations (protocol testing). Controllers define the flow and logic of test execution, including loops, conditions, and sequencing (test flow control). Listeners collect and visualize metrics such as response times, throughput, error rates, and sample logs (observability and reporting).
The tool supports testing of multiple protocols including HTTP(S), Simple Object Access Protocol (SOAP), REST-style services, JDBC database connections, LDAP, JMS, File Transfer Protocol (FTP), and others as documented in its samplers (protocol testing). It can be used to test web applications, APIs, and back-end components. JMeter is not restricted to web browser-based testing and can be used to send arbitrary requests to various services. It supports parameterization, correlation through regular expressions and other post-processors, and configuration elements for handling cookies, headers, and authentication (test data management).
Enterprises use JMeter in pre-production and performance engineering workflows to simulate user load, validate service-level objectives, and detect performance regressions (performance management). JMeter tests can be executed in GUI mode for design and debugging and in non-GUI mode for automated or headless execution, including integration into Continuous Integration and Continuous Deployment (CI/CD) pipelines (automation and DevOps). Distributed testing allows multiple JMeter engines to generate load across machines, controlled by a central controller instance (distributed load generation).
JMeter provides extensibility through a plugin system and well-defined APIs for custom samplers, listeners, and logic controllers (extensibility framework). Results can be exported in various formats for external reporting and analysis. The project documentation includes guidance for running JMeter on different platforms, configuring JVM options, and using features such as test fragments and reusable components (tooling operations). In an enterprise directory or catalog, Apache JMeter is typically categorized under performance and load testing tools, with coverage of web, Application Programming Interface (API), and protocol-level testing for distributed systems (performance testing category).