qtp/uft hybrid framework

15
Test Automation Hybrid Framework Hybrid Framework: It is a mixture of two or more approaches Process Guidelines: i) Creating the Folder structure ii) Creating Automation Resources (Library Files, Repository etc.) Iii) Create Organizer spread sheet (Organizer provides instructions to the Driver) iv) Generating the driver Script (QTP Test) v) Generate the initialization Script (AOM Script file) Folder Structure

Upload: it-online-training

Post on 02-Jun-2015

744 views

Category:

Software


1 download

DESCRIPTION

QTP/UFT Hybrid Framework

TRANSCRIPT

Page 1: QTP/UFT Hybrid Framework

Test AutomationHybrid Framework

Hybrid Framework: It is a mixture of two or more approaches

Process Guidelines:

i) Creating the Folder structure

ii) Creating Automation Resources (Library Files, Repository etc.)

Iii) Create Organizer spread sheet (Organizer provides instructions to the Driver)

iv) Generating the driver Script (QTP Test)

v) Generate the initialization Script (AOM Script file)

Folder Structure

Page 2: QTP/UFT Hybrid Framework

Automation Resources:

Test Scenarios:

 Hybrid Framework Functions:

'***********************************************

' Login Operation

'***********************************************

Function Login(Agent, Password)

Systemutil.run"C:\Program Files (x86)\HP\Unified Functional Testing\samples\flight\app\

flight4a.exe"

Dialog("Login").WinEdit("Agent Name:").Set Agent

Dialog("Login").WinEdit("Password:").Set Password

Dialog("Login").WinButton("OK").Click

Page 3: QTP/UFT Hybrid Framework

If Window("Flight Reservation").exist(10) Then

'Systemutil.CloseDescendentProcesses

Login="Login Succesful"

Else

'Systemutil.CloseDescendentProcesses

Login= "Login Failed"

End If

End Function

'***********************************************

' Login for Data Driven Testing

'***********************************************

Function Login2(Agent, Password)

Systemutil.run"C:\Program Files (x86)\HP\Unified Functional Testing\samples\flight\app\

flight4a.exe"

Dialog("Login").WinEdit("Agent Name:").Set Agent

Dialog("Login").WinEdit("Password:").Set Password

Dialog("Login").WinButton("OK").Click

If Window("Flight Reservation").exist(10) Then

Systemutil.CloseDescendentProcesses

Login2="Login Succesful"

Else

Systemutil.CloseDescendentProcesses

Login2= "Login Failed"

End If

End Function

'***********************************************

' Open Order

'***********************************************

Function Open_Order(ord)

Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."

Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"

Page 4: QTP/UFT Hybrid Framework

Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set Ord

Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click

OrderNum=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")

OrderNum=Cint(OrderNum)

If Ord=OrderNum Then

Open_Order=ord&" Order Opened Sucessfully"

Else

Open_Order=ord&" Order Not Opened"

End if

End Function

'***********************************************

' Open Order for Data Driven Testing

'***********************************************

Function Open_Order2(Ord)

Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."

Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"

Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set Ord

Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click

OrderNum=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")

OrderNum=Cint(OrderNum)

If Ord=OrderNum Then

Open_Order2=ord&" Order Opened Sucessfully"

Else

Open_Order2=ord&" Order Not Opened"

End if

Page 5: QTP/UFT Hybrid Framework

End Function

'***********************************************

' Update Order

'***********************************************

Function Update_Order(Tickets)

Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."

Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"

Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "5"

Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click

Window("Flight Reservation").WinEdit("Tickets:").Set Tickets

wait(5)

Window("Flight Reservation").WinButton("Update Order").Click

wait(15)

message= Window("Flight Reservation").ActiveX("Threed Panel

Control").GetROProperty("text")

If message="Update Done..." Then

Update_Order="Update is done successfully"

Else

Update_Order="Update failed"

End If

End Function

'***********************************************

' Update Order for Data Driven Testing

'***********************************************

Function Update_Order2(Tickets)

Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."

Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"

Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "5"

Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click

Window("Flight Reservation").WinEdit("Tickets:").Set Tickets

Page 6: QTP/UFT Hybrid Framework

wait(3)

Window("Flight Reservation").WinButton("Update Order").Click

wait(10)

message= Window("Flight Reservation").ActiveX("Threed Panel

Control").GetROProperty("text")

If message="Update Done..." Then

Update_Order2="Update is done successfully"

Else

Update_Order2="Update failed"

End If

End Function

'***********************************************

' Close Application

'***********************************************

Function Close_App()

If window("Flight Reservation").exist(5) Then

Window("Flight Reservation").Close

End If

Systemutil.CloseDescendentProcesses

End Function

Organizer Spread Sheet:

 I st Sheet "Module"

Page 7: QTP/UFT Hybrid Framework

II nd Sheet "TestCase"

Page 8: QTP/UFT Hybrid Framework

 III rd Sheet "TestStep"

 

Page 9: QTP/UFT Hybrid Framework

 Test Data:

 

Page 10: QTP/UFT Hybrid Framework

Driver Script:

Executefile "E:\Other\Training\QTPTests\Hybrid-Framework\Libraries\FR_Func_Library.vbs"

'Adding sheets to Run-time data table

DataTable.AddSheet "Module"

DataTable.AddSheet "TestCase"

DataTable.AddSheet "TestStep"

DataTable.AddSheet "Login"

'Importing data from External File

DataTable.ImportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\Organizer.xls",1,3

DataTable.ImportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\Organizer.xls",2,4

Page 11: QTP/UFT Hybrid Framework

DataTable.ImportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\Organizer.xls",3,5

DataTable.ImportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\data.xls",1,6

'Capturing Executable Modules from Module Sheet

MRowCount=DataTable.GetSheet("Module").GetRowCount

For i=1 to MRowCount Step 1

          DataTable.SetCurrentRow(i)

          ModuleExe=DataTable(3,"Module")

          If UCase(ModuleExe)="Y" Then

                   ModuleId=DataTable(1,"Module")

                   'Msgbox "ModuleId: " & ModuleId

                   'Capturing executable test cases under executable modules

                   TCRowCount=DataTable.GetSheet("TestCase").GetRowCount

                   For j=1 to TCRowCount Step 1

                             DataTable.SetCurrentRow(j)

                             TCCaseExe=DataTable(3,"TestCase")

                             ModuleId2=DataTable(4,"TestCase")

                             If UCase(TCCaseExe)="Y" and ModuleId=ModuleId2 Then

                                      TestCaseId=DataTable(1,"TestCase")

                                      'Msgbox TestCaseId

                                      'Capturing keywords for executable steps

                                      TSRowCount=DataTable.GetSheet("TestStep").GetRowCount

                                      For k=1 to TSRowCount Step 1

                                                DataTable.SetCurrentRow(k)

                                                TestCaseId2 = DataTable(5,"TestStep")

                                                If TestCaseId=TestCaseId2 Then

                                                          keyword=DataTable(4,"TestStep")

                                                          'msgbox keyword

                                                          Select Case keyword

                                                                   Case "ln"

                                                                                      Result=Login("abcd","mercury")

                                                                                      DataTable(7,"TestStep")=Result

                                                                   Case "oo"

                                                                                      Result=Open_Order(5)

                                                                                       DataTable(7,"TestStep")=Result

                                                                   Case "uo"

Page 12: QTP/UFT Hybrid Framework

                                                                                      Resul

t=Update_Order(RandomNumber(1,9))

                                                                                      DataTable(7,"TestStep")=Result

                                                                   Case "ca"

                                                                                      Close_App()

                                                                    Case "lnd"

                                                                                           Row

s=DataTable.GetSheet("Login").GetRowCount

                                                                                        For m=1 to Rows Step 1

                                                                                          DataTable.SetCurrentRow(m)

                                                                                          Resul

t=Login2(DataTable(1,"Login"),DataTable(2,"Login"))

                                                                                          DataTable(3,"Login")=Result

                                                                                          Next

                                                                                          

                                                                   Case "ood"

                                                                                        Row

s=DataTable.GetSheet("Login").GetRowCount

                                                                                          For n=1 to Rows Step 1

                                                                                            DataTable.SetCurrentRow(n)

                                                                                            Resul

t=Open_Order2(DataTable(4,"Login"))

                                                                                            DataTable(5,"Login")=Result

                                                                                          Next

                                                                      Case "uod"

                                                                                       Row

s=DataTable.GetSheet("Login").GetRowCount

                                                                                         For p=1 to Rows Step 1

                                                                                         DataTable.SetCurrentRow(p)

                                                                                         Resul

t=Update_Order2(DataTable(6,"Login"))

                                                                                         DataTable(7,"Login")=Result

                                                                                          Next

                                                          End Select

                                                End If

Page 13: QTP/UFT Hybrid Framework

                                      Next

                             End If

          

                   Next

          End If

Next

DataTable.ExportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\

Result1.xls","TestStep"

DataTable.ExportSheet "E:\Other\Training\QTPTests\Hybrid-Framework\Result1.xls","Login"

Initialization Script:

Dim objQTP

Set objQTP=CreateObject("QuickTest.Application")

objQTP.Visible=True

objQTP.Launch

objQTP.Open "C:\Documents and Settings\gcr\Desktop\Proj_Automation\Drivers\Driver1"

objQTP.Test.Run

objQTP.Test.Close

objQTP.Quit

Set objQTP=Nothing