HP UFT API – A Brief History

Automation Testing Published on:

I just wanted to take some time to briefly go over the history of HP UFT API. One of the reasons UFT API testing can be a little confusing is that if you've done a little research on HP UFT API testing, or are trying to get started, you may not know where to start because of its history.

UFT API's history

Understanding UFT API's history, I think, will clear things up a little bit, so that you understand why you are seeing different versions and different technologies/names for UFT API testing.

Service Test VUGEN 9.x

Service Test 9.x (around 2009) was basically built on top of LoadRunner. Because of this, all development was done in the Virtual User Generator (VuGen), and tests could be run from VuGen for debugging purposes.

There also was a special VuGen interface designed to make testing web services easier.

Service Test 11

Around September of 2011, Service Test 11 was released. It was the first version that was built from the ground up utilizing SharpDevelop, and had a modern drag-and-drop user interface.

LoadRunner was no longer used. To distinguish between the two versions; HP began to refer to the older LoadRunner version as Service Test VUGEN, and the newer version as Service Test VTD.

UFT 11.5

In December of 2012, HP merged QuickTest Professional into the new user interface technology along with Service Test. QTP is now known as GUI Test, and Service Test is known as API test.

UFT 11.5 also includes new features that aren't available in the previous version of QTP or Service Test.

Service Test 11.5

To make things even more confusing, there is still a standalone Service Test 11.5 that is strictly for API testing. This option is not available for GUI testing. So the functionality that you have in UFT 11.5 API Testing that is specific to API testing is also available in the standalone Service Test tool. Consequently, any information you may find in a book on API testing with UFT API (like my book The UFT API Manifesto) should still work in the standalone Service Test 11.5 version.

More UFT API Automation Awesomeness

For more UFT API Automation Awesomeness, tips, tricks, and how-tos check out my UFT Pluralsight course on how to get started.

8 responses to “HP UFT API – A Brief History”

  1. Hi Joe,

    I did go through your ActiveMQ’s JMS Queue with UFT tutorial and was successfully able to implement it. But now I have been facing a problem when I am trying to retrieve message from JMS queue from Oracle WebLogic server. Following are details

    I have been trying to access WebLogic’s(Oracle) JMS queue through UFT – Service Test tool. Following parameters I have passed as a part of JMS configuration
    1) Classpath = C:\Program Files (x86)\HP\Unified Functional Testing\bin\java\JMS\javax.jms.jar
    2) JNDI initial context factory = weblogic.jndi.WLInitialContextFactory
    3) JNDI provider URL = t3://
    4) JMS connection factory = MTN_ConnFactoryNG
    Details in WebLogic_Error_1.png

    When I try to retrieve a message from JMS queue, I am getting following error “Failed to initialize the JMS session. The initial context factory is missing or wrong”.

    Request you to get me a clear picture on the below mentioned points.
    1) Which all JAR files I need to import/include in my “Classpath” and their locations respectively.
    2) Proper format for JNDI provider URL(whether to start with tcp or t3 followed by IP address & port number)

      • It seems that there isn´t a HP Service Test standalone v12, at least, there isn´t a trial version to download.

        Could Joe get any information from HP?

  2. hi joe,
    i have a doubt..
    “roleCategory”: “STANDARD”,
    “roleName”: “AdminR”,
    “accountAccess”: [
    “accountReferenceId”: “zVAU1t8ZXh7LlnydFXO6L0HhmZj+XzRzkw/6ThiyOS8=”,
    “serviceDetails”: [
    “serviceIdentifier”: “13001”,
    “serviceDescription”: “Move Money – Bill Pay”,
    “parameterHighValue”: “20”,
    “approvalRequiredCount”: “2”

    how to parameterize the entire Json in UFT?
    I am able to parameterize each and every object. But how to do if I want to remove a particular optional tag while passing values from an excel sheet?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.