Difference between revisions of "LoadRunner FAQ"

From PeformIQ Upgrade
Jump to navigation Jump to search
Line 88: Line 88:
e.g.
e.g.


<pre># int WriteDataToFile(char *szFileName, const char *szBuf, int len)
<pre>
# {
int WriteDataToFile(char *szFileName, const char *szBuf, int len)
#     int hFile;
{
#      
     int hFile;
#     hFile = fopen(szFileName,"wb");
      
#
     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);
     if (hFile == NULL)
#     fclose(hFile);
     {
        lr_error_message("Could't create or open the file: %s", szFileName);
#    return LR_PASS;
        return LR_FAIL;
# }
    }
# 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",
     fwrite(szBuf, len, 1, hFile);
#        "URL=http://www.google.com/intl/en_ALL/images/logo.gif",
    fclose(hFile);
#        "Resource=1",
   
#        "RecContentType=image/gif",
     return LR_PASS;
#        "Snapshot=t1.inf",
}
#        LAST);
#  
#     lr_eval_string_ext ("{prmLogoImage}", strlen("{prmLogoImage}") /* = 14*/, &szBuf, &nLength, 0, 0,-1);
Action()
#     lr_output_message("Parmeter length = %d",nLength);
{
#  
    char *szBuf;
#     WriteDataToFile("C:\\LogoImage.gif", szBuf, nLength);
     unsigned long nLength;
   
#     return 0;
     // 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;
}
</pre>
</pre>
See http://motevich.blogspot.com/2007/10/loadrunner-save-download-file-server.html
See http://motevich.blogspot.com/2007/10/loadrunner-save-download-file-server.html

Revision as of 13:12, 15 July 2008

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?

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