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.

 Specify Script Values Directly in the Excel


 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.

Example: taken is Google.

'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 Web Edit 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.

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

In this folder create 3 subfolders with the names “Scripts”, “Constants”,”KeyWords” and
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”

Copy above Object Description Constants in a VBS File and save it in the
“C:\KeyWordDrivenSample\Coanstants” with the name “OR Constants.vbs”

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 : Kishore grandhi

' Date Created :

' Date Updated :

'Updated by :

'###################################################################

'##############Initialize Variables and Load Libraries#############################

ExecuteFile "..\..\Costants\OR Constants.vbs"'


#####################Driver Script ######################################

'Add a new sheet and import keywordsSet

dtKeyWords=DataTable.AddSheet("Keywords")

Datatable.ImportSheet "..\..\Keywords\ScriptKeywords.xls","Sheet1","Keywords"

'Get Row Count and Column Count of the data table

dtRowCount=dtKeyWords.GetRowCountdtColumnCount=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

------------------------------------------------------------

it only works with Test Objects

You might also like