• Coding for VTS – Part 3

    Posted on February 18, 2017 by Admin

    A Step by Step guide to using the New HPE Virtual Table Server (VTS)
    Introduction to the New HPE Virtual Table Server (VTS) – Part 1
    Install and Setting up VTS – Part 2
    Coding for VTS – Part 3
    Advanced Topics in VTS – Part 4 

    NOTE:  You can have multiple instances of VTS running and being used during a test. These code samples are assuming you are using a single instance of VTS.  If you are using multiple instances, you’ll want to use the vtc functions and NOT the lrvtc functions!  Instances are covered Read Entire Entry

  • What is LoadRunner’s DFE Part 2 (GWT)

    Posted on August 8, 2016 by Admin

    Previously we looked at using DFE to help make scripts that utilize XML to make it more readable and easier to parameterize.  There is another way to use DFE, beyond making a script more readable.  Sometimes DFE may be required for the script to run properly.  Some applications use what is called GWT (Google Web Toolkit).  To use GWT DFE, first you need to identify when an application is using GWT.

    There is the obvious way that LoadRunner recognizes GWT.  You’ll see the following message in the Error tab of the messag Read Entire Entry

  • What is LoadRunner’s DFE Part 1 (XML)

    Posted on August 1, 2016 by Admin

    DFE is short for Data Format Extension.  It is a feature added to LoadRunner back in version 11, but a lot of people don’t understand what it is and how it can help you.  In simple terms DFE allows for easier LoadRunner scripting by allowing us to decode and encode normally unreadable or formatted data that the may be sent between the client and the server.  A simple example would be converting a long XML request into a more readable format.  Another example would be converting an unreadable Base 64 request into something that Read Entire Entry

  • Using C Macros in LoadRunner Vugen

    Posted on May 5, 2014 by Admin

    Introduction to C Macros
    C macros aren’t  discussed a lot by HP LoadRunner users, yet they are at the core of the C programming language used in VUGen. They can provide flexibility and power that reduces script development and maintenance times. A good example would be where a function cannot be used to encapsulate reusable code blocks because something in the code block must be known at compile time instead of at run time. In this case, there would be a global variable accessed within the code block, but the name of the variable Read Entire Entry

  • LoadRunner Vugen: Encoding and Decoding Base64

    Posted on March 23, 2013 by Admin

    HP recently released Knowledge Base article KM00211140 for LoadRunner, dealing with decoding the encoded user name and password in a flex call when recording against HP’s Service Manager Service Request Catalog (SRC). SRC  uses both flex and web to communicate to the back end.  The encoding used is Base64. Their example is good,  and could be used as a starting point for encoding/decoding BASE64 for other applications. To pull this off, you will need to include mic_socket.h in the  Globals.h section of the VUgen script . Then Read Entire Entry

  • 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

  • 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.

    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