Post on 20-Jun-2015
description
PREVIOUSLY MERCURY PREVIOUSLY MERCURY INTERACTIVE PRODUCTINTERACTIVE PRODUCT
NOW TAKEN OVER BY HPNOW 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(“Userna
me”).SETTOPROPERTY(“Enabled”,”True”)
GETTOPROPERTY()• GetTOProperty( propertyname)• Returns the value of the property• Example,• A =
Dialog(“Login”).Winbutton(“OK”).GetTOProperty(“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”).GETROPROPERTY(“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.