LoadRunner FAQ

From PeformIQ Upgrade
Jump to navigation Jump to search

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

What is the Difference Between HTML and URL Based Recording?

HTML based recording:

Captures the context of the HTML interaction and automatically attempts to correlate with the last page received to reduce the amount of customized programming required in the script.

URL based recording:

Expresses the interaction as a sequence of URL calls.


See http://www.allinterview.com/showanswers/28156.html