290 likes | 398 Views
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”
E N D
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
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 Example for Passenger 1 First Name
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
Run-Time “Native” Object Properties/Methods from AUT (.Object)
Regular Expressions in ORExample: Server independent Page object 1. Click on Property value to access RegEx 2. Click RegEx Icon
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
Resources • QA Forums – www.sqaforums.com • HP/Mercury QTP User guide • Knowledge inbox (by Tarun Lalwani) - http://www.knowledgeinbox.com/ • Microsoft TechNet - http://www.microsoft.com/technet/scriptcenter/
Igor Gershovich • E-Mail: igershovich@connectedtesting.com • Phone: 720-933-9395 • www.connectedtesting.com