Blog

  • VuGen: Dynamic data in web_submit_data

    Posted on May 5, 2009 by Admin

    This was developed as a result of load testing a bridal registry site written with BlueMartini. There needed to be a way for the Vuser to clean up its bridal registry at the end of each iteration. However, I couldn’t be assured of a specific number of items (because the item catalog changed frequently, and we varied the number of items added).

    The web_submit_data function looks for a symbolic “LAST” to determine when it has reached the end of a variable argument list. This was modified by inserting it into a predefined argumen Read Entire Entry

  • VuGen Custom Function: xstrcat

    Posted on April 23, 2009 by Admin

    // – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
    // Brian Wilson – TechSouth, LLC
    // – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

    // – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
    // xstrcat()
    // more efficient version of strcat
    // – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
    char *xstrcat( char *dest, char *src )
    {
    while (*dest) dest++;
    while (*dest++ = *src++);
    return –dest;
    }
    /*char * xstrcat(char * dest, const char * src) // alternate version Read Entire Entry

  • VuGen: Replace Special Characters

    Posted on April 14, 2009 by Admin

    This function (called EncodeText) may be a bit out of date, but can be used to replace special characters and use different encoding. You could put this in the very top of the vuser_init section of your script, or in the globals.h or other include file.
    //——begin code—————
    EncodeText(New,Orig)
    char *New;
    char *Orig;
    {
    int New_index;
    int Orig_index;
    int len;

    len = strlen(Orig);
    New_index = 0;
    for (Orig_index=0;Orig_index<len;Orig_index++) {
    Read Entire Entry

  • VuGen: Using Undocumented Functions

    Posted on March 31, 2009 by Admin

    From James Pulley:
    ———————-

    I have never really cared for the use of the lr_user_data_point() and
    having to pull up the user defined graphs for analysis. Instead I take
    advantage of some undocumented functions

    lr_set_transaction()
    lr_get_transaction_duration()

    I use these functions in tandem to determine if I need to create a custom tracking transaction where a transaction has run too long and is out of spec.

    I can then compare raw numbers at the end of the test, a ratio of <transaction name>_out_of_spe Read Entire Entry

  • Web Click and Script actually does work

    Posted on March 27, 2009 by Admin

    On my latest engagement, I needed a web script to go with all of the Citrix scripts I am creating. The web script was giving me some issues with correlation and NT authentication, so I decided to give Web Click and Script a try. I didn’t have much expectation since neither I nor my colleagues have been able to get it to work in the past, but I thought that it would be worth a try in 9.5. Imagine my surprise when it actually worked! This could partly be because the javascript is minimal. That seems to be where C&S hangs.

    There i Read Entire Entry

  • VuGen: Measure transaction timings in milliseconds

    Posted on March 25, 2009 by Admin

    Let’s say you are testing a web application and the service level agreement of response times for each web page is 1.5 seconds or below. You might want to automatically fail any transaction that comes back in a longer amount of time. You will need to measure the number of milliseconds in the transaction, and see exceeds this amount. You might need to set something like this up for any transaction where timing for milliseconds is crucial. Just because the business process passes, does not mean the transaction should pass, especially Read Entire Entry

  • VuGen: Capture ALL HTTP Responses

    Posted on March 18, 2009 by Admin

    Let’s say you want to capture the http response of a page, but it redirects you (code 302). The normal way you might capture the HTTP status code is capturing it in a variable:
    HttpRetCode = web_get_int_property(HTTP_INFO_RETURN_CODE);
    This would be put after the page request in the script. However, this will only capture the LAST status code received. If there is a redirection in between, it will not be captured. So how do you get the first one? Capture the response header using a correlation. Use the web_reg_save_param function Read Entire Entry

  • Disappearing Perfmon Counters

    Posted on March 2, 2009 by Admin

    I had a strange issue on my machine today. I opened up Perfmon and there were no counters available to add for my localhost machine, or my machine by name. After some research on the topic I found this web site:

    http://www.technologyquestions.com/technology/windows-xp/150094-advanced-no-performance-counters-listed.html

    In short, I was missing two files called perfc009.dat and perfh009.dat. I had to restore the two files from the XP install CD and place them into my %Systemroot%\System32\ directory. I launched Perfmon and everythi Read Entire Entry