In the last post, I have given an overview on what types of variables are seen in an LR Script and where they should be used.
This article covers on conversion of LR Variables to C Variables and viceversa. There are three important LR functions used for the conversion.
We'll see one at a time.
lr_eval_string()
This function evaluates a load runner variable and returns its value if placed in flower braces. Let us try to understand how it really works.
lr_eval_string("test") returns a string called "test"
lr_eval_string("{test}") - Now this function checks if there is LoadRunner variable called test or not.
If there is a LoadRunner variable named test and its value is "Welcome". Now the function lr_eval_string("{test}") returns a string "Welcome"
If no LoadRunner variable exists with the name test, then the function lr_eval_string("{test}") returns a string "{test}"
Now let us see two more last example of lr_eval_string() function:
Assumption: There is an LR variable called test whose value is "{Welcome}". There is another LR variable called Welcome whose value is "Performance Testing Online".
lr_eval_string("{test}") - This returns a string "{Welcome}"
lr_eval_string() function does not do nested evaluation
lr_eval_string(lr_eval_string("{test}"))
= lr_eval_string("{Welcome}");
= "Performance Testing Online"
LR to C String
Now that you understand the usage of lr_eval_string() function let us see how we can convert an LR Variable to C string variable.
char CStr[100];
to save "Performance Testing Online" into the string variable CStr, the syntax is:
strcpy(CStr, lr_eval_string(lr_eval_string("{test}")));
Please note that an equal symbol (=) cannot be used to assign a value to a string variable. We will have a separate article on why.
So, the conclusion is, to save an LR value to a C string variable, the lr_eval_string() function is used.
Now let us see, how we can convert an LR Parameter to C integer variable
let us assume that the LR variable test stores a value of "10".
LR to C Integers
This value should be converted to a string format first using lr_eval_string() function. This function returns a string value. To convert a string value into an integer, we have C function called atoi() read it as A to I (meaning alphabets to Integers)
int Count;
Count = atoi(lr_eval_string("{test}"));
This is how a value in LR variable is saved to a C variable. Though the heading says converting an LR variable to C variable, in fact we are storing the value of an LR variable into a C variable.
Now let us see the otherway i.e. converting a C integer / String to an LR parameter.
we have two functions named lr_save_string() and lr_save_int() to save a string and integer values to an LR parameter respectivily.
C to LR
int i = 256;
lr_save_int(i, "Total");
Now Total is an LR variable which stored a value of 256 in it. Inside the web_url() or web_submit_data or web_custom_request it can be used as {Total}
char Text[100] = "Welcome to Performance Testing Online";
lr_save_string(text, "Status");
Now Status is an LR variable which stored the entire string in it. In a web request it should be used as {Status}
I hope this article is informative and helpful. If you have any questions, please feel free to comment.
Thanks,
Ram N
This article covers on conversion of LR Variables to C Variables and viceversa. There are three important LR functions used for the conversion.
We'll see one at a time.
lr_eval_string()
This function evaluates a load runner variable and returns its value if placed in flower braces. Let us try to understand how it really works.
lr_eval_string("test") returns a string called "test"
lr_eval_string("{test}") - Now this function checks if there is LoadRunner variable called test or not.
If there is a LoadRunner variable named test and its value is "Welcome". Now the function lr_eval_string("{test}") returns a string "Welcome"
If no LoadRunner variable exists with the name test, then the function lr_eval_string("{test}") returns a string "{test}"
Now let us see two more last example of lr_eval_string() function:
Assumption: There is an LR variable called test whose value is "{Welcome}". There is another LR variable called Welcome whose value is "Performance Testing Online".
lr_eval_string("{test}") - This returns a string "{Welcome}"
lr_eval_string() function does not do nested evaluation
lr_eval_string(lr_eval_string("{test}"))
= lr_eval_string("{Welcome}");
= "Performance Testing Online"
LR to C String
Now that you understand the usage of lr_eval_string() function let us see how we can convert an LR Variable to C string variable.
char CStr[100];
to save "Performance Testing Online" into the string variable CStr, the syntax is:
strcpy(CStr, lr_eval_string(lr_eval_string("{test}")));
Please note that an equal symbol (=) cannot be used to assign a value to a string variable. We will have a separate article on why.
So, the conclusion is, to save an LR value to a C string variable, the lr_eval_string() function is used.
Now let us see, how we can convert an LR Parameter to C integer variable
let us assume that the LR variable test stores a value of "10".
LR to C Integers
This value should be converted to a string format first using lr_eval_string() function. This function returns a string value. To convert a string value into an integer, we have C function called atoi() read it as A to I (meaning alphabets to Integers)
int Count;
Count = atoi(lr_eval_string("{test}"));
This is how a value in LR variable is saved to a C variable. Though the heading says converting an LR variable to C variable, in fact we are storing the value of an LR variable into a C variable.
Now let us see the otherway i.e. converting a C integer / String to an LR parameter.
we have two functions named lr_save_string() and lr_save_int() to save a string and integer values to an LR parameter respectivily.
C to LR
int i = 256;
lr_save_int(i, "Total");
Now Total is an LR variable which stored a value of 256 in it. Inside the web_url() or web_submit_data or web_custom_request it can be used as {Total}
char Text[100] = "Welcome to Performance Testing Online";
lr_save_string(text, "Status");
Now Status is an LR variable which stored the entire string in it. In a web request it should be used as {Status}
I hope this article is informative and helpful. If you have any questions, please feel free to comment.
Thanks,
Ram N
very helpful
ReplyDeleteThank you Mr Ram
ReplyDeletereally good..!!!!!!!!!
ReplyDeleteVERY HELPFUL. THANK YOU
ReplyDeleteGreat and Valuable information. Learn about Performance Testing Company
ReplyDelete