QTP: Object Repository, Descriptive Programming

advertisement
QTP: Object Repository,
Descriptive Programming
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 Collection
Object
Last 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
Download