
Article
Automation Pyramid Model for Performance Testing Process
Dive into the Article
We use cookies
We use cookies to understand how you found us and improve your experience. You can accept or decline analytics cookies. Learn more in our privacy policy.
Learn how the latest version of the JMeter Correlation Recorder plugin can make correlating dynamic values easier and minimize errors in performance testing.

Facing the ever-evolving challenges of performance testing with JMeter, teams are constantly on the lookout for solutions, especially when it comes to the intricate task of correlating dynamic values in automated flows.
This critical process, demanding a keen eye for detail and a significant investment of time, is pivotal for achieving accurate testing outcomes. The stakes are high, as any oversight in replacements or missed parameterizations can lead to failures, particularly in extensive flows.
Hence, the Correlation Recorder or Automatic Correlation Recorder (ACR), as it’s commonly known, comes into play.
With its latest update to version 2.5, this JMeter plugin introduces an array of features aimed at simplifying the correlation process through diverse methods.
In this article, we aim to shed light on the plugin’s benefits and its transformative impact on daily operations. For a deeper dive into its functionalities, we recommend exploring the User Guide and Installation Guide available through BlazeMeter Labs.
Explore our tailored Performance Testing Services!

Firstly, when starting to use the tool, the Correlation Recorder provides a template for recording and correlating in any mode. We highly recommend its use, as it contains all the necessary elements for a simple and successful development.

This template automatically applies general filters to ignore extra traffic from recordings, saving time. You can use these filters as they are or customize them for your recording. You can also add new ones.
Currently, the Correlation Recorder offers three main modes for dynamic value linking:
Exploring each method allows us to assess its viability in presented scenarios, choosing the most suitable alternative for each situation.
Click here to keep learning with our guide on Continuous Performance Testing!

Legacy Correlation involves setting a custom rule set based on flow knowledge and identifying dynamic values needing correlation.
This mode closely resembles the manual correlation that JMeter flow automators use. It involves identifying both extraction and replacement regular expressions and re-recording to verify the process is accurate.
Next, we share a table with some real examples of extraction and replacement regular expressions:
| N° | Regular Expression for Extraction | Regular Expression for Replacement |
|---|---|---|
| 1 | _wpnonce=([a-zA-Z0-9]*)’ | _wpnonce=([a-zA-Z0-9]*) |
| 2 | name=”execution” value=”(.*?)” | execution=([^&]+) |
In the latest version of the plugin, the process of extraction and replacement in .JSON format is made easier, allowing for more efficient correlation of values in structured data.
While this was possible before by using regular expressions for that purpose, now the use of JSON-path extractors simplifies the capture of specific information straightforwardly.
Upon closer examination of correlation through legacy, it requires the creation of replacement regular expressions that may sometimes be the same, similar, or different from the extraction ones. This entails an initial time investment to set up a set of rules, in scenarios where they may not be reusable.
For instance, scenarios like the following could illustrate this point, among others:

In such scenarios, if we were to manually automate the workflow, we would likely need to record with JMeter more than once to thoroughly explore the details and nuances of the process. This approach can lead to the introduction of errors that often cause many inconveniences (especially in extensive workflows).
From our experience, even in situations where manual automation of the workflow might seem faster at first glance, it can be beneficial to explore the plugin and correlation through legacy. This is because it reduces the likelihood of making mistakes and can help us address some complex scenarios.
Moreover, its ability to correlate flows, where requests rarely fail but might when reproduced for multiple users, makes this option even more appealing.
Initially, dynamic value linking through legacy was the only mode the plugin operated in. But then it evolved, incorporating two others in order to reduce time and effort.
Now, we’ll outline new ways to proceed, which need a single recording to work. They uniquely offer correlation suggestions if requests fail.
To correlate using automatic comparison and variable detection, it’s necessary to reproduce the initially recorded flow, identify failing requests, and present suggestions to make them work.
Next, we share a screenshot with the generated suggestions ready to apply in an example flow:

After applying the suggestions, correlation happens automatically. The test plan can then be checked to confirm the necessary values are extracted and replaced, making the flow run without errors.
Using existing templates for correlation means applying predefined rule sets to fix failing requests with relevant suggestions.
Templates can be saved locally, shared by the community, or provided by BlazeMeter. BlazeMeter’s templates follow best practices, and you can structure others similarly by following the plugin’s instructions.
We share a screenshot of the available templates for correlating an example flow:

At first, BlazeMeter provided some templates for certain application types, encouraging the community to add their own and expand the choices.
These templates load from the cloud, with their accessibility largely hinging on the type of platform subscription.
The application process is quite similar to the previous mode. Then, it’s just a matter of verifying proper functioning.
In automatic modes, it’s crucial to apply only the required suggestions for requests to work and not all that may appear. This way, we avoid adding unnecessary weight to the flow and excessive memory consumption.
News, articles, and resources on building better software.
Read about our Privacy Policy.

