You are on page 1of 4

The Concept of Keyword Driven Framework

In Key Work Driven Framework the script values will be written in


Excel files and QTP will execute them using Driver Script. Now this will
explain how to execute the script which is specified in Excel Files.

There are majorly two approaches followed to make Keyword Driven


Framework.

1. Specify Script Values Directly in the Excel


2. Write Global Functions for each and every application control and
specify those functions as keywords in Excel

Approach 1:

In the below table there are 4 columns

Object Class :- Class of the object on which we are going to


perform the operation
Object Properties :- Properties of the object
Operation :- The method to perform on the object
Value :- Input Data

Please remember that there is no method is available called


“SetParent” in QTP. But I am using this word as a condition to set the
parent of the object. I have delimited the Parent Object using “/” and
respectively I have used it for properties.
To go forward I should have the properties specified in my Object
Description Constants.

'Object Properties constants


Public Const GoogleBrowser = "name:=Google"
Public Const GooglePage = "title:=Google"
Public Const SearchEdit = "name:=q"
Public Const SearchButton = "name:=Google Search"
Why do we need to specify object properties as constants?
We can specify
properties directly in
place of constants. But when you get a failure in the script, you might
not able to identify where exactly the error occurs.

For example, in the above table if the WebEdit step is failed then how
do we figure out the failure for which object in the application by just
using “name:=q” property. If we have assigned those properties to a
constant which is having an understandable name then it will be very
easy to identify for which object the failure occurs.
So now we have Excel Keywords and Object Description Constants. We
have to write driver script. Follow the below steps prior to write the
driver script.

1. Create a Folder “KeyWordDrivenSample” in “C:\” drive


o In this folder create 3 subfolders with the names
“Scripts”, “Constants”,”KeyWords”
2. Prepare an excel like how it is available in above table Save the
Excel file in
the “C:\KeyWordDrivenSample\KeyWords” folder with the
name “ScriptKeywords.xls”
3. Copy above Object Description Constants in a VBS File and save
it in the “C:\KeyWordDrivenSample\Coanstants” with the
name “OR Constants.vbs”
4. Open a new test in QTP and Save the test
in “C:\KeyWordDrivenSample\Scripts” Folder with the
name “Driver Script”

Now you should have the Folder structure like specified below
Now you can save the below script in Driver Script and Run it.
'###################################################################
' Objective : This is a driver script for Sample Keyword Driven Framework
' Test Case : Driver Script
' Author : Sudhakar Kakunuri
' Date Created : 01/16/2010
' Date Updated : 01/16/2010
'Updated by : Sudhakar Kakunuri
'###################################################################
'##############Initialize Variables and Load Libraries#############################
ExecuteFile "..\..\Costants\OR Constants.vbs"
'#####################Driver Script ######################################
'Add a new sheet and import keywords
Set dtKeyWords=DataTable.AddSheet("Keywords")
Datatable.ImportSheet "..\..\Keywords\ScriptKeywords.xls","Sheet1","Keywords"
'Get Row Count and Column Colunt of the databable
dtRowCount=dtKeyWords.GetRowCount
dtColumnCount=dtKeyWords.GetParameterCount
'Use for lop to get values row by row
For dtRow=1 to dtRowCount
dtKeyWords.SetCurrentRow (dtRow)
strObjClass = DataTable("ObjectClass","Keywords")
strObjProperties = DataTable("ObjectProperties","Keywords")
strOperation = DataTable("Operation","Keywords")
strValue = DataTable("Value","Keywords")
If strOperation="SetParent" Then
oParentObjectArray=Split(strObjClass,"/")
oParentObjectPropArray=Split(strObjProperties,"/")
For iParentCount=0 to ubound(oParentObjectArray)
iParent=oParentObjectArray(iParentCount)
iParentProps=oParentObjectPropArray(iParentCount)
If iParentCount=ubound(oParentObjectArray) Then
strParent=strParent&iParent&"("&""""&eval(iParentProps)&""""&")"
Exit For
End If
strParent=strParent&iParent&"("&""""&eval(iParentProps)&""""&")."
Next
ParentObject=strParent
Else
oStatement=ParentObject&"."&strObjClass&"("&""""& eval(strObjProperties) &""""&
")."& strOperation
If strValue<>"" Then
iStrInputDataArray=split(strValue,",")
For iInputValuesCount=0 to UBound(iStrInputDataArray)
If iInputValuesCount=UBound(iStrInputDataArray) Then
oStatement=oStatement&" "&""""& iStrInputDataArray(iInputValuesCount)
&""""
Exit for
End If
oStatement=oStatement&" "&""""& iStrInputDataArray(iInputValuesCount) &""""&","
Next
End If
Execute (oStatement)
End If
Next
'###################################################################

You might also like