One of the greatest strengths of JMeter is its extensibility with plugins. You can add a plugin to a JMeter test to perform just about any action you can think of for a load test. We will summarize the abilities of the most popular JMeter plugins in the JMeter Plugin Catalog, giving insight to how the top users of JMeter are constructing their load tests.
Thread Groups and Test Architecture
Custom Thread Groups – This is an immensely popular package of JMeter plugins that includes the Ultimate Thread Group, the Concurrency Thread Group, the Stepping Thread Group, and the Throughput Shaping Timer components. In general, thread groups represent the basic container for test plan requests and other elements. Each of the custom thread group plugins offers an additional degree of control over the timing and grouping of contained requests. We have a detailed post on our blog that covers adding and using thread groups from this collection.
Dummy Sampler – This is a particularly useful plugin when designing your JMeter test locally, particularly when designing complex thread logic. Adding one or more Dummy Samplers to your test will provide reportable results without unnecessarily generating real requests.
Throughput Shaping Timer – While this plugin is included in the Custom Thread Groups package described above, it gains a second spot on this list as a popular plugin on its own. Using this plugin, you can set a specific request per second load to occur at particular times during your load test. This approach can save time over the usual practice of trial-and-error probing to attain specific load throughputs. We also have a post on our blog which covers using this plugin with your RedLine13 load tests.
Scripting and Test Flow
Custom JMeter Functions – This is a programmatic package that introduces several new functions that can be used in scripts within your load test. JMeter provides many built-in functions which can be called from BeanShell or Groovy based preprocessors and postprocessors, as well as other scripting elements. Some examples of extended functions include randomization, string encoding and decoding, and hash algorithms.
Inter-Thread Communication – By design, threads within a JMeter test run independently and without sharing information with one another. The Inter-Thread Communication plugin will set up a first-in first-out string queue that will allow values to be communicated in a stack that is visible to multiple threads. This behavior may be useful if your test has complex flow logic requiring inter-thread communication for process control.
Output and Results
Response Times over Time – This plugin is available from the 3 Basic Graphs package, and tracks response times for your requests within a thread group. Since this is a listener element, adding this component to your load tests may carry a small performance implication. For load tests run though RedLine13 however, you can view response times and more through our built-in real-time results streaming. This makes using and configuring this particular plugin unnecessary for JMeter tests run on RedLine13.
Servers Performance Monitoring (PerfMon) – As a type of application performance management (APM) tool, this plugin will collect resource metrics. It requires the ServerAgent to be installed on target test server instances in order for these metrics to have visibility back in JMeter. Because this is a type of listener element, there may be performance implications to using this component. We also have related posts on APM tools, where we discuss more advanced integrations with RedLine13 using Grafana and Dynatrace.
Flexible File Writer – JMeter comes with a built-in component called the Simple Data Writer, however the Flexible File Writer extends this base functionality to make writing more complex output easier. Using the Flexible File Writer your output is not restricted to XML or CSV formats, and gives more advanced file handling such as order of records and mapped record output templating.
5 Additional Graphs – As its name suggests, this package provides five elements including Response Codes, Bytes Throughput, Connect Times, Latency, and Hits per Second. Being listener elements, these can have undesirable performance implications when used in production tests. Thankfully, any test run though RedLine13 will have these metrics independently collected as part of our real-time results streaming.
Composite Graph – This plugin offers enhanced visualization of other metrics from your load test. For example, you can overlay sampled requests from your test results over a planned sample profile from one of the custom thread groups outlined above. This can save time when presenting your results as it can automate some post-test analysis tasks as part of the execution of your load test.
Did you know that RedLine13 offers a full-featured time-limited free trial? Sign up now and see for yourself how RedLine13 can supercharge your cloud-based JMeter load testing!