Do you have a correlation which you can’t solve because the values of the left and right boundary are dynamic? Correlation is an essential part of performance test scripting and there are plenty of different challenges with correlation. Imagine having a value of “GraphA123567EndGraphA” and the goal is to correlate 123567
From the example above, the left and right boundaries would be “LB=GraphA” “RB=EndGraphA”
What if the word GraphA is dynamic and can be anything from GraphA-GraphZ?
There is a solution at hand!
Using web_reg_save_param_regex will allow the user to grab a correlation value using dynamic left and right boundaries. This function uses the power of regular expressions, below are a few examples:
Example 1:
Source: “GraphA123567EndGraphA”
Solution: web_reg_save_param_regexp(“ParamName=CorrValue”, “RegExp=\“Graph[A-Za-z]\”, \“([0-9]+)\”, \“EndGraph[A-Za-z]\””, LAST);
Result: 123567
Example 2:
Correlate the values from a drop down list of a form
Source: dropdown >>> red, blue, green
Solution: web_reg_save_param_regexp(“ParamName=ColourList”, “RegExp=option=[0-9]+>([A-Za-z])
Correlate up till the end of 642
Source: J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642″];
Solution: web_reg_save_param_regexp(“ParamName=SecurityString”,”RegExp=\”([A-Z0-9a-z\\\\+]+==\\|[0-9]+)\”\\];”,LAST);
Result:J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642
Example 4:
Correlate only “634998513832503642” Source:
Solution:
Result: 634998513832503642
So what is a Regular Expression?
Also known as regex, a regular expression is a search string which enables matching of a string. Think of it as an advance searching function which can pick out values from a string of multiple characters.
Examples of regex:
LB/DIG RB/DIG – # will be a wildcard for a numeric value“session_id_##”
Source: rows”:[[“NW,RO,RA","DLY","10/07/2011","10/17/2011","10/01/2011","RA","Y","FR","AMEA","AC","1945","50","50","AC 100IOSH-08","UserDefined","10/07/2011","Reassigned"..."
Solution: web_reg_save_param_regexp("ParamName=ParamValue","RegExp=rows":\[\[“[^"\r\n]*”,”([A-Z]{3})”,”[^"\r\n]*”,”[^"\r\n]*”,”[^\/]+\/[\d]+?\/2011″,”[A-Za-z]*”,”[^"\r\n]*”,”[^"\r\n]*”,”([^"\r\n]*)”,”[^"\r\n]*”,”([^"\r\n]*)”,LAST);
Result:
From the example above, the left and right boundaries would be “LB=GraphA” “RB=EndGraphA”
What if the word GraphA is dynamic and can be anything from GraphA-GraphZ?
There is a solution at hand!
Using web_reg_save_param_regex will allow the user to grab a correlation value using dynamic left and right boundaries. This function uses the power of regular expressions, below are a few examples:
Example 1:
Source: “GraphA123567EndGraphA”
Solution: web_reg_save_param_regexp(“ParamName=CorrValue”, “RegExp=\“Graph[A-Za-z]\”, \“([0-9]+)\”, \“EndGraph[A-Za-z]\””, LAST);
Result: 123567
Example 2:
Correlate the values from a drop down list of a form
Source: dropdown >>> red, blue, green
Solution: web_reg_save_param_regexp(“ParamName=ColourList”, “RegExp=option=[0-9]+>([A-Za-z])
- {ColourList1}=red
- {ColourList2}=blue
- {ColourList3}=green
Correlate up till the end of 642
Source: J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642″];
Solution: web_reg_save_param_regexp(“ParamName=SecurityString”,”RegExp=\”([A-Z0-9a-z\\\\+]+==\\|[0-9]+)\”\\];”,LAST);
Result:J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642
Example 4:
Correlate only “634998513832503642” Source:
<em>J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642"];</em>
|
web_reg_save_param_regexp("ParamName=SecurityString",
"RegExp=\"[A-Z0-9a-z\\\\+]+==\\|([0-9]+)\"\\];",
LAST);
|
So what is a Regular Expression?
Also known as regex, a regular expression is a search string which enables matching of a string. Think of it as an advance searching function which can pick out values from a string of multiple characters.
Examples of regex:
- \d matches a single digit
- \w matches a single word (including alphanumeric characters and underscore)
- [A-Z]+ matches any word which is upper case
- [a-z]+ matches any word which is lower case
- [0-9]+ matches any numeric value
LB/DIG RB/DIG – # will be a wildcard for a numeric value“session_id_##”
- Adding LB/IC/DIG will ignore case
- “LB/IC/DIG=session_id_##=” (e.g. Session_id_20)
- ALNUMIC – ignore case
- ALNUMLC – match only lower case
- ALNUMUC – match only upper case
- If there is a dynamic value for a boundary e.g. “session_id_2” (3,4,5)
- SaveOffSet = 2 (to cover “2=”)
- Web_reg_save_param(“SessionID”, “LB=session_id_”, “RB=\””, “SaveOffSet=2”, LAST);
- PERL based
- LR 11 does not support multiple capture groups however this is now supported in LR 11.52 (example below)
Source: rows”:[[“NW,RO,RA","DLY","10/07/2011","10/17/2011","10/01/2011","RA","Y","FR","AMEA","AC","1945","50","50","AC 100IOSH-08","UserDefined","10/07/2011","Reassigned"..."
Solution: web_reg_save_param_regexp("ParamName=ParamValue","RegExp=rows":\[\[“[^"\r\n]*”,”([A-Z]{3})”,”[^"\r\n]*”,”[^"\r\n]*”,”[^\/]+\/[\d]+?\/2011″,”[A-Za-z]*”,”[^"\r\n]*”,”[^"\r\n]*”,”([^"\r\n]*)”,”[^"\r\n]*”,”([^"\r\n]*)”,LAST);
Result:
- {ParamValue1} = DLY
- {ParamValue2} = AMEA
- {ParamValue3} = 1945
No comments:
Post a Comment