Vous êtes sur la page 1sur 28

QTP: Object Repository,

Descriptive
Programming
and Beyond
Prepared by: Igor Gershovich
Object Repository vs. Descriptive
Programming –what to use?
 There really is no “best way”
 Use the method that gives your company the
best ROI, whether that be Object Repository
(OR), Descriptive Programming (DP) or a
mixture of both
OR Pros and Cons
PROS:
 GUI Front end to examine all the objects in
the repository
 Highlight in Application feature is great tool to
walk the object tree
 No need to modify the script when object
properties changes
 Easy to identify objects in AUT by Object
Logical names
 Can be created independently from scripts
OR Pros and Cons

CONS:
 Additional layer to maintain

 Unnecessary objects can be created

 Multiple users cannot concurrently save/write

to the shared OR
 It won’t eliminate the need for Descriptive

Programming in most of cases


DP Pros and Cons

PROS:
 It’s a white box

 Compatible with different QTP versions

 Code portability is high

 Easy to mass update


DP Pros and Cons

CONS:
 Lower Code Readability and requires more

comments, like “what object is accessed”


 Potentially slower to create

 To highlight an object in the application

requires utilizing the “Highlight” method


What is Object Repository?

 Object Repository is a place where QTP


stores learned objects
 QTP uses default Object Identification
properties: mandatory and assistive to learn
objects into OR
Object Repository

Logical Name

Properties
OR: Object identification default
properties
Script playback using OR

 QTP finds the Object in Object Repository


using object Logical Name and Object
Hierarchy
 QTP retrieves Test Object properties from
OR
 QTP searches actual application for the
Object with the same properties as the OR
Test Object and performs user action
Script playback using
Descriptive programming
 QTP searches the Application Under Test
(AUT) for the Object using Descriptive
properties and performs user action
Descriptive programming – when
and why?
Consider using DP in following cases:
 Dynamic object properties

Example: Link Logout <User Name>


 Same objects on every page

Example: Buttons – Next, Back, Cancel, OK


 Lots of similar objects on one page

Example: table with many First & Last name


text boxes
Different ways to work with
objects
Different ways to work with
objects Example for Passenger 1 First Name
ChildObjects method – using
Collection Object
ChildObjects method – using
CollectionLastObject
Name fields
are populated
TO, RO and .Object

 .GetTOproperty/SetToProperty refers to the


properties stored in OR
 .GetROProperty property refers to the AUT
Object property (Run-time)
 .Object.<property/method> refers to the AUT
Object NATIVE properties/methods
Better names for Object Spy
radio-buttons
Run-Time NATIVE Object Run-Time QTP (Test) Object
Object Run-Time Properties from
AUT (GetRoProperty)
Run-Time “Native” Object
Properties/Methods from AUT
(.Object)
Test Object Properties from OR
Set/GetToProperty
Regular Expressions in OR
Example: Server independent
Page object
1. Click on Property value to access RegEx 2. Click RegEx Icon
Regular Expressions in OR
Regular Expressions in OR

RegEx icon
Object Smart Identification
 Smart Identification is not Artificial
Intelligence
 SI uses loose/unreliable object recognition
 It’s recommended to disable SI for each and
every page/window/control using the Tools-
>Object Identification dialog (Recording)
 Another way to disable SI: File -> Settings ->
Run -> Check the "Disable Smart
Identification during run session" check box
(Run-Time)
Smart Identification (SI)
Recording Options
SI Checkbox
Smart Identification (SI) Run
Option

SI Checkbox
Igor Gershovich

 E-Mail: igershovich@connectedtesting.com
 Phone: 720-933-9395

Vous aimerez peut-être aussi