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