My Blog List

Wednesday, March 22, 2017

Triggering UFT/QTP Tests from CI Tools (outside of ALM/QC)

In the CI (Continuous Integration) world, we would be in the position to trigger UFT/QTP scripts from outside of ALM/QC and there we may have 2 options like;

1. Running UFT tests stored in plain Windows File System folder
2. Running UFT tests stored in ALM

Both these options are being utilized by lot of testers effectively and working great. Here I would like to give some light on what if we need to update results to particular test set instance in ALM while triggering tests from outside of ALM. 
You should have seen the result options in the dialog which pops up when we are trying start running from UFT/QTP itself and we will select the option and hit OK to start running. Here we need to select those options from API.


VBScript:

Sub LaunchAndRunUFT()
    Dim oUFT, appUFTResults, uftTestParamDef, uftTestParams, oFSO
    
    'Launch UFT
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oUFT = CreateObject("QuickTest.Application")
    Set appUFTResults = CreateObject("QuickTest.RunResultsOptions")
    oUFT.Launch
    oUFT.Visible = True
    
    'Connect to ALM
    If Not oUFT.TDConnection.IsConnected Then
        oUFT.TDConnection.Connect "ALM URL", "ALM_DOMAIN", "ALM_PROJECT", "ALM_UserID", "ALM_Password", False 'True if it's encrypted password
    End If
    
    'Open the test
    oUFT.Open "[ALM] Subject\MYTestInALM", True
    
    'Set params and run
    Set uftTestParamDef = oUFT.Test.ParameterDefinitions
    Set uftTestParams = uftTestParamDef.GetParameters()
    uftTestParams.Item("MyTestParameter").Value = "ValueToPass" 'if you want to pass Test Parameters

    'appUFTResults.ResultsLocation = "" 'if you are storing in Windows File System
    appUFTResults.TDTestSet = "Root\TESTSET_FOLDER\TEST_SET"
    appUFTResults.TDTestInstance = 1
    oUFT.Test.Run appUFTResults, True, uftTestParams
    
    'Close
    oUFT.TDConnection.Disconnect
    oUFT.Quit
End Sub

.Net (C#):

public void LaunchAndRunUFT()
        {
            //Launch UFT
            System.Type uftType = System.Type.GetTypeFromProgID("QuickTest.Application");
            dynamic oUFT = System.Activator.CreateInstance(uftType);
            oUFT.Visible = true;
            oUFT.Launch();

            System.Type uftResultType = System.Type.GetTypeFromProgID("QuickTest.RunResultsOptions");
            dynamic oUFTResults = System.Activator.CreateInstance(uftResultType);

            //Connect to ALM
            if (!oUFT.TDConnection.IsConnected)
            {
                oUFT.TDConnection.Connect("ALM URL", "ALM_DOMAIN", "ALM_PROJECT", "ALM_UserID", "ALM_Password", false);
            }

            //Open the test
            oUFT.Open(@"[ALM] Subject\MyTestInALM", true, false);

            //Set params and run
            dynamic oUFTTestParamDef = oUFT.Test.ParameterDefinitions;
            dynamic oUFTTestParams = oUFTTestParamDef.GetParameters();

            oUFTTestParams["MyTestParameter"].Value = "ValueToPass";

            //appUFTResults.ResultsLocation = ""
            oUFTResults.TDTestSet = @"Root\TESTSET_FOLDER\TEST_SET";
            oUFTResults.TDTestInstance = 1;
            oUFT.Test.Run(oUFTResults, true, oUFTTestParams);

            //Close
            oUFT.TDConnection.Disconnect();
            oUFT.Quit();

        }

4 comments:

  1. Hello Shanmugavel,
    Thanks for the useful article about Triggering Uft Qtp (Selenium) learned how to drive UFT scripts from ALM.

    ReplyDelete
  2. Being new to the blogging world I feel like there is still so much to learn. Your tips helped to clarify a few things for me as well as giving..
    Android App Development Company
    iOS App Development Company

    ReplyDelete
  3. You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...
    Fitness SMS
    Fitness Text
    Salon SMS
    Salon Text
    Investor Relation SMS
    Investor Relation Text

    ReplyDelete
  4. great and nice blog thanks sharing..I just want to say that all the information you have given here is awesome...Thank you very much for this one.
    web design Company
    web development Company
    web design Company in chennai
    web development Company in chennai
    web design Company in India
    web development Company in India

    ReplyDelete