Descriptive Programming
Object Repository:
♦ Object Repository(OR) stores the objects information in QTP.Object repository acts as a interface between the Test script
and AUT in order to identify the objects during execution.
♦ QuickTest has two types of object repositories for storing object information:
1. Shared object repository
2. Local object Repository
Shared Object Repository:
A Shared Object Repository(SOR) stores objects information in a file that can be accessed by multiple Test.Extension of file name is .tsr,This is the most familiar and efficient way to save objects.
Local Object Repository:
Local Object Repository stores objects information in a file that is associated with one specific action, so that only that action can access the stored objects.Extension of file name is .mtr.
Example:
♦ Object Repository(OR) stores the objects information in QTP.Object repository acts as a interface between the Test script
and AUT in order to identify the objects during execution.
♦ QuickTest has two types of object repositories for storing object information:
1. Shared object repository
2. Local object Repository
Shared Object Repository:
A Shared Object Repository(SOR) stores objects information in a file that can be accessed by multiple Test.Extension of file name is .tsr,This is the most familiar and efficient way to save objects.
Local Object Repository:
Local Object Repository stores objects information in a file that is associated with one specific action, so that only that action can access the stored objects.Extension of file name is .mtr.
Example:
'Username="qtpworld.com"
'Password="qtp"
'***********************************Login to gmail account using Object Repository ***********************************
'Launch gmail
systemutil.Run "iexplore.exe","http:\\www.gmail.com"
'wait til browser Loads
Browser("Gmail: Email from Google").Page("Gmail: Email from Google").Sync
' Enter Email id in Username Field
Browser("Gmail: Email from Google").Page("Gmail: Email from Google").WebEdit("Email").Set "qtpworld.com"
'Enter password in Passowrd Field
Browser("Gmail: Email from Google").Page("Gmail: Email from Google").WebEdit("Passwd").Set "qtp"
'Cick on the Sign In Button
Browser("Gmail: Email from Google").Page("Gmail: Email from Google").WebButton("Sign in").Click
Descriptive Programming(DP):
♦ Entering Objects Information directly into the test script is called descriptive programming.In DP, we will be "manually"
specifying the properties and values by which the relevant object will be identified. This way QTP won’t search for the
properties data in the Object Repository, but will take it from the DP statement.
♦ Object Spy is used to get the properties and their values to uniquely identify the objects in the application. If we know such
properties and their unique values that can identify the required object without ambiguity, we need not use Object Spy.
Two ways of descriptive programming:
1. Static Programming
2. Dynamic Programming
1.Static Programming: We provide the set of properties and values that describe the object directly in a VBScript statement.
Example:
'Username="qtpworld.com"
'Password="qtp"
'*****************************Login to gmail account using Static descriptive Programing ******************************
'Launch gmail
systemutil.Run "iexplore.exe","http:\\www.gmail.com"
'Assign object property value to a variable pwd
pwd="Passwd"
'Wait till browser loads
Browser("title:=Gmail: Email from Google").Page("title:=Gmail: Email from Google").Sync
' Enter Email id in Username Field
Browser("title:=Gmail: Email from Google").Page("title:=Gmail: Email from Google").WebEdit("name:=Email").Set "qtpworld.com"
'Enter password in Passowrd Field
Browser("title:=Gmail: Email from Google").Page("title:=Gmail: Email from Google").WebEdit("name:=" & pwd).Set "qtp"
'Cick on the Sign In Button
Browser("title:=Gmail: Email from Google").Page("title:=Gmail: Email from Google").WebButton("name:=Sign in").Click
2. Dynamic Programming: We add a collection of properties and values to a Description object, and then enter the
Description object name in the statement.
Example:
'Username="qtpworld.com"
'Password="qtp"
'*****************************Login to gmail account using Dynamic descriptive Programing *************************************
'Launch gmail
systemutil.Run "iexplore.exe","http:\\www.gmail.com"
'Descriptive object to identify Browser with a particular title
Set Dbrowser=description.Create
Dbrowser("micclass").value="Browser"
Dbrowser("title").value="Gmail: Email from Google"
'Descriptive object to identify Web page with a particular title
Set Dpage=description.Create
Dpage("micclass").value="Page"
Dpage("title").value="Gmail: Email from Google"
'Descriptive object to identify a particular Web Button
Set Dbutton=description.Create
Dbutton("micclass").value="WebButton"
Dbutton("name").value="Sign in"
'Descriptive object to identify Web Text Box
Set Dedit=description.Create
Dedit("micclass").value="WebEdit"
Dedit("name").value="Email"
'wait till browser loads
Browser(Dbrowser).Page(Dpage).Sync
' Enter Email id in Username Field
Browser(Dbrowser).Page(Dpage).WebEdit(Dedit).Set "qtpworld.com"
Dedit("name").value="Passwd"
'Enter password in Passowrd Field
Browser(Dbrowser).Page(Dpage).WebEdit(Dedit).Set "qtp"
'Cick on the Sign In Button
Browser(Dbrowser).Page(Dpage).WebButton(Dbutton).Click
Which approach is best in QTP, Object Repository vs. Descriptive Programming ?
♦ There really is no “best way”.
♦ Use the method that gives your company the best ROI(Return On Investment), whether that be Object Repository (OR),
Descriptive Programming (DP) or a mixture of both.
When to use Descriptive Programming?
Following are some of the Scenarios where Descriptive programming is used:
Scenario #1: Suppose we need to start Automation before Build Release.
OR:- There is no application to create Object Repository.
Scenario #2: If the Application under test is having Dynamic Objects.
OR:- Difficult to handle Dynamic Objects using Object Repository.
Scenario #3: When the application under Test is having objects that are adding in the Run Time.
OR:- We can’t add objects to Object Repository in run time.
Scenario #4: If Application under test is having similar type of objects or similar name objects.
OR:- Object Repository will create multiple objects with same description unnecessarily.
Scenario #5: When Application under test have more objects to perform operations.
OR:- The performance will decrease if object repository is having huge number of objects.
Advantages of Descriptive Programming:
1. Version Free: Script can be executed in any version of QTP without any changes.
2. Code Portability: Just code is enough to run script. We can copy and paste in other scripts for any other new requirement.
3. Reusability of Properties: We can assign properties to a global variable and reuse it for same type of objects.
4. Plug & Play: Any time scripts will be in ready to run state. No need to worry about any other settings or files.
5. Just Maintenance of variables: Store the object properties in the form of variables in a txt / vbs file, need to maintain the file.
Child Objects in QTP:
Child Objects in Excel:
The object model used by QTP reflects the way applications are implemented.
Example: Object model hierarch for MS Excel is Workbook>>Worsheets>>Cells
Child Objects in Webpage:
GUI controls (objects) are located in container objects, such as a WebEdit in a Web Page, which is in turn contained
within a Browser object.Hence, such a WebEdit is a child object of the Page object, which is in turn a child object of the
Browser object.
Example: Object model hierarchy for Gmail login Web page is Browser>>Page>>Webedit
Child Objects in Window:
Any of the object controls like a button, checkbox, radiobutton, combobox, frame etc of the application that can be referred
only from its parent object are called child objects.
Example:
A button may have been placed directly on a window. So, the window will be a parent object and the button will be a
child object. OR
Example:
A group of radiobuttons may have been placed under a frame and that frame is placed on a window. So, the window will
be a parent object of the frame and the frame will be the parent object of the radiobuttons. Radiobuttons will be the child objects.
Example:
Username="qtpworld.com"
'Password="qtp"
'*****************************Login to gmail account using Child Objects *************************************
'Launch gmail
systemutil.Run "iexplore.exe","http:\\www.gmail.com"
'Descriptive object to identify Browser with a particular title
Set Dbrowser=description.Create
Dbrowser("micclass").value="Browser"
Dbrowser("title").value="Gmail: Email from Google"
'Descriptive object to identify Web page with a particular title
Set Dpage=description.Create
Dpage("micclass").value="Page"
Dpage("title").value="Gmail: Email from Google"
'Descriptive object to identify a particular Web Button
Set Dbutton=description.Create
Dbutton("micclass").value="WebButton"
Dbutton("name").value="Sign in"
'Descriptive object to identify Web Text Box
Set Dedit=description.Create
Dedit("micclass").value="WebEdit"
'wait till browser loads
Browser(Dbrowser).Page(Dpage).Sync
'to find number of webedit in gmail page
Set Wtextbox = Browser(Dbrowser).Page(Dpage).ChildObjects(Dedit)
NoOfTextbox = Wtextbox.Count
For Counter=0 to NoOfTextbox-1
If Wtextbox(Counter).getroproperty("name")="Email" then
' Enter Email id in Username Field
Wtextbox(Counter).set "qtpworld.com"
Elseif Wtextbox(Counter).getroproperty("name")="Passwd" then
'Enter password in Passowrd Field
Wtextbox(Counter).set "qtp"
End If
Next
'Cick on the Sign In Button
Browser(Dbrowser).Page(Dpage).WebButton(Dbutton).Click
Comments
Post a Comment