Previously Mercury Interactive Product Now Taken Over by HP
Previously Mercury Interactive Product Now Taken Over by HP
INTERACTIVE PRODUCT
NOW TAKEN OVER BY HP
WHY QTP?
• MORE USER FRIENDLINESS
• MORE FEATURES – MORE
CHECKPTS
• BEST FOR .NET AND OTHER WEB
BASED APPLICATION
• KEYWORD DRIVEN TESTING
SOLUTION
DIFFERENT PANES IN
QTP
• TEST PANE – SCRIPTS ARE
GENERATED
• ACTIVE SCREEN – SNAP SHOTS
• DATA TABLE –
PARAMETRIZATION
• DEBUGGER – BREAKPOINTS,
WATCHLIST, COMMANDS
WHAT TYPE OF TOOL
IS QTP
• RECORD AND PLAYBACK TOOL
• IT HAS ADDITIONAL FEATURES LIKE
SYNC PT, CHECK PT, OUTPUT VALUES
• IT HAS STEP GENERATOR – BUILT IN
FUNCTIONS
• IT HAS FUNCTION DEFINITION
GENERATOR – USER DEFINED
FUNCTIONS
ADD-INS
• ADD-INS ARE SIMILAR TO HEADER FILES IN
C LANGUAGE
• THEY ARE INCLUDED AT THE BEGINNING OF
TESTING SESSIONS SO THAT CLASSES,
FUNCTIONS OF PARTICULAR APPLICATION
ARE LEARNT BY QTP
• FOR TESTING JAVA APPLICATION, JAVA
ADDIN HAD TO BE INCLUED.
• ADDIN MANAGER ENABLES TO MANAGE THE
ADDINS INCLUSION.
TYPES OF VIEWS IN
TEST PANE
• TWO TYPES
• KEYWORD VIEW – ACTIONS ARE
GENERATED IN TABULAR FORMAT
SIMILAR TO MANUAL TEST
CASES
• EXPERT VIEW – ACTIONS ARE
GENERATED IN VB SCRIPTING
MODES OF RECORDING
• NORMAL MODE – RECORDING BASED
ON PROPERTIES OF GUI
• ANALOG MODE – MOUSE MOVEMENTS,
CLICKS, KEYBOARD STROKES
• LOW LEVEL – COMBINATION OF ABOVE
TWO – MAINLY FOR RECORDING
CUSTOM OBJECTS
OBJECT RECOGNITION
• MANDATORY PROPERTIES – QTP
ALWAYS LEARNS FOR
DIFFERENTIATING OBJECTS
• ASSITIVE PROPERTIES –
OPTIONAL PROPERTIES LEARNT
WHEN MANDATORY COULDN’T
ABLE TO DIFFERENTIATE
OBJECT RECOGNITION
• ORDINAL IDENTIFIER – THIS IS USED
WHEN BOTH MANDATORY AND
ASSITIVE COULDN’T HELP TO
DIFFERENTIATE OBJECTS
• ORDINAL IDENTIFIER USES
LOCATION INDICATOR AND INDEX
INDICATOR TO DIFFERENTIATE
OBJECTS
OBJECT
IDENTIFICATION
• OBJECT IDENTIFICATION IS
ANOTHER COMPONENT IN QTP
SIMILAR TO GUI CONFIGURATION IN
WINRUNNER
• THIS IS USED TO CONFIGURE THE
MANDATORY AND ASSITIVE
PROPERTIES DEPENDING ON
APPLICATION TO BE TESTED.
OBJECT REPOSITORY
• OBJECT REPOSITORY IS SIMILAR TO
GUI MAP FILE IN WINRUNNER
• STORES THE PROPERTIES AND VALUE
OF THE OBJECTS LEARNT DURING
RECORDING
• WHILE PLAYBACK OF SCRIPTS, QTP
REFERS OBJECT REPOSITORY FOR
IDENTIFYING THE OBJECTS
OBJECT REPOSITORY
• TWO TYPES – PER ACTION, SHARED
REPOSITORY
• SHARED IS COMMONLY USED AS
SAVES TIME
• LOAD”PATH OF REPORSITORY” IS
FUNCTION USED TO LOAD
REPOSITORY RELATED FILES DURING
RUNTIME
WHAT ARE TYPES OF
PROPERTIES?
• TEST OBJECT – PROPERTIES
LEARNT BY QTP WHILE
RECORDING THAT IS USED FOR
MAPPING WITH ACTUAL OBJECTS
• RUNTIME – PROPERTIES OF
ACTUAL OBJECT IN THE
APPLICATION
OBJECT SPY
• OBJECT SPY IS A COMPONENT IN QTP
THAT HELPS TO LIST THE TEST
OBJECT AND RUNTIME PROPERTIES OF
THE GUI
• LISTS THE METHODS AND SYNTAX
THAT COULD BE IMPLEMENTED ON
THAT PARTICULAR OBJECT
• LISTS THE HEIRARCHY OF THE OBJECT
IN THE AUT
CHECK POINTS
• STANDARD CHECK POINT – STANDARD
PROPERTIES OF GUI INCLUDES TABLES
• BITMAP CHECK POINT – VERIFIES IMAGES
AND BITMAPS
• TEXT CHECKPT – WORKS ONLY IN CERTAIN
APPLICATION, BEST TO USE STANDARD
CHECK PT
• XML CHECK PT- USED TO VERIFY XML FILES
• DATABASE CHECK PT – CUSTOM AND DEFAULT
CHECKS ON DATABASE
CHECK POINTS
• ACCESSIBILITY CHECK PT – USED
TO VERIFY WHETHER THE PAGE
IN THE WEBSITE IS BUILD AS
PER W3 CONSORTIUM STANDARD
OR NOT
SMART
IDENTIFICATION
• MAINLY USED FOR VERIFYING
DYNAMIC OBJECTS
• THIS CAPTURES BASE FILTER AND
OPTIONAL FILTER PROPERTIES
INORDER TO RECOGNIZE THE
DYNAMIC OBJECTS
• CAN BE ENABLED THROUGH TOOLS >
OBJECT IDENTIFICATION
OUTPUT VALUES
• OUTPUTS THE VALUE OF PROPERTIES
OF GUI DURING RUNTIME
• CAN BE VIEWED IN RUNTIME
DATATABLE IN RESULTS WINDOW
• MAINLY USED TO GET COLLECTION OF
PROPERTY VALUE OF DYNAMIC
OBJECTS
PARAMETRIZATION
• PARAMETRIZATION - PASSING
MULTIPLE SET OF VALUES FOR
TESTING
HOW CAN WE
PARAMETRIZE?
• IDENTIFY THE FIXED VALUE
THAT NEEDS TO BE
PARAMETRIZED
• REPLACE WITH PARAMETER
• PASSING VALUE FROM DATA
TABLE
WHAT IS DATA TABLE
• INBUILT XL SHEET IN QTP FOR
PASSING VALUES TO PARAMETERS IN
RUNTIME
• TWO SHEETS – GLOBAL AND ACTION
• GLOBAL – DATAS ARE PASSED TO ALL
ACTIONS WITHIN THE SCRIPT
• ACTION – DATAS ARE PASSED TO ONLY
PARTICULAR ACTION
WAYS TO
PARAMETRIZE..
• DATA TABLE PARAMETER – PASSING
THROUGH DATA TABLE
• ACTION/COMPONENT PARAMETER – BY
DECLARING INPUT AND OUTPUT
PARAMETER IN ACTION PROPERTIES
• ENVIRONMENT PARAMETER –
EXTERNAL HOST, URL, VUSER ETC…
• RANDOM PARAMETER – WITHIN
NUMERIC RANGE
Synchronization
• Problem due to mismatch between tool
time and application time is sorted using
synchronization
• Wait(seconds)
• Exist – returns boolean value
• Waitproperty(property, value, timeout)
• Sync – waits until all objects are
downloaded in a webpage
TYPES OF ACTIONS
• REUSABLE ACTION – THAT CAN BE
CALLED TO ANY SCRIPT
• NON REUSABLE – THAT CAN BE
CALLED TO ANY ACTION WITHIN
THE SCRIPT AND ONLY ONCE
• EXTERNAL – REUSABLE ACTIONS
BUT ARE READ ONLY
CALLING ACTION
• INSERT CALL TO EXISITING ACTION –
CALLS A REUSABLE ACTION, BUT ANY
CHANGES WILL BE REFLECTED ON
ORIGINAL CALLED ACTION
• INSERT CALL TO COPY OF ACTION –
CALLS A REUSABLE ACTION, BUT
CHANGES ARE NOT REFLECTED ON
ORIGINAL CALLED ACTION
TRANSACTIONS
• TRANSACTIONS ARE NOTHING BUT
TIMER FOR MEASURING TIME TAKEN
FOR EXECUTING PARTICULAR TASK
• SERVICES.START TRANSACTION “T1”
• SERVICES.END TRANSACTION “T1”
• CAN BE USED ANY NUMBER OF TIMES
DEBUGGING
• DEBUGGING – FINDING ERRORS IN THE
SCRIPT
• BREAKPOINTS – POINT WE CREATE IN THE
SCRIPT WHERE THE EXCUTION OF SCRIPT IS
PAUSED
• WATCHLIST – MAINLY FOR BETTER
DEBUGGING. USED TO VIEW THE VALUES OF
THE PARAMETERS/VARIABLES DURING
RUNTIME
HOW TO HANDLE
CUSTOM OBJECTS???
• SOLUTION IS VIRTUAL OBJECT
WIZARD
• THIS HELPS TO MAP THE CUSTOM
OBJECT WITH THE STANDARD
GUIS. HENCE WHILE RECORDING
QTP RECOGNIZES EVEN THESE
NON STANDARD OBJECTS
HANDLE THE CHANGING
WINDOWS/ OBJECT
PROPERTIES??
• THE SOLUTION IS “REGULAR
EXPRESSION”
• REGULAR EXPRESSION IS AN
EXPRESSION THAT MAKES QTP
TO RECOGNIZE THE OBJECTS
THAT HAVE VARYING PROPERTY
DURING RUNTIME
REGULAR EXPRESSION
• \ – SYMBOL TO INDICATE IT IS AN
REGULAR EXPRESSION
• . – PERIOD MATCHES ONE CHARACTER !
WELCOME. CAN MATCH WELCOMES,
WELCOMED
• * - MATCHES ANY NUMBER OF
CHARACTER !W*-WHO, WE
• [] – TO INDICATE COLLECTION LIKE
• !W[E3] – WE, W3
REGULAR
EXPRESSIONS
• - INDICATES RANGE LIKE [0-9]
• ^ INDICATES EXCLUSION LIKE [^A-Z]
WILL NOT ACCEPT UPPER CASE
ALPHABETS
• + indicates one or more occurrence of
preceding character ca+r – car, caaar and
not cr
• \w matches all characters except
alphanumeric and underscore
WHAT ARE
EXCEPTIONS???
• EXCEPTIONS ARE NOTHING BUT
UNEXPECTED ERRORS THAT
CAUSES HINDERANCE DURING
THE EXECUTION OF SCRIPTS
• COULD BE DUE TO POP UPS,
OBJECT PROPERTY CHANGE,
APPLICATION CRASH, TEST RUN
HOW TO HANDLE
EXCEPTION???
• SIMPLE USING RECOVERY
SCENARIO MANAGER.
• RECOVERY SCENARIO MANAGER
IS A WIZARD THAT GUIDES
STEPS TO HANDLE EXCEPTIONS
RECOVERY SCENARIO
MANAGER
• THREE STEPS
• TRIGGER EVENT – DEFINE THE
EXCEPTION
• RECOVERY OPERATION –
DEFINING THE HANDLER
FUNCTION
• POST RECOVERY OPERATION.
FUNCTION?
PROCEDURE???
• FUNCTION CAN BE INBUILT OR
USER DEFINED. IT IS ONE THAT
RETURNS A VALUE
• PROCEDURE IS SIMILAR TO
FUNCTION BUT DOESN’T RETURN
VALUE
SOME IMPORTANT
FUNCTIONS -
SetTOProperty
• SETTOPROPERTY()
• PROPERTYNAME, VALUE
• DIALOG(“Login”).WinEdit(“Username
”).SETTOPROPERTY(“Enabled”,”True
”)
GETTOPROPERTY()
• GetTOProperty( propertyname)
• Returns the value of the property
• Example,
• A=
Dialog(“Login”).Winbutton(“OK”).GetT
OProperty(“Enabled”)
GETTOPROPERTIES( )
• GetTOProperties()
• Lists all the properties and property
values of particular object
GetROProperty()
• GetROProperty(Propertyname)
• Returns the runtime property of the
particular object
• Dim a
• A=
dialog(“login”).Winbutton(“OK”).GETR
OPROPERTY(“nativeclass”)
Can we connect database
through QTP???
• Answer is yes not through wizard but
through scripting
• Set a = createobject(“ADODB.connection”)
• A.open”DSN = Employee.mdb, Username =
xxx, Password = xxxx”
• Set b =
createobject(“ADODB.RecordSet”)
• B.open”Select * from table1”,a
• Msgbox b.recordcount
File handling
• Using QTP it is possible to pass datas from
various files and write data into file
• Example to read data from a file
• Set a =
createobject(“Scripting.FileSystemObject”)
• Set b = a.opentextfile(“path”,0/1/8,”true”)
• Str = b.readline
• 0 – write mode 1- read mode 8 – append
• True/false – file exist or create new
ChildObjects()
• This function is used to return the
list of all objects within the window
• Example to count no of objects
within dialog
• Set c = dialog(“Login”).childobjects()
• Msgbox c.count
POPUP()
• POPUP(“MSG”,WAIT TIME,
“TITLE”,BUTTON)
• EXAMPLE
• SET A =
POPUP(“HI”,10,”GREETING”,4)
• A WILL BE RETUNED VALUE 6(YES)
AND 7(NO)
MAXIMIZE WINDOW
• MAXIMIZE IS KEYWORD FOR
MAXIMIZING WINDOW/DIALOG
• FULLSCREEN IS THE KEYWORD
FOR MAXIMIZING THE BROWSER
DATATYPE
CONVERSION
• CINT() – CONVERTS VAR TO
INTEGER
• CLNG() – CONVERTS CURRENCY TO
INTEGER
• CCUR()- CONVERTS TO CURRENCY
FORMAT
IS IT POSSIBLE TO OPEN
APPLICATION THROUGH
SCRIPTING???
• YES!!!
• SYSTEMUTIL.RUN “PATH” FOR
OPENING ANY APPLN
• INVOKE “PATH” FOR EXE
APPLICATION
• EXECUTE “PATH”
USER DEFINED
FUNCTION
• FUNCTIONS THAT ARE REPEATED FOR MANY TIMES
• EXAMPLE
• PUBLIC FUNCTION SUM(X, Y, Z)
• Z = X+Y
• END FUNCTION
• DIM A, B, C
• A = INPUTBOX (“ENTER A”)
• B = INPUTBOX(“ENTER B”)
• SUM (A,B,C)
• MSGBOX C
FRAMEWORKS
• FRAMEWORKS ARE SET OF
DEFINED RULES FOR
AUTOMATING A TESTING
PROCESS
• IT COULD BE SAID AS
AUTOMATION TEST APPROACH
FRAMEWORKS
• LINEAR FRAMEWORK – RECORDING,
ENHANCEMENT , PLAYBACK
• HERE U CREATE SCENARIOS, DO
RECORDING BASED ON SCENARIOS,
ENHANCEMENT IS DONE FOR
VERIFICATIONS, AND PLAYBACK FOR
EXECUTION
FRAMEWORK
• DATA DRIVEN – HERE AN
EXTERNAL DATABASE IS
MAINTANINED FOR PASSING
VALUES TO THE ACTIONS IN QTP
• VALUES ARE COMPLETELY PASSED
ONLY THRO THIS DATA SETS
FRAMEWORK
• KEYWORD DRIVEN – USING THE
MANULLY ENTERED TABLE THAT
DEFINES TESTOBJECT,
OPERATION, DATA AND
DESCRIPTION, VB SCRIPTS ARE
AUTOMATICALLY GENERATED BY
QTP
FRAMEWORK
• DESCRIPTIVE PROGRAMMING – IT IS A
CONCEPT OF EXECUTION OF SCRIPTS
WITHOUT THE REFERENCE OF OBJECT
REPOSITORY
• DIALOG(“CLASS = DIALOG”,”CAPTION =
Login”).Winbutton(“class = Button”,”Text =
OK”).Click
FRAMEWORKS
• FUNCTIONAL/MODULAR – HERE
THE ACTIONS ARE DECLARED AS
USER DEFINED FUNCTIONS
• THESE FUNCTIONS ARE CALLED
WHEREVER NEEDED.
FRAMEWORK
• HYBRID FRAMEWORK – MIX OF
ANY OF THE ABOVE FRAME
WORKS ARE CLASSED AS HYBRID.
• DEPENDING ON COMPLEXITY OF
THE APPLICATION, MIXES ARE
CHOSEN.