George Maksimenko is a Lead QA engineer at Adexin. He has 10 years of experience in software testing. His primary activities in software testing are automation testing and performance testing.

Learn JMeter in 5 Hours

Start Learning
Slack

Test Your Website Performance NOW!

Feb 22 2018

Top 10 JMeter Plugins

Apache JMeter™ is a powerful tool for load testing. By default, JMeter has many features, but one of the best things about JMeter is that it is open source software! Therefore, any interested party can develop additions that will extend its capabilities and insert functions. These additions are called Plugins. Developers have already created a large variety of useful plugins, which is really cool and shows the strength of the JMeter community.

 

The JMeter Plugins website lists a lot of available plugins for JMeter. On the website we can search through the 71 available plugins and hopefully find one that fits our needs. The website also contains some more useful information such as: guides, descriptions, usage statistics and a support forum. The usage statistics page contains some interesting information, like a graph showing the % of known JMeter version installations over time. There is also list of available plugins sorted by the number of known users.

 

As JMeter plugins are such a powerful tool for building our load tests, let’s take a look at the 10 most popular JMeter Plugins and learn how and when to use them.

 

(Want the info on the latest plugins? View our webinar What’s New in JMeter 4.0, JMeter Plugins and Taurus).

 

10th place: 3 Basic Graphs

 

The 3 Basic Graphs plugin extends JMeter with three listeners: Active Threads Over Time, Response Times Over Time and Transactions per Second. These listeners provide you with information and KPIs about your load testing results in a graphic form, enabling you to analyze the success of your performance tests and making it easier to decide on future steps for your website or app. 

 

The plugin can be installed via the Plugins Manager as the “3 Basic Graphs” plugin or as a part of the “jpgc - Standard Set” plugin.

 

top jmeter plugins

 

Active Threads Over Time Listener

 

The Active Threads Over Time listener shows a graph of how many concurrent users are active in each thread group during a test run.

 

How to find: HTTP Request -> Add -> Listener -> jp@gc - Active Threads Over Time

 

Example:

 

top 10 jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/ActiveThreadsOverTime/

 

Response Times Over Time Listener

 

The Response Times Over Time listener shows a graph of the average response time in milliseconds for each sampler during a test run.

 

How to find: HTTP Request -> Add -> Listener -> jp@gc - Response Times Over Time

 

Example:

 

best jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/ResponseTimesOverTime/

 

Transactions per Second Listener

 

The Transactions per Second listener shows a graph of the number of successful and failed transactions per second for each sampler during a test run. Also it has two types of graphs: a detailed display (one row per sampler) and an aggregated display (all samplers combined).

 

How to find: HTTP Request -> Add -> Listener -> jp@gc - Transactions per Second

 

Example:

 

useful jmeter plugins

 

valuable jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/TransactionsPerSecond/

 

For more information about JMeter listeners you can check this blog post.

 

9th place: JSON Plugins

 

Installing the JSON Plugins provides us with one more sampler and two post processors: the JSON to XML Converter sampler, the JSON Format Post Processor and the JSON Path Extractor. These elements are a set of tools that enable us to work comfortably with data in JSON format.

 

The plugin can be installed via the Plugin Manager as “JSON Plugins”.

 

JSON to XML Converter

 

This sampler transforms JSON text into XML format.

 

How to find: Thread Group-> Add -> Sampler -> jp@gc - JSON to XML Converter

 

Example:

 

which jmeter plugins to choose

 

The text entered in the JSON input field will be converted to XML format. We can see the result of the sampler in the screenshot below.

 

valuable jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/JSONToXMLConverter/

 

JSON Format Post Processor

 

This post processor formats JSON responses and makes them more readable.

 

How to find: HTTP Request -> Add -> Post Processors -> jp@gc - JSON Format Post Processor

 

Example:

 

I have used a Dummy Sampler to emulate a JSON response from the server.

 

learning to use jmeter plugins

 

As we can see, the JSON response is displayed in a single line. This wouldn’t be convenient if we had a larger response.

 

Let’s add the JSON Format Post Processor to this sampler.

 

jmeter plugins tutorial

 

Run the script again and see the difference.

 

how to use jmeter plugins

 

The JSON response is well formatted and very convenient to read.

 

Official plugin page: https://jmeter-plugins.org/wiki/JSONFormatter/

 

JSON Path Extractor

 

The JSON Path Extractor post processor is designed to extract values from JSON responses using the JSONPath syntax.

 

How to find: HTTP Request -> Add -> Post Processors -> jp@gc - JSON Path Extractor

 

Example:

 

useful jmeter plugins

 

This extractor works similar to the way the XPath Extractor worked. The extracted value will be saved to a variable (“blazemeterVar”). It will use the default value (“ERROR”) if the JSONpath (“$.name”) is not found.

 

Official plugin page: https://jmeter-plugins.org/wiki/JSONPathExtractor/

 

Advanced users, read more about how to use this plugin from this blog post “JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios”.

 

8th place: Inter-Thread Communication

 

Installing the “Inter-Thread Communication” plugin extends JMeter functionality with an Inter-Thread Communication PostProcessor, Inter-Thread Communication PreProcessor and a number of functions.

 

Inter-thread communication means that we can put a string value into a queue from one Thread Group, and then get that value in another Thread Group. This feature lets us synchronize separate Thread Groups.

 

The plugin can be installed via the Plugin Manager as “Inter-Thread Communication” or as a part of the “jpgc - Standard Set” plugin.

 

Inter-Thread Communication PostProcessor & PreProcessor

 

How to find:

 

Test Plan -> Add -> Post Processors -> jp@gc - Inter-Thread Communication PostProcessor

 

Test Plan -> Add -> Post Processors -> jp@gc - Inter-Thread Communication PreProcessor

 

Example:

 

I have created a small script to demonstrate how to use the PostProcessor and PreProcessor. This script contains two Thread Groups. The first Thread Group puts values into the queue. The second Thread Group reads values from the queue.

 

jmeter plugins useful guide

 

This Regular Expression Extractor extracts the value from the page and puts it into the ‘blazemeter’ variable.

 

using jmeter plugins

 

This Inter-Thread Communication PostProcessor puts the value from the variable ‘blazemeter’ into queue with name ‘SYNC_FIFO’.

 

jmeter plugins tutorial

 

In the second Thread Group Inter-Thread Communication PreProcessor gets values from the ‘SYNC_FIFO’ queue and stores it in the ‘gotBlazemeterData’ variable.

 

using jmeter plugins correctly

 

The value of the ‘gotBlazemeterData’ variable can be sent with a request as presented in screenshot above.

 

Sounds simple and interesting, right?

 

Functions

 

Inter-thread communication also adds four functions to work with queues: fifoPut, fifoGet, fifoPop, fifoSize. These functions can be used anywhere on JMeter where functions would be executable. For example, in the Response Assertion element in the Patterns to Test field, like in the screenshot below.

 

best practices for jmeter plugins

 

More information about these functions can be found on the official plugin page: https://jmeter-plugins.org/wiki/InterThreadCommunication/

 

7th place: Flexible File Writer

 

This plugin extends JMeter with the Flexible File Writer listener. This listener is designed to  write test results into the file in a flexible format, which we can specify via the JMeter GUI.

 

The plugin can be installed via the Plugin Manager as “Flexible File Writer” or as a part of the “jpgc - Standard Set” plugin.

 

How to find: Test Plan -> Add -> Listener -> jp@gc - Flexible File Writer

 

Example:

 

best ways to use jmeter plugins

 

The listener has some options to config the output file which we can see above. By using those options we can change the file header, log content and file footer. By default, the log contains the following values for each run sample: endTimeMillis, responseTime, latency, sentBytes, receivedBytes, isSuccessful and responseCode. By using the ‘Record each sample as’ field, we can change the set of logged values.

 

An example of file content can be found below. It contains a header, the log itself and a footer.

 

jmeter plugins how to use

 

Official plugin page: https://jmeter-plugins.org/wiki/FlexibleFileWriter/

 

6th place: Custom JMeter Functions

 

The Custom JMeter Functions plugin extends JMeter’s functionality with a number of useful functions. Here is a list of them:

 

  • chooseRandom: chooses a random value from the list of arguments
  • doubleSum: calculates the sum of floating point values
  • Env: receives an environment variable value
  • isDefined: determines if the variable was already defined
  • MD5: computes MD5 hash of string or variable value
  • base64Encode: encodes a string or variable value with Base64 algorithm
  • base64Decode: decodes a string or variable value from Base64 into string
  • strLen: calculates the length of constant string or variable value
  • Substring: returns a substring of a particular string
  • strReplace: replaces a part of the string with another string
  • strReplaceRegex: replaces all the substrings that satisfy the regular expression with the replacement string
  • uppercase and lowercase: changes the case of string or variable value
  • iterationNum: returns the number of current iteration in thread group
  • If: provides if syntax
  • caseFormat: provides changing string case format

 

The plugin can be installed via the Plugin Manager as “Custom JMeter Functions” or as a part of the “jpgc - Standard Set” plugin.

 

Example:

 

The ‘chooseRandom’ function chooses a random value from the list of its arguments. These functions can be used just like any other JMeter functions.

 

learning jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/Functions/

 

5th place: Throughput Shaping Timer

 

This plugin adds the following functionalities to JMeter: Throughput Shaping Timer, Special Property Processing and Schedule Feedback Function. These elements enable us to limit the test throughput, to ensure we don’t exceed our required throughput value.   

 

The plugin can be installed via the Plugin Manager as “Throughput Shaping Timer” or as a part of the “jpgc - Standard Set” plugin.

 

Throughput Shaping Timer

 

This interesting timer is designed to control requests per second to the server during a test run.

 

How to find: Thread Group -> Add -> Timer -> jp@gc - Throughput Shaping Timer

 

Example:

 

jmeter plugins tips and hacks

 

The timer has a schedule table and preview graph. It is a very convenient way to control a load during a test run.

 

Special Property Processing

 

This feature gives us the ability to process a JMeter property called ‘load_profile’. This property specifies a load pattern with a set of function-like declarations. Declarations can be of 3 types: const, line and step.

  •  
  • const(N, T): holds a constant load of N requests per second for T seconds
  • line(N, K, T): generates linear increasing of load from N to K requests per second during T seconds
  • step(N, K, S, T): generates a stepping load from N requests per second to K requests per second, each step height to will be of S requests per second, each step duration will be T seconds

 

The main value of this property is that we are able to setup requests per second throughput with the jmeter.properties file or just with the command line when running JMeter.

 

Example: load_profile=const(20,10s) line(20,100,1m) step(5,15,5,10m)

 

Schedule Feedback Function

 

This function enables a feedback loop for the number of threads. The feedback checks if enough threads are running right now.  It also provides additional threads when the requests per second schedule is not achieved during test runs.

 

For example, we started a test with 20 threads. They generate only 100 requests per second. But we have a 150 request per second throughput. So the feedback function checks that we need 50 more requests per second, and starts another 10 threads.

 

Example: ${__tstFeedback(blazemeter-name,1,1000,40)}

 

‘blazemeter-name’ is the name of the Throughput Shaping Timer to integrate with. 1 is the number of starting threads. 1000 is the number of max allowed threads. 40 is the number of spare threads to keep in the thread pool. So this function will increase the number of threads up to 1000 threads, if the requests per second schedule is not be met during the test run.

 

Official plugin page: https://jmeter-plugins.org/wiki/ThroughputShapingTimer/

 

4th place: Dummy Sampler

 

The Dummy Sampler emulates the work of requests and responses without actually running the requests. Request and response data are defined in the sampler’s fields. This is a very convenient way to debug post-processors and extractors.

 

The plugin can be installed via the Plugin Manager as “Dummy Sampler” or as a part of the “jpgc - Standard Set” plugin

 

How to find: Thread Group -> Add -> Sampler -> jp@gc - Dummy Sampler

 

Example:

 

creating a test script with jmeter plugins

 

Here is what the results of the Dummy sampler will look like after it is run in the View Results Tree listener.

 

Request tab:

 

jmeter plugins load testing

 

Response tab:

 

performance testing scenario with jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/DummySampler/

 

3rd place: Custom Thread Groups

 

The Custom Thread Groups plugin adds five thread group types: Stepping Thread Group, Ultimate Thread Group, Concurrency Thread Group, Arrivals Thread Group and Free-Form Arrivals Thread Group. These five thread groups open huge possibilities to create required schedules for test runs.

 

The plugin can be installed via the Plugin Manager as “Custom Thread Groups” or as a part of the “jpgc - Standard Set” plugin.

 

Stepping Thread Group

 

The Stepping Thread Group adds a convenient way to create non-linear thread scheduling. Quite often, the scheduling scenario is in the form of ‘stairs’ (see below).

 

How to find: Test plan -> Add -> Threads (Users) -> jp@gc - Stepping Thread Group (deprecated)

 

Example:

 

when to use jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/SteppingThreadGroup/

 

You can read more information about the Stepping Thread Group from this blog post.

 

Ultimate Thread Group

 

The Ultimate Thread Group is designed to add flexible thread scheduling to your test scenario. It allows us to create a schedule with almost any configuration, in the Threads Schedule table.

 

How to find: Test plan -> Add -> Threads (Users) -> jp@gc - Ultimate Thread Group

 

Example:

 

how to use jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/UltimateThreadGroup/

 

Concurrency Thread Group

 

The Concurrency Thread Group allows us to configure a stepping threads schedule in a simple way. It works similar to the Stepping Thread Group and is a great replacement for it, especially if the Stepping Thread Group is removed in future versions.

 

How to find: Test plan -> Add -> Threads (Users) -> bzm - Concurrency Thread Group

 

Example:

 

ultimate jmeter plugins to use

 

Official plugin page: https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/

 

You can find more information about the Concurrency Thread Group here.

 

Arrivals Thread Group

 

The Arrivals Thread Group works with a thread iteration start schedule as a way to describe/determine the load. "Arrival" means the start of the thread iteration.

 

How to find: Test plan -> Add -> Threads (Users) -> bzm - Arrivals Thread Group

 

Example:

 

popular jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/ArrivalsThreadGroup/

 

Free-Form Arrivals Thread Group

 

The Free-Form Arrivals Thread Group works with the "arrival" schedule as a way to describe the load. "Arrival" means the start of thread iteration. This element allows us to create a flexible schedule.

 

How to find: Test plan -> Add -> Threads (Users) -> bzm - Free-Form Arrivals Thread Group

 

Example:

 

jmeter plugins, open source, load testing

 

The values here are the number of started iterations per minute. An iteration is one loop of script run.

 

Official plugin page: https://jmeter-plugins.org/wiki/FreeFormArrivalsThreadGroup/

 

2nd place: PerfMon Servers Performance Monitoring

 

This plugin extends JMeter with the PerfMon Servers Performance Monitoring listener. This listener allows us to monitor CPU, Memory, Swap, Disks I/O and Networks I/O of the servers loaded.

 

The plugin can be installed via the Plugin Manager as “PerfMon (Servers Performance Monitoring)” or as a part of the “jpgc - Standard Set” plugin.

 

How to find: Test plan -> Add -> Listener -> jp@gc - PerfMon Metrics Collector

 

Example:

 

collecting data with jmeter plugins

 

Official plugin page: https://jmeter-plugins.org/wiki/PerfMon/. Read more from the blog post “How to Monitor Your Server Health & Performance During a JMeter Load Test”.

 

1st place: Plugins Manager!!!

 

The most popular plugin is the Plugins Manager, and for good reason - usually, a user needs to install the Plugin Manager before installing other plugins. The Plugins Manager is the most convenient way to manage JMeter plugins.

 

Instructions on how to install the Plugin Manager can be found here.

 

The Plugin Manager has 3 main tabs: Installed plugins, Available plugins and Upgrades.

 

How to find: Options -> Plugins Manager

 

Example:

 

jmeter plugins installation

 

The installed plugins tab contains a list of installed plugins, a description area on the left and a review changes area at the bottom.

 

jmeter plugins resources

 

The available plugins tab contains a list of available plugins, a description area on the left and a review changes area at the bottom. Use the search to find all the plugins to fit your needs!

 

Official plugin page: https://jmeter-plugins.org/wiki/PluginsManager/

 

That’s it! We took a look at the top 10 JMeter plugins. I hope it was informative and gives you some ideas for extending JMeter via plugins!

 

To learn more advanced JMeter, check out our free JMeter academy.

 

Try our BlazeMeter, which enhances JMeter’s features: 

  • Simple Scalability – It’s easy to create large-scale JMeter tests. You can run far larger loads far more easily with BlazeMeter than you could with an in-house lab.
  • Rapid-Start Deployment – BlazeMeter’s recorder helps you get started with JMeter right away, and BlazeMeter also provides complete tutorials and tips.
  • Web-Based Interactive Reports – You can easily share results across distributed teams and overcome the limitations of JMeter’s standalone UI.
  • Built-In Intelligence – The BlazeMeter Cloud provides on-demand geographic distribution of load generation, including built-in CDN-aware testing.

 

Just put your URL in the box below and your test will start in minutes. Or, request a demo.

     
arrow Please enter a valid URL

Interested in writing for our Blog?Send us a pitch!

We're working on starting your first test

Testing 20 Virtual Users

Starting your test in around 2-4 minutes. Your report will appear once we've gathered the data.

0

Status: Preparing Your Test

Your email is required to complete the test. If you proceed, your test will be aborted.