qtp/uft hybrid framework
Embed Size (px)
DESCRIPTION
QTP/UFT Hybrid FrameworkTRANSCRIPT

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

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

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"

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

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

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"

II nd Sheet "TestCase"

III rd Sheet "TestStep"

Test Data:

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

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"

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

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