LoadRunner FAQ
Revision as of 14:12, 15 July 2008 by PeterHarding (talk | contribs) (→Capturing a Downloaded File)
LoadRunner FAQ
Also see Load Testing reference...
Transaction Functions
See manual section 'VuGen Function Reference > Utility Functions: C Language (LR) > Transaction Transaction Functions'.
Wasting Time
In the following segment, lr_start_timer and lr_end_timer are used to calculate the time spent on checks. This is then subtracted from the time spent on transaction "sampleTrans" with lr_wasted_time.
double time_elapsed, duration, waste;
merc_timer_handle_t timer;
lr_start_transaction("sampleTrans");
web_url("index.htm",
"URL=http://localhost/index.htm",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
timer = lr_start_timer();
// Do some checks the duration of which is not to be included in the transaction.
web_image_check("ImgCheck1",
"src=index_files/image002.jpg",
LAST);
web_image_check("ImgCheck2",
"src=index_files/planets.gif",
LAST);
// How long did the tests take in seconds.
time_elapsed = lr_end_timer(timer);
// Convert to millisecond.s
waste = time_elapsed * 1000;
// Remove the time the checks took from the transaction.
lr_wasted_time(waste);
lr_end_transaction("sampleTrans", LR_AUTO);
Programmatically Controlling Logging
Use something like...
int log_profile = LR_MSG_CLASS_EXTENDED_LOG
|
LR_MSG_CLASS_FULL_TRACE
|
LR_MSG_CLASS_RESULT_DATA
|
LR_MSG_CLASS_PARAMETERS;
...
lr_set_debug_message(log_profile, LR_SWITCH_ON);
... Code you want extended logging for ...
lr_set_debug_message(log_profile, LR_SWITCH_OFF);
...
Capturing a Downloaded File
- Set up a parameter to capure the entire page returned.
- Determine its length.
- Create a function to write this buffer to a file.
e.g.
int WriteDataToFile(char *szFileName, const char *szBuf, int len)
{
int hFile;
hFile = fopen(szFileName,"wb");
if (hFile == NULL)
{
lr_error_message("Could't create or open the file: %s", szFileName);
return LR_FAIL;
}
fwrite(szBuf, len, 1, hFile);
fclose(hFile);
return LR_PASS;
}
Action()
{
char *szBuf;
unsigned long nLength;
// Function web_set_max_html_param_len sets maximum length of any HTML string,
// that can be retrieved and saved as a parameter
// So, make sure new value is greater than a size of string (in our case - file) to be captured
web_set_max_html_param_len("100000");
web_reg_save_param("prmLogoImage", "LB=\r\n\r\n", "RB=", LAST);
web_url("logo.gif",
"URL=http://www.google.com/intl/en_ALL/images/logo.gif",
"Resource=1",
"RecContentType=image/gif",
"Snapshot=t1.inf",
LAST);
lr_eval_string_ext ("{prmLogoImage}", strlen("{prmLogoImage}") /* = 14*/, &szBuf, &nLength, 0, 0,-1);
lr_output_message("Parmeter length = %d",nLength);
WriteDataToFile("C:\\LogoImage.gif", szBuf, nLength);
return 0;
}
See http://motevich.blogspot.com/2007/10/loadrunner-save-download-file-server.html