The Apache JMeter is an open source load testing tool developed by the Apache Foundation that can be used to test performance both on static and dynamic resources. It can be used to simulate a heavy load on a server and also some functional testing. JMeter has an open architecture that can be extended with plugins.
The goal of the JMeter plugins is to extend the basic functionality of Apache Jmeter with graphs, load delivery controllers and other function that are not present in the core features of this tool. They also allow including or driving load testing from other tools, in a continuous integration or delivery process with Jenkins for instance.
This article presents a list of open source and commercial JMeter plugins. We have also added some utilities and software testing frameworks build around Apache JMeter. If you want to add a tool to this page, just let us now using the contact form.
Updates
* October 8 2024 : added Prometheus Listener for JMeter, Jmeter Backend Azure, Pacing Jmeter Plugin
* June 19 2023 : added KLoadGen, JMeter ElasticSearch Backend Listener, Influx DB v2.0 listener plugin for Apache JMeter
* June 21 2021 : added Load Testing Center, JMeter GRPC Request, Kubernetes JMeter
* March 17 2020 : added JMeter EC2 Script, Apache JMeter Plugin For Apache Dubbo, JMeter RMI plugin, JMeter WebSocket Samplers, Katalon JMeter Integration, AutoMeter
* September 3 2018: added WS-Security Plugin for JMeter, MQTT JMeter Plugin, JMeter HTTP Form Manager
* February 27 2017: added Lightning, JMeter plugin for IntelliJ IDEA, Electric Cloud JMeter plugin, ZK JMeter plugin, TeamCity Performance Tests Analysis Plugin
* Custom Plugins for Apache JMeter
This project is an independent set of plugins for Apache JMeter. It provides graph plugins and JMeter functionality extensions. It contains also some plugins specifically aimed at testing Hadoop/HBase performance and a set of plugins for Selenium/WebDriver to enable browser based performance testing using a variety of browsers like Chrome or Firefox.
Web site: http://jmeter-plugins.org/
* JMeter Maven Plugin
The JMeter Maven Plugin allows you to run your automated JMeter tests through Maven.
Web site: http://jmeter.lazerycode.com/
* NetBeans JMeter Plugin
The NetBeans JMeter Plugin provides a tight integration of Apache JMeter into the NetBeans infrastructure. This plugin requires additionally the “Load Generator” plugin.
Web site: http://plugins.netbeans.org/plugin/49923/jmeter
* SonarQube JMeter Plugin
This plugin collects performance test results from Apache JMeter and records them in SonarQube (previously called Sonar). SonarQube is an open source quality management platform
Website: http://docs.codehaus.org/display/SONAR/JMeter+Plugin
* Jenkins Performance Plugin
The Jenkins performance plugin allows you to capture reports from JMeter and JUnit. Jenkins will generate graphic charts with the trend report of performance and robustness.
It includes the feature of setting the final build status as good, unstable or failed, based on the reported error percentage.
Website: https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin
* Autometer
Autometer is an open source test automation tool for scaling JMeter load tests using distributed slaves. Based on JMeter master-slave architecture where master acts as a test coordinator, from where tests are triggered and the actual tests are distributed across multiple hosts.
Website: https://github.com/intuit/autometer
* Influx DB v2.0 listener plugin for Apache JMeter
The goal of the Influx DB v2.0 listener plugin for Apache JMete is to make a quite similar online dashboard in the same way as JMeter generates. This open source JMeter plugin supports the latest InfluxDB v2.0 and created appropriate dashboard (“Flux” language has been used to create the queries – now there are a lot fo capacities to build amazing charts, tables with a lot of math function). So that it would be possible to build the monitor hardware solution on the latest InfluxDB v2.0 and telegraf (agent to send the hardware metrics to InfluxDB) as well. The plugin sends metrics to InfluxDB and provides the possibility to visualize the charts in Grafana, have the Aggregate report as JMeter creates.
Website: https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin
* JMeter EC2 Script
This shell script will allow you to run your local JMeter jmx files either using Amazon’s EC2 service or you can provide it with a simple, comma-delimited list of hosts to use. Summary results are printed to the console as the script runs and then all result data is downloaded and concatenated to one file when the test completes ready for more detailed analysis offline. By default it will launch the required hardware using Amazon EC2. Using AWS it is much easier and cheaper to scale your test over multiple slaves but if you need to you can also pass in a list of pre-prepared hostnames and the test load will be distributed over these instead.
Using your own servers can be useful when the target server to be tested can not be easily accessed from a location external to your test network or you want to repeat a test iteratively. The script does not use JMeter’s Distributed Mode so you do not need to adjust the test parameters to ensure even distribution of the load; the script will automatically adjust the thread counts based on how many hosts are in use.
Website: https://github.com/oliverlloyd/jmeter-ec2
* JMeter Gradle Plugin
The JMeter plugin for the Gradle open source build system enables to run JMeter test using Gradle.
Website: https://github.com/kulya/jmeter-gradle-plugin
* JMeter HTTP Form Manager
The JMeter HTTP Form Manager plugin makes JMeter behave a little more like a browser: form fields are automatically populated with preselected values. No more manual correlation of hidden inputs, such as session variables, you just correlate parameters that actually relate to user input. HTTP form POST parameters are extracted at runtime from HTML responses and added to HTTP sampler parameters (similar to JMeter’s HTML Link Parser).
Website: https://github.com/tilln/jmeter-formman
* JMeter ElasticSearch Backend Listener
JMeter ElasticSearch Backend Listener is a JMeter plugin enabling you to send test results to an ElasticSearch engine. It is meant as an alternative live-monitoring tool to the built-in “InfluxDB” backend listener of JMeter. JMeter ElasticSearch Backend Listener provides an ElasticSearch low-level REST client, using the low-level client makes the plugin compatible with any ElasticSearch version. You can enjoy X-Pack Authentication, just supplying your crendentials in the specified fields. You can make bulk requests and there are practically no impacts on the performance of the tests themselves.
Website: https://github.com/anthonygauthier/jmeter-elasticsearch-backend-listener
* Load Testing Center
Load Testing Center(codename ltc) is an open source dashboard/report analyzer for load testing with JMeter. This is an online web-application/dashboard for “continuous integration” (CI) Load testing with JMeter. It provides a central system for launching (incl. distribution testing), monitoring tests, creating reports and for a comparative analysis between different load tests provided with Jmeter. It can be used with Jenkins or as a replacement for Jenkins + Plugins + Jmeter combination. It consists of several modules:
* Analyzer – build reports, analyze results and compare results with another.
* Online – online monitoring for running tests
* Controller – configure and run the tests
* Administrator – configure different parameters
Website: https://github.com/innogames/ltc
* MQTT JMeter Plugin
The JMeter HTTP Form Manager plugin extends your JMeter’s capability to test against MQTT protocol, just as easy as ordinary HTTP protocal.
Website: https://github.com/emqx/mqtt-jmeter
* AtlantBH Custom JMeter Components
AtlantBH Custom JMeter Components is a set of JMeter extensions developed by AtlantBH that includes OAuth Sampler, REST Sampler, JMS Tools (Java Request Sampler), JSON to XML Converter, XML Format Post-processor, HDFS Operations Sampler, HBase Scan Sampler, HBase RowKey Sampler, Hadoop Job Tracker Sampler, HBase CRUD Sampler, JSON utils (JSON Path Assertion, JSON Path Extractor, JSON Formatter)
Web site: https://github.com/ATLANTBH/jmeter-components/
* Cassandra JMeter Plugin
The Cassandra JMeter plugin has been developed by Netflix. It supports all the JMeter functions and variables, hence making it a right fit to generate data into Cassandra. You can also validate the data and measure the performance and the throughput of a Cassandra cluster.
Web site: https://github.com/Netflix/CassJMeter
* JMeter Rabbit AMQP Plugin
This JMeter plugin enables to publish and consume messages from RabbitMQ or any AMQP message broker.
Web site: https://github.com/jlavallee/JMeter-Rabbit-AMQP
* WS-Security Plugin for JMeter
The WS-Security Plugin for JMeter is a plugin that provides features for signing, encrypting and decrypting SOAP messages (WS-Security). Supported are HTTP Request, JMS Publisher and JMS Point-to-Point samplers, as well as third party samplers that expose the payload via a pair of getter/setter methods.
Web site: https://github.com/tilln/jmeter-wssecurity
* UBIK Load Pack
UBIK Load Pack is a set of commercial plugins for Apache JMeter. These extensions target initially more specifically FLEX / Adobe AIR, GWT, JSON and Java Serialization. In a more recent version, UBIK has added an auto-correlator plugin that allows easier load testing for complex web-based clients (Vaadin, Oracle JD Edwards, …) and a video streaming plugin with which you can perform realistic and scalable load testing for MPEG Dash, Apple’s HTTP Live, Microsoft Smooth and Adobe HDS Streaming formats. You can now also analyze your JMeter load in APMs (Dynatrace OneAgent, Dynatrace AppMon, AppDynamics and NudgeAPM) and correlate with your infrastructure metrics.
Website: http://ubikloadpack.com/
* KLoadGen
KLoadGen is a Kafka load generator plugin for JMeter designed to work with AVRO, JSON Schema, and PROTOBUF structures for sending Kafka messages. It connects to the Schema Registry server, retrieves the subject to send, and generates a random message every time. It can also connect to the Schema Registry server, where it retrieves the subjects to send. With KLoadGen, you can test your performance and the business logic. You can easily test both the performance of your system and the business logic behind your data. You can specify a file with the schema or configure the connection to the Schema Registry server on the go to Define schemas for your to define schemas for your test. Generate synthetic data setting schema constraints to generate random data that matches your structure.
Website: https://github.com/sngular/kloadgen
* Lightning
Lightning integrates JMeter non-functional tests with your CI/CD server. It analyses results of your JMeter tests and provides your server with unequivocal information allowing it to make autonomous decision whether to pass or fail the build – with no human involvement needed. Lightning is available as a standalone JAR, Gradle and Maven plugins. All versions accept same input and provide the same functionality. You can use the one you prefer.
Website: http://deliverymind.github.io/lightning/
* Prometheus Listener for JMeter
Prometheus Listener for JMeter is an open source Apache JMeter Backend Listener implementation for Prometheus metrics exporting. Both pull-based and push-based models are supported through different implementations. Prometheus is an open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
Website: https://github.com/kolesnikovm/jmeter-prometheus-listener
* JMeter plugin for IntelliJ IDEA
The JMeter plugin for IntelliJ IDEA is an open source plugin that allows to create run configurations and run JMeter tests from Intellij IDEA.
Website: https://plugins.jetbrains.com/idea/plugin/7013-jmeter-plugin
* Electric Cloud JMeter plugin
The Electric Cloud JMeter plugin calls the JMeter tool via command line and passes the user-provided parameters. The plugin allows you to execute load testing tests from ElectricFlow and to configure these test based for your needs.
Website: https://electric-cloud.com/plugins/directory/p/jmeter
* Katalon JMeter Integration
This free plugin allows you to config, run Katalon Studio tests and view reports on Apache JMeter.
Website: https://store.katalon.com/product/139/JMeter-Integration
* Jmeter Backend Azure
Jmeter Backend Azure is an open source Jmeter plugin that that enables you to send test results to Azure Monitor.
Website: https://github.com/adrianmo/jmeter-backend-azure
* Kubernetes JMeter
Kubernetes JMeter is an open source Jmeter plugin that allows testing workload inside kubernetes. Jmeter chart bootstraps an Jmeter stack on a Kubernetes cluster using the Helm package manager.
Website: https://github.com/kaarolch/kubernetes-jmeter
* ZK JMeter Plugin
The ZK JMeter Plugin can help you to perform stress tests on your ZK applications with JMeter easily; automating the process of replacing parameter values with user variables. It also provides a JMX Visualizer which can help users to monitor server memory usage during the test.
Website: http://blog.zkoss.org/2013/08/06/zk-jmeter-plugin/
* Pacing Jmeter Plugin
The Pacing Jmeter Plugin adds the notion of Pacing to Apache JMeter. The pacing in load testing is the minimum time before iterate. The pacing is fixed but the waiting time to complete the pacing time is dynamic. The pacing is useful for performance testing when modeling for a user at what rate (cadence) he will perform business actions. With a pacing of 3 minutes, one user will perform 20 iterations per hour and 5 vusers 100 iterations per hour. Pacing allows for fixed rates (cadence) to be maintained despite reasonable deteriorations in call response times. Pacing makes easier to model cadences for load increases with several steps (eg: 50%, 100%, 150%)
Website: https://github.com/vdaburon/pacing-jmeter-plugin
* TeamCity Performance Tests Analysis Plugin
This is plugin for TeamCity 8.0 that helps to organize simplest performance testing in CI. It has the ability to aggregate results from a log file, calculate metrics, compare results with reference values, monitor a remote machine with the tested application. additionally, it allows viewing all the results of performance tests as charts.
Website: https://github.com/jtorgan/jmeter_plugin
* Apache JMeter Plugin For Apache Dubbo
Dubbo Plugin for Apache JMeter, Its main purpose is to perform stress testing on the Dubbo interface visually in Jmeter. It is easy to use.
Website: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo
* JMeter RMI plugin
This open source JMeter plugin adds support to JMeter for recording and playing back RMI calls
Website: https://github.com/jmibanez/jmeter-rmi-plugin
* JMeter GRPC Request
This is a simple open source plugin that can be used to make JMeter test any gRPC server, it is not necessary to generate gRPC classes or to compile the protos binary for the service. Just a very simple for input:
* Host and port of gRPC service.
* Method of service needs testing.
* Folder path of proto files.
* Data request in JSON format.
Website: https://github.com/zalopay-oss/jmeter-grpc-request
* JMeter WebSocket Samplers
JMeter WebSocket Samplers is an open source JMeter plugin that defines a number of samplers for load testing WebSocket applications. This plugin provides 6 different WebSocket samplers. Samplers do not create additional threads, so large number of JMeter threads can be used. This plugin provides also support for wss (WebSocket over TLS).
Website: https://bitbucket.org/pjtr/jmeter-websocket-samplers
Apache JMeter References
Apache JMeter web site: http://jmeter.apache.org/
Tutorial on How to Write a plugin for JMeter (PDF)
Further Reading
Awesome JMeter – A collection of resources covering different aspects of JMeter usage
Customize a load test with Apache JMeter plugins and Azure Load Testing
Custom JMeter Samplers and Config Elements
WebSocket samplers
https://bitbucket.org/pjtr/jmeter-websocket-samplers
Thanks for letting us know about this plugin.