qtp: object repository, descriptive programming and beyond
Embed Size (px)
DESCRIPTION
Whenever QTP records any action on any object of an application, it adds some description on how to recognize that object to a repository of objects called object repository. QTP cannot take action on an object until unless its object description is in the Object Repository.But descriptive programming provides a way to perform action on objects which are not in Object repository.Visit: http://www.onestopsoftwaretesting.com/One Stop Software TestingA Practical Approach to Software Testing. Here you can find Software Testing (Automation and Manual Testing) related best articles and topics.TRANSCRIPT

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 Collection ObjectLast 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 ORSet/GetToProperty

Regular Expressions in ORExample: Server independent Page object1. 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