automation testing material by durgasoft,hyderabad

122
QUICK TEST PROFESSIONAL(QTP) UNIFIED FUNCTIONAL TESTING(UFT) By DURGASOFT 10/26/11 Durgasoft

Upload: durga-prasad

Post on 20-Jan-2017

21 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Automation testing material by Durgasoft,hyderabad

QUICK TEST PROFESSIONAL(QTP)UNIFIED FUNCTIONAL TESTING(UFT)

By DURGASOFT

10/26/11 Durgasoft

Page 2: Automation testing material by Durgasoft,hyderabad

Automation Testing:This is the process of testing the application by taking help of any tool is called automation testing.

Ways of Testing:1.Manual Testing2.Automation Testing

When we need to go for automation testing:Whenever we are having number of test cases and need to execute repeatedly, then it require automation testing to overcome below drawbacks of the manual testing.

More resources are requiredMore time is requiredNo accuracyNo repeatabilityNo reusabilityMore budget is requiredTest team may get bored and tiredness

The pre-requisite for automation is application should be stable like more than 70%. (it may vary based on the company)

10/26/11 Durgasoft

Page 3: Automation testing material by Durgasoft,hyderabad

So automation testing is not the replacement for manual testing.To overcome all the drawbacks of manual testing, just it is a continuation to the manual testing.

Why we need to go for automation:Once application is stable then we can continue generating the instructions with the help of any tool.By using tool or automation will give below advantages:

Required less timeLess no. of resources are requiredAccuracyRepeatabilityReusabilityIn the long span of time, budget also gets reduced.

How to work with automation testing:

Application QTP

Test PartnerWinrunner

Instructions

TC’s pass TC’s failTC’s

12310/26/11 Durgasoft

Page 4: Automation testing material by Durgasoft,hyderabad

About QTP

QTP is a graphical user interface functional regression testing tool

Vendor for QTP is mercury interactive and later it was undertaken by the HP in 2006.

Scripting language required for QTP is VB Script . Note: It also supports Java Script.

QTP is used for perform GUI and regression testing.

QTP supports only windows operating system all versions except window 97.

QTP supports applications like java, .net, web, windows, siebel, SAP, ERP, mainframes, cobol, flex and powerbuilder applications.

QTP supports databases like oracle, SQL server, sybase, mybase, mysql………

QTP supported environments are windows, client-server, web and distributed

The latest version of QTP is 11.0.

10/26/11 Durgasoft

Page 5: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Different Versions of QTP are 5.5,6.0,6.5,8.0,8.2,9.0, 9.2, 9.5, 10.0, 11.0

11.0 - Released in 201010.0 - Released in 20099.5 - Released in 20079.2 - Released in 20079.0 - Released in 20068.2 - Released in 20058.0 - Released in 20046.5 - Released in 20036.0 - Released in 20025.5 - First release. Released in 2001

Page 6: Automation testing material by Durgasoft,hyderabad

Browsers supporting QTP are IE ( all versions ), FireFox 3.5 and QTP 11.0 version is supporting safari also.

Note: Firefox 4.0 will be supported by the QTP but we need to install corresponding patch 6.11.3

ADD-IN Manager:It is a interface between QTP tool and different applications.

By using this window we can tune, different type of applications will get recognize by QTP.

Each type of application will be having specific add-in which we need to get it from the HP and it is licenced.

Default add-ins supported by QTP are VB, ActiveX and Web.

For any other type of application we need to install corresponding add-in then automatically, add-in name will be displayed in add-in manager window.

What are all the add-ins we have selected based on that QTP is going to allow for generating the instructions or identifying the application.

10/26/11 Durgasoft

Page 7: Automation testing material by Durgasoft,hyderabad

Applications NetWebVBJavaOracle appsSAPPeopleSoftSiebelTerminal Emulators

Add-in managerVB

ActiveXWeb Java

QTP

Licenses:

1. Seat License: It can be used in the single system and also it is not possible to share it to the other systems.(Mapped with single system and it is not sharable)

2. Concurrent License: This license can be used by the ‘n’ number of persons simultaneously and also this can be transferrable to other systems.

10/26/11 Durgasoft

Support By

Page 8: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

QTP Installation Procedure:Way 1:

1. Install from QTP.exe ( Trial version for 14 days.) Format is required for every installation. To overcome the same

we need to download QTP Uninstaller.exe from KnowledgeInbox.com site and remove all your registry files and Install again without format also as it will work fine.

Way 2: (Permanent License)1. Install QTP 9.2 with Crack.exe(It will become permanent license)2. Uninstall QTP from Control Panel(Don’t use above QTP

Uninstaller.exe)3. On top of QTP 9.2, Install QTP 10.0 then it will become Permanent

License.

NOTE: Trial for 14 days pop up is not displaying then confirm it is Permanent Version only.

Page 9: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Page 10: Automation testing material by Durgasoft,hyderabad

Controls Windows Web Java

Button Winbutton Webbutton Javabutton

Text field Winedit Webedit Javaedit

Label Static WebElement Label

Dropdown box Wincombobox Webcombobox Javacombobox

Check box Wincheckbox Webcheckbox Javacheckbox

Radio button Winradiobutton Webradiobutton Javaradiobutton

Links ----------- Links JavaLink

Dialog Dialog ------------ Javadialog

Browser ------------- Browser JavaBrowser

Menu WinMenu - JavaMenu

10/26/11 Durgasoft

Standard Class Names:

Page 11: Automation testing material by Durgasoft,hyderabad

Object Repository:QTP is required objects or controls properties information for recognizing the objects/ controls for performing one test case navigation. QTP contains a object repository which is used for maintaining all the object property information for recognizing the object.By default it takes care of all the properties required for identification.

Options:

1. Add objects to local: It is used for adding the application objects along with properties.

2. Highlight in Application: It used for justifying added objects are getting recognized by QTP tool

3. Navigation for Object Repository:

resource object repository

10/26/11 Durgasoft

Page 12: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Object Spy:It is the feature used for viewing the object properties hold by the controls available in our application.Object spy display the objects property names and their property values, but where as object repository is used for storing the objects, mandatory properties for recognizing the objects.

It is used for verify object status like enabled, focused and visible…etc.

Page 13: Automation testing material by Durgasoft,hyderabad

Types of Objects:

There are 2 types of objects available in any application1. Test Objects:Objects which are static(Constant).These Objects all Properties and their values are not going to change in runtime.

Ex: Labels,Menus….

2. Runtime Objects:Any Object property values are getting changed in runtime then those all objects are

Runtime Objects.Any property value may get changed based on operation performed on our applcation for

these objects.

Ex: Button,text field,Drop down box, checkbox,radiobutton…..

Getroproperty:It is used for fetching the runtime object property value. Objects may have n no of properties, Whenever we require to fetch any runtime property

value then we can fetch using this property.10/26/11 Durgasoft

Page 14: Automation testing material by Durgasoft,hyderabad

QTP Script

1)Button:

Syntax:(Parent window standard type)(parent window object name).(child standard

type)(child object name).operation

Ex: Dialog("Login").WinButton("OK").ClickDialog("Login").WinButton("Help").ClickDialog("Login").WinButton("Cancel").Click

Msgbox Dialog("Login").WinButton("OK").GetROProperty("enabled")Msgbox Dialog("Login").WinButton("OK").GetROProperty("focused")Msgbox Dialog("Login").WinButton("OK").GetROProperty("visible")

10/26/11 Durgasoft

Page 15: Automation testing material by Durgasoft,hyderabad

2. Text Box1. enter/clear2. enabled/disabled3. existence4. verifying entered data5.visible6.focused7. length and width

Ex:

Dialog("Login").WinEdit("Agent Name:").Set "Venkata"Dialog("Login").WinEdit("Agent Name:").Set "“Dialog("Login").WinEdit("Agent Name:").GetROProperty("enabled") ----> True/FalseDialog("Login").WinEdit("Agent Name:").Exist ---> True/FalseDialog("Login").WinEdit("Agent Name:").GetROProperty("text") ---> Get entered valueDialog("Login").WinEdit("Agent Name:").GetROProperty("visible") ---> True/FalseDialog("Login").WinEdit("Agent Name:").GetROProperty("focused") ---> True/FalseDialog("Login").WinEdit("Agent Name:").GetROProperty("length")Dialog("Login").WinEdit("Agent Name:").GetROProperty("width")

10/26/11 Durgasoft

Page 16: Automation testing material by Durgasoft,hyderabad

3. List Box/combobox

1. Select item name/index2. Get All items / Get Content3. Get current selected item4. Get item count5. enabled6. Focused7. visible8. Exist

Window("Flight Reservation").WinComboBox("Fly From:").Select "London" Window("Flight Reservation").WinComboBox("Fly From:").Select 2

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("all items")

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetContent

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("text")msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetSelection

10/26/11 Durgasoft

Page 17: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("enabled")

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("focused")

msgbox Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("visible")

msgbox Window("Flight Reservation").WinComboBox("Fly From:").Exist

Note: Above all methods will be same for list box in both WINDOWS or WEB applications.

Page 18: Automation testing material by Durgasoft,hyderabad

4. CheckBox

1. Select2. deselect3. enabled4. exist5. checked or not6. focused

window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Set "ON"window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Set "OFF"window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").GetROProperty("enabled")Msgbox window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Existmsgbox window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").GetROProperty("checked")msgbox window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").GetROProperty("focused")

10/26/11 Durgasoft

Page 19: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

5. Radio Button:

1. set radio button2. Verify Checked3. Exist4. visible5. enabled

Window("Flight Reservation").WinRadioButton("First").Setmsgbox Window("FlightReservation").WinRadioButton("First").GetROProperty("checked") ---> ON/OFFmsgbox Window("Flight Reservation").WinRadioButton("First").Existmsgbox Window("Flight Reservation").WinRadioButton("First").GetROProperty("visible")msgbox Window("FlightReservation").WinRadioButton("First").GetROProperty("enabled")

Page 20: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

6. Menu:1.Exist2.Select

msgbox Window("Flight Reservation").WinMenu("Menu").Exist

Window("Flight Reservation").WinMenu("Menu").Select "File;New Order“Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."

Page 21: Automation testing material by Durgasoft,hyderabad

7. Browser:

1. open2. exist3. close4. Full Screen5. Refresh6. maximize/ minimize7. activate

Ex:Systemutil.run “IEXPLORER.EXE”, “URL”Msgbox browser (“orange hrm”). ExistBrowser (“orange hrm”). CloseBrowser (“orange hrm”). Fullscreen Browser (“orange hrm”). refresh

Strhwnd = browser (“orange hrm”). Getroporperty (“hwnd”)Window (“hwnd:=“&strhwnd). MaximizeWindow (“hwnd:=“&strhwnd). MinimizeWindow (“hwnd:=“&strhwnd). Activate

10/26/11 Durgasoft

Page 22: Automation testing material by Durgasoft,hyderabad

8. ACTIVEX:

1. Type2. Enabled3. visible4. Retrieve activex field value

Window("Flight Reservation").ActiveX("MaskEdBox").Type "111111"msgbox Window("Flight Reservation").ActiveX("MaskEdBox").GetROProperty("enabled")msgbox Window("Flight Reservation").ActiveX("MaskEdBox").GetROProperty("visible")msgbox Window("Flight Reservation").ActiveX("MaskEdBox").GetROProperty("text")

10/26/11 v

Page 23: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

9. Page:1. exist Browser (“orange hrm”). Page (“orange hrm”).Exist

10. Frame:1. existBrowser (“orange hrm”). Page (“orange hrm”).Frame(“Orange hrm”).Exist

11. Link:1. click 2. exist

Browser (“orange hrm”). Page (“orange hrm”). Link (“change password”). ClickMsgbox Browser (“orange hrm”). Page (“orange hrm”). Link (“change

password”). Exist

Page 24: Automation testing material by Durgasoft,hyderabad

12. Web Table:1. rows2. columns3. data of each cell4. exist

Msgbox Browser (“mercury quality center”). Page (“mercury quality center”). Webtable (“quality center”). Getroproperty (“rows”)

Msgbox Browser (“mercury quality center”). Page (“mercury quality center”). Webtable (“quality center”). Rowcount

Msgbox Browser (“mercury quality center”). Page (“mercury quality center”). Webtable (“quality center”). Getroproperty (“cols”)

Msgbox Browser (“mercury quality center”). Page (“mercury quality center”). Webtable (“quality center”). Getcelldata (3, 1)

Msgbox Browser (“mercury quality center”). Page (“mercury quality center”). Webtable (“quality center”).Exist

Set OBJ = browser("Untitled Page").Page("Untitled Page").WebTable("TestId").ChildItem(4,3,"Link",0)OBJ.click10/26/11 Durgasoft

Page 25: Automation testing material by Durgasoft,hyderabad

Utility Statement:It is used for opening the application or executing the exe’s. We need to specify type of browser as a first argument to the utility statement along with path as second argument for opening the web application with specific browser.Whenever we need to work with windows application, then we need to specify exe file path.

Systemutil.run “browser”, “URL”Systemutil.run “path”

Ex: systemutil.Run "chrome.exe","www.gmail.com"

10/26/11 Durgasoft

Page 26: Automation testing material by Durgasoft,hyderabad

Object Methods:

1. Getroproperty:It is used for fetching the runtime object property value. Objects may have n no of properties, Whenever we require to fetch any runtime property value then we can fetch using this property.

2. Select: It is used for selecting the particular item from the combo box ,drop down list box and also selecting items in Menu.

3. Click:It is used for clicking on the button, link.

4. Set:It is used for set the data into test field and clearing the data. It is used for check checkbox by providing the arguments ON and OFF.

5. Type:It is used for type the particular data into text field / ACTIVEX.

6. Maximize: It is used for maximizing the window or dialog or browser.10/26/11 Durgasoft

Page 27: Automation testing material by Durgasoft,hyderabad

7. Minimize:It is used for minimizing the window or dialog or browser.

8. Activate:It is used for activating the dialog or window or browser.

9. Exist:It is used for checking the control or objects availability. If it is available it will return true, else false.

10. Close:It is used for closing the existing window or dialog or browser on our desktop.

10/26/11 Durgasoft

Page 28: Automation testing material by Durgasoft,hyderabad

11. Fullscreen:It is used for fullscreen the browser window.

12. Refresh:It is used for refreshing the specific browser window.

13. Gettoproperty:It is used for fetching the test object properties, it means the properties and their values are constant while developing the instructions and while executing the instructions.

Note: Getropropety is used for fetching the not only runtime object properties but also test object properties as well.

10/26/11 Durgasoft

Page 29: Automation testing material by Durgasoft,hyderabad

VB Script It is a light weight programming language Microsoft is the vendor for VB Script VB Script is used for verification purpose along with QTP.

Note: We can use VB Script for developing the web applications along withHTML.

Variable:It is name of the memory location in RAM. By using this name we can keep test data andwe can fetch whenever we require while executing the instructions.Note: We can update the data in n no of times in Temporary memory using variable name.

strnamevenkatintage

10/26/11 Durgasoft

Page 30: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Naming Restrictions:

Variable names follow the standard rules for naming anything in VBScript. A variable name should be:

Must begin with an alphabetic character. Cannot contain an embedded period(.). Must not exceed 255 characters. Must be unique in the scope in which it is declared.

NOTE: VBScript has only one data type called a Variant. A Variant is a special kind of data type that can contain or hold different kinds of information like strings,chars,numerics,date and decimals…..

Page 31: Automation testing material by Durgasoft,hyderabad

Declaration of Variable:

By using this we can update memory cell name or variables names to the QTP tool.We have to use the keyword ‘DIM’ ( dimension ) for declaring the variable. It is not mandatory to declare a variable in VB Script as it is having auto declaration.

DIM strinstnameDIM intageDIM fltweight

Initializing the Variables:Assigning the data to the variables.By using “=“ operator ,we used to assign data to the variables.NOTE:

1. For strings as we need to use double quotes. strinstname = “Venkat”2. For integers and float, no need to use any quotes.intage = 50fltweight = 10.5

10/26/11 Durgasoft

Page 32: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Constants:

A constant is a meaningful name that takes the place of a number or string and never changes.

If at all you don’t want to change value in variable and required same value in entire script then need to declare as a constant and assign the value.

Declaring constant variables:

Const MyString = "This is my string."

Const MyAgeMyAge = 49

Const CutoffDate = #6-1-97#

Page 33: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Option Explicit:

It is the statement used for finding the undeclared variables in our instructions. It will throw an error whenever it finds any variable is not declared.

To overcome the unexpected results with the misspelled variables ,we have to declare every variable along with option explicit statement.

NOTE: We should need to use Option Explicit as first statement in our script.

‘Ex: ‘Option explicitDim strname

Strname = “Venkata Krishna”

msgbox strnam

o/p: empty

Page 34: Automation testing material by Durgasoft,hyderabad

Operators:

1. Arithmetic:+, -, *, /, %

2. Assignment:=

3. Logical:And , Or and Not

4.Comparision:<,>,<=,>=,<>

5. Concatenation:&

Ex: strname1 = “venkat”strname2 = “krishna”strfullname = strname1 & “_” & strname2 msgbox strfullname

Output: venkat_krishna10/26/11 Durgasoft

Page 35: Automation testing material by Durgasoft,hyderabad

Conditional Statements:Conditionally executes a group of statements, depending on the value of an expression(Condition).These statements are used for verifying the application behaviour based on the actions done on our application.NOTE: If condition is True then only it is going to execute set of statements.

There are 2 types 1.If statement2.Select case statement

1. If Statement:This is classified into 3 types1.Simple If End If2.If else end if3.Nested if else End If

10/26/11 Durgasoft

Page 36: Automation testing material by Durgasoft,hyderabad

1) Simple IF -

Syntax:

1) If (condition) then……………..Set of stmts…………..End if

2) If Else End If

Syntax: If (condition) then………………. Set of stmts……………..Else………… Set of stmts………….End if

10/26/11 Durgasoft

Page 37: Automation testing material by Durgasoft,hyderabad

3) Nested If Else End IfSyntax:If (condition) then……….Else if (condition) then……………Else if (condition) then…………Else…………End ifEx: Simple Ifinti = 10If inti < 5 then msgbox “I value is less than 5”End IfEx: If Else End IfInti = 10If inti< 5 then msgbox “I value is less than 5” Else msgbox “I value is greater than 5”End If10/26/11 Durgasoft

Page 38: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

EX: Nested If ElseIntvalue = 5If intvalue < 5 then

msgbox “value is less than 5”Else if intvalue < 10 then

msgbox “value is less than 10”Else if intvalue < 15 then

msgbox “value is less than 15”Else

msgbox “value is more or equal to 15”End if

Ex:Systemutil.run “URL”If dialog (“login”). Exist then

Msgbox “dialog window opened successfully”)Else

Msgbox (“dialog window not opened”)End if

Page 39: Automation testing material by Durgasoft,hyderabad

2. Select CaseExecutes one of several groups of statements, depending on the value of an expression.

Select expressionCase 1:

………………

Case 2:Case 3: ………..Case N: ……….

Case Else:…………

End selectEx:I = 15Select case ICase 1: msgbox “value is 1”Case 2: msgbox “value is 2”Case 10: msgbox “value is 10”Case 15: msgbox “value is 15”End select

10/26/11 Durgasoft

Page 40: Automation testing material by Durgasoft,hyderabad

Looping Statements:These are used for executing the set of statements repeatedly based on requirement in our test case.If we know starting and ending points for executing set of statements like some fixed number of times then you can use for loop.

For Loop:Syntax:

For (Start) to (End)…………..………….Next

Ex: for i=10 to 30I = I + 1msgbox Inext

o/p: 11, 13, 15, 17,…………………….

10/26/11 Durgasoft

Page 41: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Ex:For i=1 to 100

i= i+4If i>50 Then

msgbox "He will satisfy with his 50 lacks money"Exit For

End IfNext

Page 42: Automation testing material by Durgasoft,hyderabad

While Loop

If we don’t know starting and ending points but we have to execute set of statements repeatedly based on the assignment/Condition, then have to use while loop.Note: Do Loop While and Do While Loop are going to execute set of statements repeatedly till the condition becomes false.

While loop is classified into 5 types1.Simple While Wend2.Do While Loop3.Do Loop While4.Do Loop Until5.Do Until Loop

Simple While Wend:It will execute the statements till the condition will become False.

While (condition)statements

Wend10/26/11 Durgasoft

Page 43: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Example:intCount = 0While(intCount<20)

intCount = intCount +1Msgbox intCount

Wend

Output: 1,2,3,4,……20

Do While Loop:

Syntax:do while ( condition )…………..………….stmtsloop

Page 44: Automation testing material by Durgasoft,hyderabad

Ex: i=30Do while (i>20)

i = i-1msgbox i

LoopOutPut: 29,28,27……..21,20.

Do Loop While:Syntax: do

…………….Stmtsloop while ( condition )

Ex: I = 30doI = I – 1msgbox Iloop while ( I > 20 )

o/p: 29, 28, 27, ………………….., 21

NOTE: Simple While and Do while loop are both are same. We can use any one based on our requirement.

10/26/11 Durgasoft

Page 45: Automation testing material by Durgasoft,hyderabad

Do Loop Until:

Note: Do Loop until and Do untilLoop are going to execute set of statements repeatedly till the condition becomes True.

Syntax:do ……………………………………stmtsloop until ( assignment )

Ex: I = 10doI = I + 1Msgbox ILoop until ( I = 20 )

O/P: 11,12, 13,……………………., 20

10/26/11 Durgasoft

Page 46: Automation testing material by Durgasoft,hyderabad

Do Until Loop:

Syntax:do until ( assignment )…………………………….stmtsloop

Ex:I = 10do until ( I = 20 )I = I + 1msgbox Iloop

o/p: 11, 12, 13,……………………, 20

10/26/11 Durgasoft

Page 47: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

FunctionsIt is containing collection of statements used for performing the particular task or operation.It can allow us to reuse by passing multiple arguments.Wherever we need to use same set of statements, we can make a call to function.

Types of Arguments:Parameters which we are passing to the function is called arguments.These are 2 types.

1.Input arguments2.Output arguments

Input arguments are passed to the function from calling environment and output arguments are returned from the called environment to the calling environment.

Syntax:Function ( function name ) { arguments }…………………………………………………………………….End Function

Page 48: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

CALCULATOR

I/P: 10,20Operator: +O/P: 30

I/P: 10,20Operator: -O/P: -10

I/P:30,3Operator: /O/P: 3

I/P: 10,5Operator: *O/P: 50

Function(Called Environment)

TC:Open,Login into ApplicationI/P: Username and Password

O/P: User Should logged in and it should display home page

I/P Arguments: Username and PasswordO/P Arguments: User Logged in(Calling Environment)

Page 49: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Note: Function is differentiating input and output arguments using byval and byref keywords.Byval is used for specifying it as a input arguments.Byref is used for specifying it as a output arguments.

Syntax:Function ( function name ) [ byval {argument name}, byval {argument name}, …, byref {argument name}, ……………. ]………………….……………………………………………End Function

Advantages of working with functions:1.Reusability2.Development time will be saved3.Easy maintenance4.Modularity Creating & Calling Functions:Identify input and output argumentsCreating function definition.Call to Function by passing arguments

Page 50: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Ex:Call login("suresh","mercury“, blnstatus)msgbox blnstatus

Function login( byval strname, byval strpwd, byref blnstatus) systemutil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe" If dialog("Login").Exist Then

dialog("Login").WinEdit("Agent Name:").Set strname dialog("Login").WinEdit("Password:").Set strpwd dialog("Login").WinButton("OK").Click

End If wait 5 If window("Flight Reservation").Exist (5) Then

blnstatus = trueelse

blnstatus = false End IfEnd Function

Page 51: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Ex:blnstatus = login ("suresh","mercury“,)msgbox blnstatus

Function login( byval strname, byval strpwd) systemutil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe" If dialog("Login").Exist Then

dialog("Login").WinEdit("Agent Name:").Set strname dialog("Login").WinEdit("Password:").Set strpwd dialog("Login").WinButton("OK").Click

End If wait 5 If window("Flight Reservation").Exist (5) Then

login = trueelse

login = false End IfEnd Function

Note: From where the function definition will be there, we are calling this as a calling environment and where which it is called by calling env is called Called Environment.

Page 52: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

How to make a call to function

Syntax:call functionname ( arguments )Variable = functionname ( arguments )

Ex: 1) Call login("suresh","mercury“, blnstatus)

2) blnstatus = login ("suresh","mercury“,) msgbox blnstatus

Creating Libraries:We have to copy or place all the functions into notepad file and save with .vbs extension then it will become a vbscript library.We can place ‘n’ number of functions into one library. ( there is no restrictions for placing the no. of functions )

NOTE: We can also save function library with extension .QFL(Quick Functionary Library) and it will works same as .VBS.

Page 53: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Associating library file to QTP tool:We have to map library file to the QTP tool so that we can reuse same function in multiple areas.We have to attach this library file to below path

File

Settings

Resources

Associate the file to library ( navigate to library path )

Sub Procedures:Sub Procedure is also a Function but it can not return value.

Syntax: Sub name(arguments) -------Stmts

End Sub

Call to Sub: Call name(arguments)

Sub addition(a,b)addition = a+bEnd sub

Page 54: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

In Built Functions:1. CDate2. Date3. DateAdd4. DateDiff5. Now6. Time7. WeekDay8. WeekDayName9. Month10. MonthName11. Year12. IsDate13. Left14. Right15. Replace16. strComp17. strReverse18. Lcase19. Ucase20. Trim

Page 55: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

21. LTRIM22. RTRIM23. Len24. Instr25. Cstr26. Cint27. Mid

'1. CDate --.: Converts text format into Date Formatmsgbox Cdate("2000 October 29 ")msgbox Cdate("October 2000 29")msgbox Cdate("29 October 2000")msgbox Cdate("29 2000 October")msgbox Cdate("2000 29 October")

'2.Date --: Returns the current system datemsgbox date

Page 56: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

3. DateAdd --: Returns a date to which a specified time interval has been addedmsgbox DateAdd("m", 1, date()) '----->Addition based on Monthsmsgbox Dateadd("YYYY",1,date()) '----->Addition based on Yearsmsgbox Dateadd("q",1,date()) '----->Addition based on Quartersmsgbox Dateadd("d",10,date()) '----->Addition based on Daysmsgbox Dateadd("ww",2,date()) '----->Addition based on Weeks

'4. DateDiff --: Returns the number of intervals between two datesmsgbox datediff("m",date,Cdate("19 December 2011")) 'Difference in monthsmsgbox datediff("YYYY",date,Cdate("19 December 2011")) 'Difference in Yearsmsgbox datediff("WW",date,Cdate("19 December 2011")) 'Difference in Weeksmsgbox datediff("h",date,Cdate("19 December 2011")) 'Difference in Hoursmsgbox datediff("d",date,Cdate("19 December 2011")) 'Difference in Days

'5. Now -----: Returns the current system date and timeMsgbox Now()

'6. Time --> Returns the current system timeMsgbox Time()

'7.Weekday --: Returns a number that represents the day of the week (between 1 and 7, inclusive)Msgbox Weekday(date())

Page 57: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

'8. WeekdayName --:Returns the weekday name of a specified day of the weekmsgbox weekdayname(weekday(date))

'9. Month --> Returns a number that represents the month of the year (between 1 and 12, inclusive)Msgbox Month(Date())

'10. MonthName --> Returns the name of a specified monthMsgbox MonthName(Month(Date()))

'11. Year --: Returns a number that represents the yearMsgbox year(Date())

'12. IsDate ---: Verifying date whether is date or notMsgbox IsDate("19 March 2012")Msgbox IsDate("25/10/2020")

'13. Left --: Returns a specified number of characters from the left side of a stringmsgbox Left("Venkata Krishna",7)

Page 58: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

14. Right --: Returns a specified number of characters from the right side of a stringMsgbox Right("Venkata krishna",7)

'15. Replace --: Replaces a specified part of a string with another string a specified number of timesmsgbox Replace(“Durga Software Solutions",“Solutions",“Pvt Ltd")

'16. StrComp --> Compares two strings and returns a value that represents the result of the comparisonMsgbox strComp("Venkata krishna","Venkata krishna",1) '--> O/P: Zero if both are same

'17:StrReverse --> Reverses a stringMsgbox strReverse("Venkata Krishna")

'18. Lcase:It will convert all the uppercase strings into lowercaseEx:

strname = “KRISHNA”msgbox lcase (strname)

Page 59: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

19. Ucase:It will convert all the lowercase strings into uppercaseEX:

strname = “krishna”msgbox ucase (strname)

20. Trim:It is used for removing the spaces at the begin and end of the given string.Ex:

strname = “ KRISHNA ”msgbox trim (strname)

21. Ltrim:It is used for removing the spaces only at the beginning of the string.Ex:

strname = “ KRISHNA”msgbox ltrim (strname)

22. Rtrim:It is used for removing the spaces at the end of the string only.Ex:

strname = “KRISHNA ”msgbox rtrim (strname)

Page 60: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

23. Len:It is used for finding the length of the given string.Ex:

strname = “ KRISHNA ”msgbox len (strname)

24. Instr:It is used for finding the one string exsistency in another string.Syntax:

instr ( starting char no, first string, search string )strfirst = “venkat krishna”strsecond = “krishna”msgbox instr ( 1, strfirst, strsecond )

25. Cstr:It is used for converting any integers or floats into string formatEx:

msgbox cstr (10)26. Cint:It is used for converting any string into integer format.Ex:

msgbox cint (“10”) + 10

Page 61: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

27. Mid:It is used for fetching the substring from another string by using the starting char and after that no. of charsEx:

strfirst = “venkat krishna”msgbox mid (strfirst, 4, 5)

Page 62: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

ACTIONSActions are used for reducing the complexity of test script.A script may have n no of actions.There are 2 types of actions1.Normal2.External (Reusable Action)

Note: Using reusable actions we can get the reusability and also maintenance will be easier.We can design tests that are more modular and efficient.

Creating Normal Actions:Insert

Call to new action

Normal reusable

Note: for converting reusable action into non-reusable action by unchecking reusable action option.

Page 63: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Right click on action

Action option

Click on action properties

In action properties uncheck reusable action

Inserting Reusable Action:

Insert

Call to new reusable action

Action will be added into script

Action Properties

Reusable Action

Page 64: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Creating the External Action:We can create external action only with reusable action.We can pass multiple input and output arguments. For fetching the parameter values into external action. We have to use “parameter” syntax.Procedure:1.Identify functionality 2.Develop script for reusable action along with specify arguments3.Save reusable action4.call reusable action from other location (external action).Called Environment or External Action Definition:Struname = parameter (“strusername”)Strpassword = parameter (“strpwd”)Strpath = parameter (“strpath”)

Systemutil.run strpath

If dialog(“login”).exist then dialog(“login”).winedit (“agentname”).set struname dialog(“login”).winedit (“password”).set strpwd dialog(“login”).winbutton (“ok”). ClickEnd if

Page 65: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

If window (“flight reservation”). Exist(10) then parameter (“blnstatus”) = trueelse parameter (“blnstatus”) = falseEnd if

Calling Environment or Reusable Action Call

Insert

Call to existing action

Strflightpath = “url”Runaction “login [login_ra]”, oneiteration, “suresh”, “mercury”, strflightpath, blnstatusMsgbox blnstatus

Ok

Browse to reusable action

Page 66: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Call to copy of action

Insert

Call to copy of action

Click on ok

Note: External actions are in read only mode in the calling environmentWe can edit or modify the external action only by opening the reusable action definition.When we want to edit some part in external action and use for your test case then we can use call to copy of action. It will allow us to edit or modify in the calling environment.

Runaction “copy of login”, oneiteration, “venkat”, “mercury”, blnstatusMsgbox blnstatus

Select of action

Ok

Browse

Page 67: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Split:Using this we can split one action into two actions based on the cursor positionWe can split one action into multiple actions by doing split operation.

Note: To reduce the complexity of test script we can split or maintain no of actions.

OBJECT REPOSITORY:OR is used for maintaining all the objects in central location which is used for identifying the controls on our application.

Repository is of 2 types1.Local object repository2.Shared object repository

Local object repositoryIt is local to the particular script. What are all the updates/changes done on object repository will be applicable to the same script.We cannot reuse local objects in other scripts.

Note: if at all the test cases are having different functionalities then we have to use local object repository and its file extension is mtr(mercury test repository).

Page 68: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Creating Shared Object Repository:

1. Create from local objects2. Directly from ORMNote: shared object repository is the place where it will allow add the objects into

repository and map the same to the ‘n’ number of scripts and it extension is tsr(test shared repository)

Advantages:ReusabilityOvercome the redundancy/duplicationMaintenance will be easierCreate from local objects:Open local OR

File

Export local objects

Browse

.tsr (test shared repository)Ok

Page 69: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Associate Reposirtories:Resources

Associate repositories

Open/update SOR:

Resources

Object repository manger (ORM)

File open browse to OR path

Open in read only mode

Click on enable editing for modify/update

Available AssociateAction1Action2

Browse

Ok

Page 70: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Directly from ORM

Resource

Object Repository Manager

Add objects

Save .tsr

Associate repositories

NOTE: SOR will be in read only mode in all scripts and we can not modify in scripts.If we want to modify/update then need to open it in ORM and edit the same.

Page 71: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Descriptive Programming:We are not going to use OR for developing the instructions.The properties required for identifying the objects we are going to keep directly in our instructions.

Application is not available and if at all we want to generate the instructions parallel to the development phase then by taking all the object properties from development team and we can able to develop the instructions.

Note: 1) Based on client request we can proceed with descriptive programming.2) Whenever any object properties are keep on changing based on the input data then also we can manage using descriptive programming.

Advantages:Execution will be faster compared to using OR.Managing the runtime objects which properties are frequently changing.

Page 72: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Descriptive Programming Instructions

If dialog(“text:=login”, “nativeclass:=#32770”). Exist then dialog(“text:=login”, “nativeclass:=#32770”). Winedit (“class:=edit”, “text:=agentname”). set “venkat” dialog(“text:=login”, “nativeclass:=#32770”). Winedit (“class:=edit”, “text:=password”). set “mercury” dialog(“text:=login”, “nativeclass:=#32770”). Winbutton (“class:=button”, “name:=ok”). Click

End if

2nd way of Description Programming:Set DC = Description.create()DC(“text”).value = “Login”DC(“nativeclass”).value = “#32770”

Dialog(DC). Exist

Runtime Object Handling:

Handling runtime object property values and make qtp to identify and perform action on it.

Page 73: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Regular Expressions:

It is used for regularize the property values of the objects. If at all object property value is getting changed frequently then using OR, It is not possible to identify the object.

If at all changing part is no need to consider for identification then we can ignore change part of property value by using Regular Expression.

For ignore any part of Property value, just we need to remove change part and replace it with “.*” then QTP will try to identify the object using non changed part and ignore the rest of property value.

There are two ways of using RE’s1.Directly in OR2.In Descriptive Programming

ok

Name

Login

Venkat

Venkat100 In OR make venkat 100 as .*

Page 74: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

1. Directly in OR:Navigation:

Resources

ORM

class

properties

Webedit

Click on Button

…………*

ok

Regular expression

Value configuration options

Page 75: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

2. In Descriptive Programming:

We can use regular expressions in DP for recognizing the object by making regularize.We have to enter .* for the changing part same like OR.

Window (“text:=“, “native class”)Dialog (“text:= faxorder.*”, “native classs:=#32770”). exist

Page 76: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Transactions:For finding the application performance using QTP, we have to use transactions. We have to insert transactions at some point or step in our script and we have to end at some step then it will provide script execution time or transaction time will be provided for the statements between start and end transactions.

Navigation:insert

start transaction / end transaction

Ex:Services.StartTransaction "trans1"

Wait 4

Services.EndTransaction "trans1"

Page 77: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Environment Variables:Based on the environment such as UAT, SIT ,preproduction, production, The environment data may be changed at any time and we have to change our test data accordingly for our script execution.

For managing test data effectively when ever Environment is change then we have to use EV;s.Test Data :1.Application URL2.Application Credentials3.DB Credentials…NOTE: For getting reusability and easy maintenance ,EV’s are required.

It is a global file, it means we can access the variable values from all over test pack(All Test Scripts).It is a XML file, we can generate XML file from user defined environment variables by exporting internal environment variables.

Environment variables are 2 types:1.In-built2.User-defined

Page 78: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

In-built: These are provided by QTP for retrieving the testing or working machine specifications.ex: Action name, OS, OS Version, temp directory, etc.,

User-defined: Based on our requirement if at all any data is changing based on the environment, we can define environment variables in environment tab under resources option.Once we exported all the internal EV’s will automatically become external, it means we can use these variables anywhere in our script.

Navigation:file

settings

environmentSyntax:

<Environment><variable>

<name>………….</name><value>…………. </value>

</variable></Environment>

Page 79: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Creating EV(XML) File:1.Directly using QTP

Add required EV’s into user defined EV’s and try to export all those variables into other location then automatically EV’s will become a Global and we can reuse this test data in n no of script

1.Create the EV’s file using above syntax with Variable names and Variable values.

NOTE: If at all we need to use this test data then we need to associate the EV’s file to QTP in Environment tab under test Settings window.

Page 80: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Associating Environment Variable File:file

settings

environment

variable type (user defined)

check the load variable checkbox

import the created XML file

click on apply

ok

Accessing the environment variable data:Environment.value (“variable name”)

Ex: Environment.value (“OS”) In-builtEnvironment.value (“strusername”) User-defined

Page 81: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Data Table:It is used for maintaining the test data in runtime(While running script),

By using this we can execute our script many no. of times as per records in Data table.It will maintain the data temporarily while executing, after execution this data will disappear. We can import and export data from external files(EXCEL).

NOTE: 1.We can maintain run time test data or export any data as output.2.It will allow us to Import and Export data from/To Data Table from other source XLS.3.Data table is having inbuilt feature to run same script no of times based on records in Data Table and that will depend on Run Settings.

It is used for retrieving from data tableSyntax:Datatable.value (“colname”, datatable type)

Ex:Datatable.value (“A”, Global)DataTable.value(“A”)

Page 82: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Methods of DataTable:

1.Import: It is used for importing the data from excel (.xls) sheet. It will import all the sheets data into available datatables in our script.Syntax: DataTable.import ( “ excel path” )Ex: DataTable.Import ("C:\flights.xls")

2.Import Sheet: It is used to import specific sheet data into data table.Syntax: datatable.importsheet (“filepath”, “sheet id/name”, “destination id/name”)Ex: DataTable.ImportSheet "C:\Flights.xls" ,1 ,“Global"

3.Add Sheet: It will add the new sheet into data tableSyntax: datatable.addsheet (“name of the sheet”)Ex: Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")

4.Delete Sheet: It will delete the existing sheet from the data tableSyntax: datatable.deletesheet (“sheet id/name”)Ex: DataTable.DeleteSheet "MySheet"

5.Export: It is used for exporting the data from our script from all the data tables into specified location.Syntax: datatable.export(“path of file destination”)Ex: DataTable.Export ("C:\flights.xls")

Page 83: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

6.Export Sheet: It is used for exporting the specific datatable data in our scriptSyntax: datatable.exportsheet (“destination path”, “global/action”)Ex: DataTable.ExportSheet "C:\name.xls" ,1

7.Get Current row: It is used for getting the active row from the Global data table.Syntax: Datatable.getsheet(“sheet name”).getccurrentrow.Ex: row = DataTable.GetCurrentRow

8.Get Row Count: It will give the rows count of data tableEx: datatable.getrowcount Global Data Table

datatable.getsheet(name of sheet).getrowcount Local Data Table

9.Get Sheet count: It will give all the sheets count in data table in our script.Ex: datatable.getsheetcount

10.Set Current Row: It will make the specific row as active rowEx: datatable.setcurrentrow (“row number”)

11.Set Next Row: It will set the immediate next row as active rowEx: datatable.setnextrow

12.Set Prev Row: It will set the previous row as active rowex: datatable.setprevrow

Page 84: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

13.Value: It is used for retrieving and updating the value into the datatable.Ex: datatable.value

14.Raw Value: It is used for fetching the formulae of specific field or cell in our data table.Ex: datatable.rawvalue

Page 85: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Debug Viewer Pane:Debugging: It is the process of executing instructions with the intention of finding script errors/issues.This pane is used for doing the debugging process effectively for correcting errors.

Breakpoint:This point is used for stopping the script execution temporarily in runtime.Place the cursor where need to insert break point.

Debug

Insert / remove breakpoint option

Note: By using the mouse left button, click on left side to our script statement will insert the break point.

Debug Viewer Pane option:Watch: This is used to watch required variable along with their values.

Variables: It will contain all the variables and their data will be displayed, it will allow us to modify the data as well.The changed data will get reflected in all the places in our script.

Page 86: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Command: It will allow us to execute the instructions and we can observe the results.

Debugging Keywords:Step into: It will take control to the inside of the function/Action and will allow us to execute all the statements line by line.

Step over: It will skip line by line execution for functions and reusable actions and It will execute all the instructions and control will stop at immediate next line after Function/Action call.

Step out: It is used to move control out of function or reusable action.After step out control will move to the immediate next statement after function call or reusable action call.

Debug from step: It will perform script execution in debugging mode.

Page 87: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Object Identification:Objects will be identified by using QTP based on properties stored in OR.

Object identification is the place where we can manage our properties of all the controls which are need to add into the object repository for identication.

Here it will display all the controls of all the supported environments.

If at all any control type is not getting recognized using default properties then we can edit below properties and try to make QTP to recognize the object type.

1.Mandatory2.Assistive3.Ordinal Identifier

a. Location b. Index

4.Base Filter5.Optional Filter

Navigation: Tools Object Identification

Page 88: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Smart Identification:If at all object is not recognized using default properties such as mandatory and assistive then based on the selection of smart identification it will use the base filter and optional filter properties.

Ordinal Identifier:It is used for uniquely recognize the object using index and location.1) Index: Whenever few objects are having same properties then QTP will recognize based on unique no as it is Index.

2) Location: It will use the default coordinates of particular object for reorganization.

Note: 1) Based on the selection of either index or location of specific control, it will use for recognizing the object.2) In real time mostly we use to work with index whenever any object is not recognized.

Page 89: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Automation Object Model:It is used for automating the manual operations(open QTP,Open Script,Run Script…) on QTP tool.By using this we can perform batch executions by creating QTP application reference

Syntax:'Create an instance of QTP application Set qtpapp = CreateObject("Quicktest.Application")

qtpapp.Launch 'Launch QTPqtpapp.Visible = True 'Make qtp visibleqtpapp.Open "E:\QTP Func\QTP Script” 'Open a testqtpapp.Test.Run 'Run the testqtpapp.Quit 'Close the QTP and terminate Set qtpapp = Nothing ‘Clear the object reference

Page 90: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

File System Object:It is used to work on file system(Machine) such as creating files, folders and delete files, folders, updating data into file....

It will allow us to perform all the manual operations on file system through script.All these operations performing with predefined methods provided by file system object hence we have to create reference for the same.

Set FSO = createobject (“scripting.filesystemobject”)

Methods:1.Create folder2.Folder Exists3.Create Text File4.File Exists5.Update data into file6.Delete File7.Delete Folder

Page 91: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

File System Object Methods:

1. Create folder:FSO.CreateFolder("C:\venkat")

2. Folder Exists:FSO.FolderExists("C:\venkat")

3. Create Text File: FSO.CreateTextFile("C:\venkat\siri.txt") CREATE FILEset FSO1 = FSO.CreateTextFile("C:\venkat\siri.txt") PERFORM ACTIONS ON FILE

4. File Exists: FSO.FileExists("C:\venkat\siri.txt")

5. Update data into file:set FSO1 = FSO.CreateTextFile("C:\venkat\siri.txt")FSO1.WriteLine("QTP tool is very good automation tool")FSO1.Close

6. Delete File:FSO.DeleteFile("C:\venkat\siri.txt")

7. Delete Folder:FSO.DeleteFolder("C:\venkat“)

Page 92: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Script:

Set FSO = CreateObject("scripting.filesystemobject")FSO.CreateFolder("C:\venkat")

'Folder existsIf FSO.FolderExists("C:\venkat") then

set FSO1 = FSO.CreateTextFile("C:\venkat\siri.txt")FSO1.WriteLine("QTP tool is very good automation tool")FSO1.Close

End If

If FSO.FileExists("C:\venkat\siri.txt") ThenFSO.DeleteFile("C:\venkat\siri.txt")

End If

If FSO.FolderExists("C:\venkat") ThenFSO.DeleteFolder("C:\venkat")

End If

Page 93: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Child Objects Method:

It is used for fetch objects count/Objects properties of specified object type.

Set odesk = Description.Create()odesk("micclass").value = "WinEdit"

set obj = Dialog("Login").ChildObjects(odesk)msgbox obj.countmsgbox obj(0).getroproperty("attached text")msgbox obj(1).getroproperty("attached text")

Page 94: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Send Keys Object:

It sends keyboard strokes to the active window (as if typed on the keyboard).

systemutil.Run "IEXplore.exe","www.google.co.in"Browser("Google").Sync

Browser("Google").Page("Google").WebEdit("q").Set "venkat"Set obj = CreateObject("WScript.Shell")obj.SendKeys "{BACKSPACE}"wait 4For i=0 to 5

obj.SendKeys "{DOWN}"Nextobj.SendKeys "{ENTER}"

'Systemutil.CloseProcessByName("iexplore.exe")

Page 95: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Data Base Connections:

When ever we need to check DB data as per our requirement then we can connect to DB from QTP Tool.

In real time, Usually we can connect to DB for verifying the DB data to UI data and check whether both are same or not.

We can connect to all data bases by providing specific Driver Name for each DB along with User name and Password.

Page 96: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Connect to Access Data Base:

Dim strConnection, conn, rs, strSQL

strConnection = "Driver={Microsoft Access Driver (*.mdb)};" & _ "Dbq=" ....\db\db.mdb";Uid=admin;Pwd=password;"

Set conn = CreateObject("ADODB.Connection")conn.Open strConnection

Set rs = CreateObject("ADODB.recordset")strSQL = "SELECT * FROM myTable"rs.open strSQL, conn

rs.MoveFirstWHILE NOT rs.EOF msgbox rs("myField").value ‘myfield is column namers.MoveNextWEND

rs.CloseSet rs = Nothing

conn.CloseSet conn = Nothing

Page 97: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Connect to Oracel Data Base:

Dim strConnection, conn, rs, strSQL

strConnection = "Driver={Microsoft ODBC for Oracle};" & _"Server=OracleServerName;uid=username;pwd=password;"

Set conn = CreateObject("ADODB.Connection")conn.Open strConnection

Set rs = CreateObject("ADODB.recordset")strSQL = "SELECT * FROM myTable"rs.open strSQL, conn

rs.MoveFirstWHILE NOT rs.EOF msgbox rs("myField").valuers.MoveNextWEND

rs.CloseSet rs = Nothing

conn.CloseSet conn = Nothing

Page 98: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Connect to SQL Server Data Base:

Dim strConnection, conn, rs, strSQL

strConnection = "Driver={sqloledb};Server=SQLServerName;" & _"Database=DBaseName;Uid=sa;Pwd=password;",'"Authenticationtype=windows"

Set conn = CreateObject("ADODB.Connection")conn.Open strConnection

Set rs = CreateObject("ADODB.recordset")strSQL = "SELECT * FROM myTable"rs.open strSQL, conn

rs.MoveFirstWHILE NOT rs.EOF msgbox rs("myField").valuers.MoveNextWEND

rs.CloseSet rs = Nothing

conn.CloseSet conn = Nothing

Page 99: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Virtual Objects:Your application may contain objects that behave like standard objects but are not recognized by QuickTest then you can define these objects as virtual objects and map them to standard classes such as a button or a check box.

When ever any object is not recognized by the QTP then Virtual Objects is one option for us. It will map your un identified object to standard object and it will recognize based on co-ordinates of the object.

Navigation:Tools Virtual Objects New virtual objectIt is used for creating new virtual object.

Tools Virtual Objects Virtual Object ManagerIt is used for managing created virtual objects and operations like delete and creating new one…

Steps to create virtual object:1.Click on New virtual object2.Click Next button on welcome to the virtual object page3.Select standard class(Button,table,list…..) and click next4.Mark virtual object (Select un identified object)5.Check Object Configuration6.Specify Virtual Object Name7.Click on Finish button

Page 100: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Inserting Virtual Object:1.Keep QTP Tool in recording mode.2.Click/Perform action on created virtual object3.Verify recorded script and check in OR for virtual object.4.Execute the script and verify operation is performing successfully or not.

Page 101: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

BATCH RUNS:In real time we are performing all the scripts execution unattendly, it means executing the script without any user interaction.

We are running the scripts from QC and we can store all the scripts,FL,OR,EV….and it will provide execution results.

We should not use message box in real time scripting, we can use for output verification while developing the instructions but we should ensure no message boxes at the time of storing into QC.

We should use reporter statements for storing the test case pass/fail results into QC, Based on this Automation Engineer can able to find what are all test cases are passed and what are all test cases are failed.

Page 102: Automation testing material by Durgasoft,hyderabad

Synchronization:

This is mechanism used for Wait/Control our script execution based on application behaviour to over come run time errors in our script execution.

1. We can work with sync method with the web applications.2. In Windows applications, we have to use wait and exist methods.

Note: 1. Exist method will be works for all the controls.2. Wait Property method will also work like Exist method.

Msgbox dialog(“cannot find server”). Exist (10)Browser (“cannot find server”). Sync Wait 100Dialog(“Login”).WaitProperty “visible”,”True”,100000[Time in Milli Seconds]

Exist method will verify for every second till it reach the specified time,when condition satisfies in middle then control will go to next statement.(It will not wait whole given time)And same process will be there with Wait Property as well.

In wait, It will constantly waits for specified number of seconds with irrespective of application existence/status.

10/26/11 Durgasoft

Page 103: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Reporter Event:

It used for reporting test case step result description to the Results report.

NOTE: We will not use MSGBOX stmts in realtime because manual intervention is required for every MSGBOX statement and also we should not move ahead until we click on OK button on it.

Syntax:

Reporter.ReportEvent Status,what we are verifying, result description

Example:

Reporter.reportevent micPass,”Verify Flight Login Window”,”Flight Login window is opened successfully”

Reporter.reportevent micFail,”Verify Flight Login Window”,”Flight Login window is NOT opened”

Reporter.reportevent micDone,”Verify Flight Login Window”,”Flight Login window is opened clearly…..”

Page 104: Automation testing material by Durgasoft,hyderabad

Recording Modes:There are 3 types of recording modes which will allow us to perform actions on our application and parallely QTP will generate instructions or script for the automation engineers.

1.Normal Recording Mode:It will record the script based on the actions on our application by adding worked objectsinto object repository. It is the default recording mode it will recognize the objects basedon properties stored in object repository.

automation

record

2. Analog Recording Mode:This is used for recording the script for the actions on our application, it will providesecurity to the instructions. It will not show recorded script to the automation engineer,but it will perform all the recorded operations.There are 2 types of analog recording levela.Record relative to the screenb.Record relative to the windowNOTE: Recording the operations based on mouse movement or keyboard input .

10/26/11 Durgasoft

Page 105: Automation testing material by Durgasoft,hyderabad

a) Record relative to the screen:In record relative to the screen will record the instructions based on the screen

coordinates.If at all window place is changing on our screen, then it will not perform action recorded.This will records on multiple windows on our screen

When you record in Analog Recording mode relative to the screen, the script will fail if your screen resolution or the screen location on which you recorded your analog steps has changed from the time you recorded.

The analog recording continues to record the movement of the mouse until the mouse reaches the Quick Test screen to turn off Analog Recording or to stop recording.

b) Record relative to the window:It will record the instructions or script based on the window coordinates. If at all windowlocation is changed on our screen, it will not perform all the recorded actions.This will records on only one window on our screen

Note: If you have selected to record in Analog Recording mode relative to a window, any operation performed outside the specified window is not recorded while in Analog Recording mode.

10/26/11 Durgasoft

Page 106: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

3. Low Level Recording:It is used for recording the script based on the actions performing on our application, but

it will recognize the control using their coordinates.If at all object coordinates or object location is changing then it is not going to perform

the recorded action due to the change in object location.

NOTE: QTP should be in normal recording mode for switch to Analog or Low-level Recording modes

Page 107: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Check Point:It is used for verifying the existency of all the controls.

We can insert check points only in recording mode.

Though object properties available in object repository.Check point will store required properties into object repository.Due to this OR size is getting increased it leads to performance issue.

Insert

Checkpoint

(standard, text, bitmap, text area, database,………..)

Output Values:It is used for exporting the object properties and their values into data table.We can use these properties for our future references.

insert

output valuesNote: we can insert o/p values only in recording mode.

Page 108: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Check point:

Properties OR AUT

Output value:

AUT

Datatable

Page 109: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Recovery Scenarios:It is used for handling exceptions or unexpected pop ups given by QTP or Machine.

We need to overcome all exceptions for making batch execution successful with out having any disturbances in the middle of execution.

There are 3 types of issues we may get in real time environment.1. QTP script issues (Object may not recognized or syntax errors)2. Machine dependent pop-ups3. Application issues

QTP script issues:If we want to continue our batch execution by over coming all the QTP script issues then we have to insert statement “on error resume next”

Note: When ever script will be giving any script issues, by using above stmt it will not show those error pop ups while execution but maintain error descriptions in our results in QC.

Recovery Scenario:If we want to manage or recover from remaining issues like machine dependent pop-ups, application unexpected pop-ups then we have to use recovery scenarios by providing recovery information for making batch execution successfull.

Page 110: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Below 4 types of issues/errors can be managed by Recovery Scenarios.1. Pop-up window2. Object state3. Test run error4. Application crashNavigation:Resources Recovery scenario managerFor create above any recovery scenario we have to update below 3 sections1. Trigger event It contains type of exception to manage2. Recovery It contains type of solution to overcome the exception3. Post recovery It contains after recovering from exception, what need to do by QTP

Creating Recovery Scenario:1.Open recovery scenario manager window2.Click on New Scenario3.After check the information, Click next4.Select recovery scenario based on type of exception/error (From above 4)5.Specify error information6.Provide Recovery Information7.Provide post recovery information8.Click on finish9.Save Recovery Scenario

Page 111: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Associate Recovery Scenario:File Settings Recovery Browse the RS PathClick on Add Scenario ButtonClick on Apply Button

2. Creating RS using Function Call:

1.Create empty function library2.In Recovery Operations Browse to created above FL 3.Define new Function Name4.Click Next5.Provide post recovery information6.Click Next7.Provide Name for RS and Click Next8.Click Finish

Updating Recovery Script in our Function in FL and associate:

1.Open above associated FL2.Enter recovery script in above created function and save.3. Associate RS to Script.

Page 112: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

QTP PANESQTP is having total 11 panes which we use for developing the effective and enhanced level of instructions.

1.Test Pane:It is used for writing the instructions or script by the automation engineer. This pane is classified into 2 types:

a) Expert View: This is the place where we can enter our instructions in QTP tool and it will allow us to perform the execution as well.b) Keyword View: It will display all the expert view statements in the keyword form. It is used for non-technical persons for maintaining the instructions.It will show instructions in 4 sections, those are item, operation, value and documentation.

2. Data Table:It is used for maintaining the test data. It will allow us to import and export data from othersources (Excel) based on test data requirements.

3. Active Screen:It is used for display the images of application by placing the cursor in recorded script. It will show only for recorded script.

Page 113: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

4. Debug Viewer:Debugging: It is process of resolving the script issues or errors raised while executing the script. This pane is used for doing the debugging process.5. Missing Resources:The Missing Resources pane provides a list of the resources that are specified in your test but cannot be found. Missing resources can include missing function libraries…….6. Information Pane:The Information pane provides a list of syntax errors in your test or function library scripts7. Available Keywords:It will display all the associated files to the automation engineer.Ex: files are libraries, shared object repository, etc.,8. Process Guidance Pane:It is used for display QTP help on Process like keyword driven framework…..9. Resources Pane:QuickTest displays all the resources associated with a component in the Resources pane. 10.Test Flow:It will display execution heirarchy in left side pane along with actions list.11. To Do Pane:Here we can add/store pending tasks of automation in script.By seeing this comments, anybody can able to understand what is pending in that script.

Page 114: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

QTP Life Cycle:

1) Develop the basic script2) Enhance script

recovery scenarioregular expressionDescriptive programmingenvironment variablefunction librariesreusable actionsshared ORTransaction, FSO….

3) Debugging Script4) Perform Batch Run5) Deliver to Client

Page 115: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Automation Life Cycle:Manula TC’s

Dry Run is process used for understanding applicationfunctionality and identify reusable components like functions and reusable actions for repeated functionalities…

Automation PlanStart End Hours

Phase 1 Functions Resuable actionsEnvironments

80

Phase 2 Intermediate

Phase 3 High

Phase 4 Meduim

Phase 5 Low

Page 116: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Automation Plan Preparation:Before automation plan development is start, we have to gather all the manual application flow, test scenarios and test cases from the manual testing team for that particular application. On the basis of the collected test cases we carry out a dry run(executing the test cases without intension of finding errors and only for understanding functionality) in QTP to identify the complexity of the test cases. And also we identify the re-usability, Modularity and repeatability in test cases. We categorize the complexity of the test cases as:

•Complex•High•Medium•Low

During the Dry run we update the complexity of the test cases in “Text case Complexity” sheet. For each complexity category we allocate certain man hours to complete test scripts. After the Dry run is done, we calculate the overall man hours for each sprint and update the same in “Duration” sheet.

Page 117: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Once we are done with updating the duration for each sprint, we move to the Automation Test scheduling.....In this we allocate the no of days for different phases which for below:

1.Designing phase2.Development Execution phase3.Deployment phase

In designing phase we design the automation framework for the application, In Development Execution phase we automate the reusable actions and start preparing and executing the each sprint test scripts. After all the sprints are covered, we deploy the automation test suite in the client site and will give KT to the client team which will be useful for their maintenance purpose.

Page 118: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

QTP FrameworkThe process and Folder structure what we are following for automating the manual test cases is called framework.Based on the application functionality, we have to choose corresponding process for automation.

Framework Types:LinearModularData DrivenKeyword DrivenHybrid Framework

Linear Framework:If at all application functionality is entirely different and there is no scope to reuse and modularize your functionalities then we have to follow linear framework.We cannot maintain reusability and modularity. We can use the features:Recovery scenarioRegular expressionFSOData tableEnvironment variables, etc.,

Page 119: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Ex: linear 100 TC’s…………. Sequential………….. Stmts Different …………………….…………………….. No modularity, reusability

Modular Framework:If at all application functionality is having common functionalities which are required in all the test cases then we have to follow modular framework.We will get advantages reusability and modularity because here we are having chance to reuse, some part of navigations, it means we are able to modularize our script.

RA’s 100 TC’sfunctionsshared OR 20 – 30 functionsEV’s 10 RA’s

Page 120: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Data Driven:If at all application is having functionalities depend on the test data and data need to drive our script execution then we have to use data driven framework.Along with this process we can use components functions, reusable actions, shared OR.

functions 100 TC’sRA’s 80 TC’s commonEV’s data tableshared OR

Keyword Framework:If at all application is having functionality mostly common and we need to check application functionality by doing small actions in our application, then we have to use keyword driven framework.For all the common functionalities we are maintaining keywords in our library and update keywords and their required objects details in data table.By using above keyword and data table, we are fetching each record and performing the keyword call by using datatable arguments.From where we are calling keywords and fetching keywords, we can say it as a driver script.

Page 121: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Function Library

Function login----------------End function

Function ………….Select case“winedit”……………..…………..“winbutton”------------------------“windropdown”--------------End function

Driver Script

Select case keywordCase 1CALL FUNCTION….Case 2CALL FUNCTION….Case 3CASE FUNCTION……

Keyword Micpass Object Value

Login

Click

Set

Data table(Test Data)

Page 122: Automation testing material by Durgasoft,hyderabad

10/26/11 Durgasoft

Hybrid Framework:Combination of any of 2 frameworks is called hybrid framework.In real time we used to work with at least 2 frameworks such as modular and data driven or Data Driven and keyword driven.