Question : My organization has a 1500 vuser license. If we desire to run the business / transaction throughput of 3000 users, we can simulate that throughput by approximately decreasing the think_time in our script by half. However, what are the potential performance issues we may miss (e.g. connection configuration issues?) by using this load testing method for doubling our user load?
Answer :
The method you describe will not accurately predict application behavior at the 3000 concurrent user mark, which is more a factor of resource utilization (memory per user session, number of sessions, database connections, server threads, etc...) than the rate at which transactions are submitted. You will likely see a slow down of transactions using the method you describe, as the application queues transactions at the increased rate. However if this increased transaction rate is not representative of the rate in production, your results will not be useful in any way.
If cost is an issue, there are different methods of increasing your vuser license temporarily such as term licenses or vuser days. Both methods will allow you to increase your vuser license at a lower cost than purchasing them outright. I suggest talking to your local HP Sales representative for more information.
Many of the LoadRunner users with Oracle NCA will face this error in their daily usage.Lets take a look at this error and concept behind it and how to resolve this. Concept:
When the client send a request to Server,in general it process that request immediately.But in case or Oracle NCA it takes more time to process the requests and meanwhile client is waiting to receive the response.to maintain the handshake during this time, Server send messages to the client that starts with IfError#00 saying the time to process your request takes some time and maintain handshake meanwhile.
But The client waits certain period of time to receive the response, if not it will fail to proceed further and throws the error message ifError during the replay of the script.
Solution:
Go to Oracle NCA protocol, under Runtimesettings->OracleNCA->Client Emulation, there you will see a mode called Pragma mode ”
Oracle NCA recording can be in Two modes : normal recording with Oracle NCA and web(http/Html) and second mode is Pragma mode.
to record the script in pragma mode, please read the Vugen user guide to tune the settings in recoding options.
UseHttpConnect mode should be 1 Servlet mode is set to 2.
Find the options : 1.Max retries 2.Retry interval (ms)
Increase these two values to the avoid the ifError expires message.
let me know if you need any other assistance in solving this issue
In this example,web_reg_save_paramis used to save a value from the response to a web_submit_form call. The value saved is used in a subsequent web_submit_form call.
In the Mercury Tours sample program, the server response to theweb_submit_formcall below contains the following radio button options:
FlightDeparture timeCost
outboundFlight value=230;378;11/20/2003 checked >Blue Sky Air 2308am$ 378
outboundFlight value=231;337;11/20/2003>Blue Sky Air 2311pm$ 337
and so on.
To submit a reservation, theoutboundFlightvalue is required.web_reg_save_paramis used to save theoutboundFlightvalue.
If you want to test the last option returned by the web_submit_form call, save all the matches and then handle the array.
This example shows the use ofweb_reg_save_paramwith "ORD=ALL" to get an array of parameters. The last item in the array is then used to correlate aweb_submit_formcall.
char outFlightParam[50]; // The name of the parameter for correlation
char outFlightParamVal[50]; // The formatted value of outFlightParam
/*
This web_reg_save_param call applies to the following action function, web_submit_form. Because of the "ORD=ALL" argument, it saves all the values that have the given left and right boundaries to an array of parameters.
The SaveLen argument is used to restrict the length to 18 characters because the default value is "230;378;11/20/2003 checked >". We restrict the length so as not to capture the " checked ".
*/
web_reg_save_param("outFlightVal",
"LB=outboundFlight value=", "RB=>",
"ORD=ALL",
"SaveLen=18",
LAST);
web_submit_form("reservations.pl",
"Snapshot=t4.inf",
ITEMDATA,
"Name=depart", "Value=London", ENDITEM,
"Name=departDate", "Value=11/20/2003", ENDITEM,
"Name=arrive", "Value=New York", ENDITEM,
"Name=returnDate", "Value=11/21/2003", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=roundtrip", "Value=", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=seatType", "Value=Coach", ENDITEM,
"Name=findFlights.x", "Value=83", ENDITEM,
"Name=findFlights.y", "Value=16", ENDITEM,
LAST);
/*
The result of the web_reg_save_param having been called before the web_submit_form is:
The next problem is to get the highest array element, identified with the parameteroutFlightVal_count. This parameter is automatically created by the script recorder. You do not have to enter anything in the script.
*/
/* Get the name of the parameter, in this case "outFlightVal_4".
Put it in brackets so it can be an input to anlr_eval_stringcall.
Note that the brackets in the second argument tosprintfare not indicating a script parameter tosprintf. They are string literals that will be part of outFlightParam after the call.
In the second call tosprintf, those brackets indicate a parameter tolr_eval_string.
*/
sprintf(outFlightParam, "{outFlightVal_%s}",
lr_eval_string("{outFlightVal_count}"));
/* outFlightParam is now "{outFlightVal_4}" */
/* Now get the "Value" argument for web_submit_form, in the
format "Value=xxxx")
*/
sprintf(outFlightParamVal, "Value=%s",
lr_eval_string(outFlightParam));
lr_message("The value argument is : %s", outFlightParamVal);
// The value argument is : Value=233;309;11/20/2003
The following example specifies an offset and length. The boundaries for the HTML string "Astra on TESTSERVER", are "Astra"(note the space which follows the word) and "TestServer".This should return "on" but since the offset is 1 (i.e. start at the second character) and the length of data to save is 1, then the string saved toTestParamis "n".
Example 4: Boundaries containing special characters
The following example shows the use of escaping in the C language when the boundaries contain special characters.
The following HTML segment contains new line characters (paragraph markers) after each "" and quote marks around each class name. We want to save "Georgiana Darcy" to parameter "UserName". The segment containing the new line and quotes has to be included in the left boundary because "Name:", which precedes the segment, is required for the occurrence to be unique. The ORD attribute cannot be used in this case because the length of the list preceding the relevant element varies.
UserID:
Revere18041775
Name:
Georgiana Darcy
Company:
Pride and Prejudice
The function is:
web_reg_save_param("UserName",
"LB=Name:\n\"surveyAnswerReview\">",
"RB= ",
LAST);
Note the\nfor the new line character, and that the quote characters need to be escaped:\".