首页 > 代码库 > 5 tips to help you correlate Web HTTP scripts in HP LoadRunner

5 tips to help you correlate Web HTTP scripts in HP LoadRunner

(This post was written by Yang Luo (Kert) from the LoadRunner R&D Team)

               

Load testing scenarios in HP LoadRunner consist of scripts created by a Virtual User Generator (Vugen), which can be used to record the Web/HTTP traffic sent to and from an application. When a recorded script is played back without modification, there are often errors, and the script can’t be played back as-is. This may be due to values which are sent by the application’s server to the client, and which are different each time the script is run. For example, session IDs are used to identify the specific session currently in play. When the traffic is recorded, the session ID is also recorded; but when it’s played back, the recorded session ID is no longer valid, resulting in the script failing to run.

 

To resolve this problem, LoadRunner introduced the concept of correlation. This identifies these instance-specific values, and replaces the occurrences of the values with a parameter whose value is set once each time the script is run, and is used throughout the script. Correlation can be performed manually, but this is time-consuming and error-prone, so LoadRunner comes with a number of features that automatically identify session-specific values and automatically correlates them. This auto-correlation is pretty reliable, but not foolproof, so here are some tips that can help you.

 

If you aren’t currently using LoadRunner, this is your opportunity to experience the capabilities it...

 

1) Disable ‘Record Scan’

If your script is large and it takes a long time to scan for correlation, consider disabling ‘Record Scan’ in the Recording Options dialog.

 

‘Record-Based Correlation’ uses some heuristic methods to find a correlation. However, if your script is very large, or there are too many complex parameters, it will take too much time to try different combinations. Disabling it can significantly reduce the waiting time.

 

The downside of disabling this option is you will have to define some rules to find the correlation for the ‘rules scan’, or play the script several times to complete the ‘replay scan’. So if ’Record Scan’ is working for you, or you have the time to wait, it’s still best to keep it enabled.

 

技术分享

 

2) Use Regular Expressions for Formatted Strings

Where possible, use regular expression (regexp)-based correlation rules for formatted dynamic strings, such as UUIDs, which consists of a set pattern of hexadecimal digits

Some dynamic values do not have unique boundaries, which makes boundary-based rules inefficient. However, they may have a set format, in this case, a regular expression can help to find them more accurately:

 

 

技术分享

 

3) Manually Correlate Short Strings

When you have very short dynamic strings, such as "?q=a&page=2", use manual correlation.

VuGen usually ignores very short values when scanning for correlation in order to save time and avoid false positives. You can enable them if you wish, but that will impact the performance and the accuracy of the correlation scan results, so it’s best to manually correlate short values.

 

4) Customize the Correlation Rules

Vugen’s Design Studio automatically creates correlation rules, but you can customize them for your specific situation before using them.

In the Design Studio, you can generate a correlation rule from a displayed correlation result. To get a better correlation result next time, you can modify the generated rule based on your application by extending the boundaries, adding filters to XPaths, and supplying format-specific info in regular expressions etc.

For example, the automatically generated RegExp-based rule for the GUID in the screenshot below is very generic, and could match irrelevant strings. So we can manually change it to a regular expression that specifically matches a GUID, such as: “\A\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}\z”.

 

技术分享

 

5) Extend the Correlation Size Limit for Long Strings

Some strings can be particularly long, such as ViewState values, which can exceed the default length limitation for correlation. You can change the length limitation in the Recording Options dialog, or correlate that value manually, in which case the size limit doesn’t apply. Most dynamic values are not very long, and a shorter length limitation will help to improve performance of scanning. We suggest that you only increase it when necessary.

 

技术分享

 

I hope these tips help you correlate the dynamic values in your scripts. If you aren’t currently using LoadRunner, you can download it here. You can also visit the HP LoadRunner homepage to learn about additional capabilities it offers.

 

Feel free to leave us a comment in the box below if you have experience with this or if you have any additional questions.

 

Thanks to Kert for providing this article!

5 tips to help you correlate Web HTTP scripts in HP LoadRunner