10 Reasons as why your correlation fails

12 Jan

If you are doing performance testing, then I assume that you for sure know as what correlation means and how to do it. So I am not going to write anything on this. I know for sure that many times it happens performance script which runs perfectly fine in local machine, often fails miserably during the load test often throwing error saying that correlated value could not be found or parameter size is insufficient so increase the parameter size. Having worked with number of various protocols/technologies, I feel there are many reasons as why your correlation can fail ,so I will try to list down some of the reasons which I feel one needs to investigate in case his correlation is failing,

1. We have specified left and right boundaries incorrect. Sometimes it so happens that we miss to specify the special characters like trailing slash, comma etc. in boundaries. It is one of simple error which quite often we do while scripting.

2. We have not placed the function which does correlation at the right place that is right before the request which generates the dynamic value for the first time. This is also one of most common mistakes I have seen people doing.

3. We have not used the attributes of the function correctly. For example, value is getting generated in headers and we make the function search for value in body part of the response.

4. We have used left and right boundaries that are too generic and there are many instances of such boundaries in the server response for that request. In other words boundaries are not unique For example, if you have a form with many fields and if you give boundary as below, then it is bound to fail.

   1: web_reg_save_param (“LB= value”,”RB=,”, “Ord = 1”, LAST);

5. If the page returned as a server response is different than what we were expecting during replay, then obviously our correlation is going to fail. Since response page content will be different, function will not be able to find boundaries it requires to succeed.

6. If the size of the parameter where we are storing the dynamically captured value is less than actual size of the parameter returned by the server, then our correlation is going to fail. For example, let’s say we have parameter A and we allocate 1000 bytes to store the value and if the actual size of A is more than 1000 bytes, then our correlation is going to fail. Another good example of this is view states correlation.

7. Sometimes it so happens that we use incorrect data in our tests and due to this data, we do not get the page what we were expecting, and this error on our side also shows up as correlation failure in the test run. Sometimes we try to correlate client side generated values. I have made this mistake at some point of my career.

8. We really have performance bottleneck in the system. Quite often it happens that test runs fine for certain duration and then suddenly we see correlation failures for some or all of our functions. This is also one of area we need to investigate in case you see correlation failure after a certain period of time during the test.

9. We have not correctly replaced the parameters captured in the script.

10. Finally the function in itself has bug and due to this bug it might not be behave as it should. Failure to capture correctly view states by most tools during early days of ASP.Net is good example of this.

These are some reasons which I can recollect now due to which correlation can fail. I am sure that these reasons applies for all tools which are used for doing performance testing in all domains and all technologies.

Hope this helps.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: