Hi,
Lets talk about one of the most important function and important for correlation in HP Loadrunner.
This function registers a request to save dynamic data information to a parameter.
Lets talk about one of the most important function and important for correlation in HP Loadrunner.
This function registers a request to save dynamic data information to a parameter.
Syntax for C language:
int web_reg_save_param(
const char *ParamName, <List
of Attributes>, LAST );
Syntax for Java language:
int object.reg_save_param( String ParamName,
String[] attributeList );
Argument
|
Description
|
---|---|
object
|
An expression evaluating to an object of type WebApi.
Usually web for Java and Visual Basic. See also
Function and Constant
Prefixes.
|
ParamName
|
A null–terminated string indicating the name of the
parameter to create.
|
List of Attributes
|
For details of each attribute, see List of Attributes.
Attribute value strings (e.g., "Search=all") are not case–sensitive.
|
LAST
|
A marker that indicates the end of the argument list.
|
The web_reg_save_param
function is a Service
function used for correlating HTML statements in Web scripts..
Note: (Service functions : Service Functions perform customization tasks, like setting of
proxies, authorization information, user–defined headers and so forth. These
functions do not make any change in the Web application context.
Many of the service functions specify run–time settings for a
script. A setting that is set with a service function always overrides the
corresponding setting set with the Run–time settings dialog box.)
General Information
web_reg_save_param is a
registration type function. It registers a request to find and save a text
string within the server response. The operation is performed only after
executing the next action function,
such as web_url.
web_reg_save_param is only
recorded when correlation during recording is enabled (see VuGen's Recording
Options). VuGen must be in either URL–based recording mode, or in HTML–based
recording mode with the A script containing
explicit URLs only option checked (see VuGen's Recording Options).
This function registers a request to retrieve dynamic
information from the downloaded page, and save it to a parameter. For
correlation, enclose the parameter in braces (e.g., "{param1}") in ensuing
function calls which use the dynamic data. The request registered by web_reg_save_param looks for the characters
between (but not including) the specified boundaries and saves the information
that begins at the byte after the left boundary and ends at the byte before the
right boundary.
If you expect leading and trailing spaces around the string
and you do not want them in the parameter, add a space at the end of the left
boundary, and at the beginning of the right boundary. For example, if the Web
page contains the string, "Where and when do you want to travel?", the call:
web_reg_save_param("When_Txt", "LB=Where and ", "RB= do",LAST );
with a space after "and" and before "do", will result in
"when" as the value of When_Txt. However,
web_reg_save_param("When_Txt", "LB=Where and", "RB=do",LAST );
without the spaces, will result in a value of " when ".
Embedded boundary characters are not supported. web_reg_save_param results in a simple search for
the next occurrence after the most recent left boundary. For example, if you
have defined the left boundary as the character `{` and the right boundary as
the character `}', then with the following buffer c is saved:
{a{b{c}
The left and right boundaries have been located. Since
embedded boundaries are not supported, the `}' is matched to the most recent `{`
appearing just before the c. The ORD attribute is 1.
There is only one matching instance.
The web_reg_save_param
function also supports array type parameters. When you specify ORD=All, all the
occurrences of the match are saved in an array. Each element of the array is
represented by the ParamName_index. In
the following example, the parameter name is A:
web_reg_save_param("A", "LB/ic=",
"Ord=All", LAST );
The first match is saved as A_1, the second match is saved as A_2, and so forth. You can retrieve the total
number of matches by using the following term: ParamName_count. For example, to retrieve the
total number of matches saved to the parameter array, use:
TotalNumberOfMatches=atoi(lr_eval_string("{A_count}"));
The following table indicates how to use the boundary
parameters to save portions of the parameter string:
This function is supported for all Web scripts, and for WAP
scripts running in HTTP or Wireless Session Protocol (WSP) replay mode.
List of Attributes
- Convert: The possible values
are:
HTML_TO_URL: convert HTML–encoded data to a URL–encoded data format
HTML_TO_TEXT: convert HTML–encoded data to plain text format
This attribute is optional. - IgnoreRedirections: If "IgnoreRedirections=Yes" is specified and the server
response is redirection information (HTTP status code 300-303, 307), the
response is not searched. Instead, after receiving a redirection response, the
GET request is sent to the redirected location and the search is performed on
the response from that location.
This attribute is optional. The default is "IgnoreRedirections=No". - LB: The left boundary of the parameter or the dynamic data. If you do not specify an LB value, it uses all of the characters from the beginning of the data as a boundary. Boundary parameters are case–sensitive and do not support regular expressions. To further customize the search text, use one or more text flags. This attribute is required. See the Boundary Arguments section.
- NOTFOUND: The handling option when a
boundary is not found and an empty string is generated.
"Notfound=error", the default value, causes an error to be raised when a boundary is not found.
"Notfound=warning" ("Notfound=empty" in earlier versions), does not issue an error. If the boundary is not found, it sets the parameter count to 0, and continues executing the script. The "warning" option is ideal if you want to see if the string was found, but you do not want the script to fail.
Note: If Continue on Error is enabled for the script, then even when NOTFOUND is set to "error", the script continues when the boundary is not found, but an error message is written to the Extended log file.
This attribute is optional. - ORD: Indicates the ordinal position or
instance of the match. The default instance is 1. If you specify "All," it saves
the parameter values in an array. This attribute is optional.
Note: The use of Instance instead of ORD is supported for backward compatibility, but deprecated. - RB: The right boundary of the parameter or the dynamic data. If you do not specify an RB value, it uses all of the characters until the end of the data as a boundary. Boundary parameters are case–sensitive and do not support regular expressions. To further customize the search text, use one or more text flags. This attribute is required. See the Boundary Arguments section.
- RelFrameID: The hierarchy level of the HTML
page relative to the requested URL. The possible values are ALL or a number. Click RelFrameID Attribute for a detailed
description. This attribute is optional.
Note: RelFrameID is not supported in GUI level scripts. - SaveLen: The length of a sub–string of the found value, from the specified offset, to save to the parameter. This attribute is optional. The default is –1, indicating to save to the end of the string.
- SaveOffset: The offset of a sub–string of the found value, to save to the parameter. The offset value must be non–negative. The default is 0. This attribute is optional.
- Search: The scope of the search—where to search for the delimited data. The possible values are Headers (Search only the headers), Body (search only body data, not headers), Noresource (search only the HTML body, excluding all headers and resources), or ALL (search body , headers, and resources). The default value is ALL. This attribute is optional.