Learn what are JMeter Plugins. We will also discuss some commonly used JMeter plugins:
JMeter is a very popular open-source tool that is used for website performance, load, stress, and functional testing. There are multiple JMeter plugins available in the market to enhance the ability and out of box functionality of the system.
In this tutorial, you will learn about JMeter plugins which can be added to JMeter in order to enhance functionality.
The following types of plugins are covered in this section:
- ThreadGroup Plugins
- Listeners Plugins
=> Click here for The Complete Free Training On JMeter (20+ Videos)
Table of Contents:
Video Tutorial On JMeter Plugins
Plugins for JMeter can be downloaded from here. Extensions are available for thread groups, listeners, samplers, etc. Download the plugins from the website, extract the files, and then paste the same in JMeter’s EXT folder where all the extensions are present.
Stepping Thread Group provides a nice way of generating load and can be utilized in various scenarios. It lets you configure the number of threads you want to add sequentially and generates an informational graph showing how the load is increasing.
Similarly, there are a lot of plugins on listeners providing different types of graphs that you can generate and provide reports to the client in a detailed way. Plugins for Timers are also available which can be downloaded if the built-in timers are not serving your purpose.
Understanding JMeter Plugins
Plugin Manager can be installed to JMeter by downloading and placing the Jar file in lib/ext folder.
Once the jar is placed, restart the JMeter and observe a new icon created at the top right for the Plugin Manager, as shown in the image below. When you click on the icon, it will open the list of plugins.
Plugins can be installed from the “Available Plugins” and if an upgrade is available, it will be shown under “Upgrades” and can be installed from there. A list of already installed Plugins will be available under “Installed plugins”.
There are more than 60 plugins available for Graphs, Thread Groups, Timers, Listeners, Tools, Functions, Logic controllers, Samplers, Config Items, Pre-processors, Post-Processors, Assertions, etc.
Let’s take a brief look at the Thread group and Listener plugins before we go for commonly used plugins.
Thread Groups Plugin
In JMeter, five thread groups can be installed using the Custom Thread Group plugin. These are mentioned below:
#1) Stepping Thread Group (it is a deprecated plugin).
#2) Ultimate Thread Group
The below screenshot shows how the values provided are presented in graphical form for the thread and are easily understandable. As there are 3 threads scheduled with a Start Threads Count as 100, the graph shows 300 active threads. Startup time was chosen as 30 and 40, which can easily be stable in the graph.
#3) Concurrency Thread group
Based on the values provided in the below fields, the graph gets plotted as shown in the image below.
#4) Arrivals Thread Group
Arrival defines the “Load” here. It represents the start of thread iteration.
#5) Free-From arrivals thread group
It has a free-form schedule ability.
Listener Plugins
There are 5 Listener Plugins available in JMeter. These are as follows.
#1) Flexible File writer (described later)
#2) Non-GUI Console Status Logger
When JMeter runs in NON -GUI mode, this plugin prints summary logs to the console.
#3) Synthesis Report
Synthesis Report is a mix of Summary and Aggregated Report.
#4) Auto Stop trigger
When the test needs to be stopped while execution is in progress, we can use this plugin.
#5) Graphs Generator
At the end of the test, this listener generates 10-11 graphs. This listener can be used to generate CSV or PNG or both the formats for both current and existing test results.
Commonly Used Plugins
Few commonly used plugins are explained below:
#1) Dummy Sampler
Complex scripts can be easily debugged through this sampler as it generates the results as the user specifies. It imitates the request and responses without running the request in actual.
Let’s see how this sampler can be used:
- Add the thread group to a test plan.
- Add Sampler “HTTP Request” and provide server name or IP.
- Add Listener “View Results Tree” and run the test plan.
- Add Dummy Sampler and provide Request Data and Response Data. Run the test plan and observe the results in the tree view. It will show the same details as provided in the dummy sampler.
#2) Flexible File Writer
This plugin helps to write the test results in a flexible format. Test Results can be defined in the format as user wants such as columns, tabs, graphs, etc. Users can customize the report as they want and can be exported using this plugin.
Let’s see how this Listener can be used:
- Add the thread group to a test plan.
- Add Sampler “HTTP Request” and provide server name or IP.
- Add Listener “Flexible File writer” and “View Results Tree” and run the test.
Once the test plan is run, the output of this listener would be as below and can be customized or changed as the user want.
We had chosen “4” loop count in the thread, so the data shown is of 4 iterations and is as per the file headers selected in the flexible file writer listener. (Refer the highlighted fields in the above screenshot).
Users can choose the fields as required in his output file and can append the file as desired.
#3) Through Put Shaping Timer
This plugin helps to set the wanted hits as per the Request Per Second (RPS) load.
To test the throughput of an application under test, request per second cannot be tested accurately, the user needs to play around with the number of threads and timers but cannot get the effective results. Using the Throughput Shaping timer, the user can get this resolved.
Once the plug in is installed, it can be used to set the request per second schedule as in the below screenshot.
As per the data provided in the above screenshot, the test will be of 80 seconds as the duration of both the schedule is of 30 and 50 seconds.
The load scheduled by the timer can be seen in graph form, which makes it very easy and convenient to be used.
Once the test plan is executed, it considers the time duration of the test as specified in this timer and stops the test as per the scheduled time. It will not consider for any other duration specified in any of the elements of the test plan. This timer can delay the existing threads only, no new thread can be added.
#4) 3 Basic Graphs
3 Basic Graph plugin adds 3 listeners to the JMeter and shows their results in Graph form.
Let’s see how this Listener can be used:
- Add the thread group to a test plan.
- Add “HTTP Request” Sampler and provide server name or IP.
- Add all the three plugins (as shown in the below screenshot) and run the test.
- Response Times over Time
This Listener is used to get the average response time.
- Active Threads over time
Represents the active users in every thread while the test is getting executed.
- Transactions per second
Successful/failed transactions per second are shown in the graph.
#5) Inter Thread Communication
This plugin handles data between separate thread groups. This value is put into one thread group, and that value can be attained by another thread group.
This plugin once added will be available in pre-processor and post-processors.
With functions like fifoPut, fifoGet, fifoPop, fifoSize and pre and post “inter thread” processor, users can put in sync different thread groups.
- Interthread communication post processor: Place the item in a queue.
- Interthread communication preprocessor reads the item and removes the same from the queue.
- fifoPut places the item in a queue.
- fifoGet reads the item but does not remove from the queue. If in case the queue is empty it does not wait and returns the empty string.
- fifoPop reads the item and removes the same from the queue. In case the queue is empty it waits for the data to come in the queue and then operate.
- fifoSize returns the number of items in the queue.
Let’s see how this processor can be used:
- Add a thread group in the test plan.
- Add Sampler “HTTP Request “with server name or IP address.
- Add “XPath Extractor” post processor and provide the XPath query to extract Roll number of a student. Provide other details like variable name in which the extracted value will be stored.
- Add “Inter Thread Communication Post Processor “with details as FIFO query name to put data into and the value to put. The processor will take the value to put and place it in a queue.
- Add the second thread group to the test plan.
- Add a “dummy sampler “and provide request data as the output of variable value.
- Add “Inter Thread Communication Pre-processor “ to store the value in the queue.
- Run the test plan and check that the dummy sampler will provide the extracted data from the first thread in the request tab.
FAQs About JMeter Plugin
Q #1) Where do I put JMeter plugins?
Answer: JMeter plugins can be installed through the Plugin Manager. Download the jar file provided and put it in lib/ext. Then restart JMeter. Once restarted, through the Plugin Manager, any required plugin can be installed in JMeter.
Q #2) How do JMeter check CPU and memory utilization?
Answer: PerfMon Listener (Servers Performance Monitoring) plugin can be used to check CPU and memory utilization.
PerfMon agent has to be installed on the hosts, which requires monitoring and also install PerfMon metrics collector. Users can configure it accordingly to view the results.
Q #3) What is JMeter TPS?
Answer: TPS stands for “Transaction Per Second”. It can help to verify the performance of the application which is under test. It basically indicates the load that the server can take.
Conclusion
A number of plugins are available and can be added and used easily to get the desired outputs. Dummy Sampler is very useful as it helps to debug complex scripts. The Flexible file writer is a listener plugin, which gives the user freedom to get the results in which format they want. Users can customize the field and formats required for his analysis of the output.
3 Basic graphs are also a listener plugin which helps to get results in graph form which are easily understandable and helps in the analysis. Throughput shaping timer helps to set the server hits for a request per second. Inter thread communication lets the output from one thread to be the input of another thread, which makes things easy and simple for a user to use.