Blog

  • LoadRunner Utility Code: Lance’s Log

    Posted on October 8, 2012 by Admin

    Several years back, I found this posting and thought it was interesting. I am just now getting around to sharing it. Try this code if you want. I use this LoadRunner utility code to assist in analyzing test data, or to write desired dynamic data from scripts to .csv files outside of LoadRunner scenario results folders.

    This code requires some script parameters to be defined, and you have to pre-allocate your folder where you want to write your data. The code also checks to see if you are running from Vugen or the Controller. I Read Entire Entry

  • VuGen Error Checking and Detailed Logging

    Posted on October 3, 2012 by Admin

    This is a basic scripting technique for enhancing your VuGen scripts to add error checking and detailed logging (in this case a web HTTP status code that is in the 4XX – 5XX range) for specific steps.

    First, set up a parameter called {pIteration} that uses the Iteration Number type to automatically keep track of the iteration. At the beginning of my action.c I might start with something like this:
    // Declare Variables
    int rc = 0, iHttp;
    lr_vuser_status_message(“Starting iteration Number: %s”,
    lr_eval_string({pIterati Read Entire Entry

  • LoadRunner Parameter and Correlation Naming Conventions

    Posted on October 1, 2012 by Admin

    Bill Selph recommends the following LoadRunner parameter and correlation label naming conventions for use in scripts:

    All correlated values begin with “LRC_”
    All parameters begins with “LRP_”

    Bill finds this an easier way to edit and debug of complex scripts.

    Do you have similar naming conventions that you use when coding Vugen script? How about giving out some recommendations to the community by commenting in the section below. Read Entire Entry

  • VuGen: Creating Combination Static/Random Values For Parameters

    Posted on September 26, 2012 by Admin

    This post addresses a situation where part of a VuGen parameter value needed to be a hard coded value, and another part had to be totally random. This specific example had to do with a credit card where the total number of digits for the card was 16, but the first two digits needed to start with “47” to pass the business rules of the site for processing valid card numbers. If the number on the card did not start off with “47”, the card would automatically be rejected.
    // DECLARE VARIABLES

    char result[100], creditCardNum[1056];
    in Read Entire Entry

  • VuGen: Extracting String Data From A Parameter

    Posted on September 24, 2012 by Admin

    This post examines a condition where data being returned in the VuGen parameter captured (in the web_reg_save_param function) included more characters than was needed and there no easy left/right boundaries to use to get only what was needed. In this case, it was capturing something like “2297,4648”, and we needed to extract the first four numbers and the last four numbers of the string, while stripping out the “comma” character.
    //We need to grab the 1st four (ENTERPRISEID)
    //and the last four digits (which is a tax return ) Read Entire Entry

  • VuGen: Detailed Logging

    Posted on September 19, 2012 by Admin

    The purpose of this VuGen code is so you have one place to enter the URL for the application and grab all the Load Generator and Controller information, and send it to the execution output logs for troubleshooting purposes. Variables are set at top of the action file that it can be changed by modifying one line of code instead of all the code within the script.

    Put this code in the vuser_init() section of the script outside the vuser_init function
    //*******************************************************************
    //* GLOBA Read Entire Entry

  • More Old School Vugen Code For Randomization

    Posted on September 17, 2012 by Admin

    Here is some old code I had laying around which simply illustrates how to randomize a VuGen parameter by using srand and randomizing a value used within the array. This assumes you are grabbing multiple values in the array using the web_reg_save_param() function with the ORD=ALL argument.
    // Randomize based on total numbers of Beneficiaries and selecting one

    srand( time(NULL) );
    rnum1 = (rand () % atoi(lr_eval_string(“{pBeneficiary_count}”)) +1);

    // Merge Parameter to include the random number just selected

    spri Read Entire Entry

  • How LoadRunner Calculates Hits Per Second

    Posted on September 12, 2012 by Admin

    LoadRunner calculates hits per second in the “Hits per second” graph depending on the HTTP requests sent out each second. If there are no HTTP requests sent for some time, then a request is sent out, and the “hits per second” is computed for the entire interval since the last hit was received.

    The measurement seen on the graph is per second, but the granularity of the graph is not 1 second. It is possible to have fractions of hits per second. If you change the granularity to 1 second, then only whole hits per second will b Read Entire Entry

  • VuGen: Make SOAP Calls With The SOAP/WEB Protocol

    Posted on September 10, 2012 by Admin

    This post will attempt to explain how VuGen SOAP calls look by comparing the WEB/HTTP protocol and the SOAP protocol. Below is an example of raw XML that is received from a request.
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <soap-env:Envelope xmlns:soap-env=”http://schemas.xmlsoap.org/soap/envelope/”>
    <soap-env:Header>
    <Authentication soap-env:mustUnderstand=”1″>
    <UserID>xxxx</UserID>
    <Password>xxxx</Password>
    </Authentication>
    <Appl Read Entire Entry

  • Load Testing: Concurrent Users verses Simultaneous Users

    Posted on September 5, 2012 by Admin

    It seems like on every new project, there is a need to educate members of the project team on the difference between concurrent users and simultaneous users as it applies to load testing applications.

    Concurrent = users on the system using resources.
    Simultaneous = users executing the same code at the exact same time.

    Concurrency has various levels. I generally it explain things this way to my clients at the initial project kickoff meeting to make sure everyone agrees with the definitions:

    Application Concurrency – how Read Entire Entry