60761011.

doc

QTP Frame Work

QTP
Frame Work

Confidential

Page 1 of 100

60761011.doc

QTP Frame Work

Table of Contents
1. Automation Architecture.......................................................3 1.1 Design........................................................................................................................3 1.2 Approach for Test Automation..................................................................................4 2. Introduction to QTP........................................................11 2.1 QTP Environment Compatibility.............................................................................12 2.2 Versions of QTP......................................................................................................13 3. Add-Ins...............................................................................21 3.1 Types of Add-Ins.....................................................................................................21 3.2 Conditions for Add-ins............................................................................................22 4. Conventions.........................................................................23 4.1 Test Case Naming Conventions:..............................................................................23 4.2 Script and Action Naming Conventions:................................................................23 4.3 Variables and Constants:..........................................................................................25 4.4 DataSheet Naming and Parameter Naming Conventions:.......................................26 4.5 Function Naming Conventions................................................................................27 5. Settings...............................................................................28 5.1 QTP Test Settings....................................................................................................28 5.2 Record and Run Settings..........................................................................................29 5.3 Active Screen Capture Level...................................................................................29 5.4 Object Repository....................................................................................................30 5.5 Expert View.............................................................................................................32 5.6 Setting related to the Application Used:..................................................................35 6. Objects...............................................................................38 6.1 Objects....................................................................................................................38 7. Data Table..........................................................................40 7.1 Datatable Object and related Functions:.................................................................40 7.2 Organizing Data Sheets for Global & Local variables............................................41 7.3 Parameterizing using Data driven Wizard.............................................................42 7.4 Importing and Exporting Datasheets:...................................................................46 8. Actions................................................................................49 8.1 Actions Settings.......................................................................................................49 8.2 Iterations using rows................................................................................................50 8.3 Action Template.......................................................................................................51 8.4 Script Startup...........................................................................................................51 8.5 Splitting Actions, Re-usable Actions, Internal/External Actions............................52 9. Object Repository................................................................53 9.1 Per Action/Shared Object Repository:.....................................................................53 9.2 Merging of two object repositories:.........................................................................55 9.3 Limitations:..............................................................................................................57 10. Variables...........................................................................58 10.1 Action Parameters................................................................................................59
Confidential

Page 2 of 100

60761011.doc

QTP Frame Work

10.2 Test Parameters......................................................................................................61 10.3 Environment Variables..........................................................................................63 10.4 Variable passing from one Action to another.......................................................64 10.5 Scope of Variables.................................................................................................66 11. Check Points......................................................................68 11.1 Types of Checkpoints............................................................................................68 11.2 Output Values for Verification..............................................................................70 12. Reusable Library................................................................72 12.1 Introduction...........................................................................................................73 12.2 How to establish a Reusable Library.....................................................................73 12.3 How to use this Reusable Library.........................................................................75 13. Regular Expressions..........................................................75 13.1 Description.............................................................................................................75 14. Recovery Scenario............................................................80 14.1 Exceptional Handling using Recovery Scenarios..................................................81 14.2 Sample for Recovery Scenario:...........................................................................87 15. Optional Steps...................................................................93 15.1 Description:........................................................................................................93 16. Reporting...........................................................................95 16.1 Different Options for Reporting.............................................................................96 16.2 Functions used for Reporting..............................................................................97 16.3 Reporting Formats.................................................................................................99

1. Automation Architecture
1.1 Design

Confidential

Page 3 of 100

60761011.doc QTP Frame Work 1.2 Approach for Test Automation Description Confidential Page 4 of 100 .

important things that should be followed are: • Following common coding structure for all the scripts Page 5 of 100 Confidential . where all the transactions.doc QTP Frame Work Approach for Test Automation is used for building a strategy for automation starting from the Requirement phase till the deployment phase. Under standing of requirements was done at the client side. All the Identified Scenarios which consists of different transactions where explained to Testing Team. Installation of QTP and SAP. which are common in the scenarios. Testing Team. While SAP Consultants where onsite for gathering Requirements. Automation Framework: For Quality deliverables. all the transactions where grouped together as different scenarios. Work done at the offshore was to analyze on the appropriate version of the QTP Tool to be used and to get licenses for QTP. SAP Consultants.60761011. Requirement gathering from the client included knowledge transfer at onsite. and grouped together as different Test cases. Approach for automation begins with finding out the conditions and business rules given by the client and grouping similar conditions. Steps involved in Approach for Test Automation are as follows: • • • • • • • Requirement gathering from the client Understanding and Analyzing the Requirement Grouping the requirement into Test cases Preparing the Design for Automation Building Scripts depending on the Design Review of Scripts at Offshore Delivery to the Client For example in the Unilever project: Since it is Project for Automation of SAP. Depending on the flow of transactions. business rules together as Test cases or Test Scenarios. After defining different Test cases. Then common functionalities where identified. design for automation of scripts was done. are identified as Reusable transactions. user accounts for SAP access. Team was divided into two. where Reusability was one of the main aspects. where all the transactions including the customized transactions where explained to the SAP Consultants of satyam.

Importing of sheets is done at the beginning before calling other actions and exporting of sheets is done at the last. Importing and Exporting of sheets is also done in this main action. This Action intern will call all the other actions (Each Transaction used in the script would be an action) in the script. so that the data in the fields of the Imported sheets are used as input data to the script. Major types of Recovery used in this project where Popup Window. Error handling in the unilever automation is done by using Recovery Scenario where each Recovery scenario calls a function which handles the recovery by exiting all the other transactions (actions) when recovery fires. which minimized the number of Recovery scenarios and Functions used. There are many transactions which are reused in the scripts.doc • • • • • QTP Frame Work Consistent coding conventions Use of Reusability for making code efficient and minimal Efficient use of Object Repository Use of Error and Exception handling Functions Use of Data table object. Environment variables for using data For example in the Unilever project: Coding Structure used is that there will a main Action for all the scripts which is named as corresponding Test case name. all the common types of exceptions or errors are given common Recovery scenarios using regular expressions. Sheets corresponding to all the actions in the scripts are imported. In Error handling using Recovery. similar transactions (Actions) are made as reusable so that its not required to record those transactions again and again. which calls all the other Called Actions Confidential Page 6 of 100 . Design for Structure of Scripts used in Unilever Project: Main Action.60761011. Object state and on Error Recoveries. which ever transaction was common among scripts. were recorded in one script and is reused in all the scripts where the transaction is required. output data from the script is also collected and exported to the corresponding sheet.

doc Actions (transactions) in the script QTP Frame Work <Action Name> Main Action in the Script Calls <Action Name> Ex: S014_001 (Action Name) Ex: ME21N (Action Name Which is same as the Transaction name in SAP) Confidential Page 7 of 100 .60761011.

File Handling. Common Functionality Related code etc Tool & Application Settings.60761011.doc QTP Frame Work Design of the Approach for Test Automation is given below Identification of Test Cases for Automation Identification of Common Functionality Coding Standards. Logout. Object Repository. Log Reporting. Date handling. Recovery. Data Table handling Error handling. messaging etc Script Development using Record & Play back Deliver the script after Verification & Validation Confidential Page 8 of 100 . Naming Conventions & Templates Building the Re-Usable Library Application Login. Restoring. House Keeping etc General library containing String handling.

Common Functions are LT12. Creating a Transfer Requirement and a Transfer Order. LT012 and Logoff. MM03. Reporting like reporter. Logout and common functions like LT12. Actions for the Transactions Login. ‘The Action named as per transaction ID’ Building the Re-Usable Library like ‘The common functionality being reused’ Application Login. QTP Framework in SAP Automation Confidential Page 9 of 100 .qrs S014_164_Materia l_Not_Maintained.doc Design for Automation of Test cases for Unilever Foods: QTP Frame Work It’s a description of Automating a test case belongs to SAP by explaining a scenario S014-081 Scenario Objective: Moving a Material from Raw Material Storage Location to a Production Storage Location. LB01. MM03 Coding Standards & Naming Conventions like ‘The file name as per convention . LT04.60761011. qrs Error handling like On Error Resume Next.ReportEvent etc Business Transactions Scripts are LB01 and LT04 Note: The phase in blue color indicates where more efforts are required in analyzing and recording to generate a script. MM03 Recoveries are gAlready_exist.Scenario name’.

doc QTP Frame Work Test Data Handling and Data Sheet Importing SAP Application Session Login Script for Business Transaction/ Test Case Test Results Reporting and Application Closing. Re-Usable Library: Generic Library calls for handling data. creating customer records. • • Mission critical processes like core activities like sales order processing are prime candidates for automated testing and have been considered for automation. • Repetitive Testing Confidential Page 10 of 100 .60761011. Invoicing and other high volume activities where software failure would occur frequently have been considered. string etc Error handling Library Recovery Scenario Actions Guidelines followed for identification of Test Cases for Automation • Tests that need to run once and those that need frequent human intervention are usually not worth the investment to automate and have not been considered for automation. date.g. As Automated testing can be used to verify the performance of application paths that are used with a high degree of frequency when the software is running in full production e.

Confidential Introduction to QTP Page 11 of 100 . it is better to prove the business scenario wherein tables with row selections figure by identifying a fixed row number. Though possible to automate this increases the complexity of the script. Hence. Avoiding screens where objects are created dynamically Avoiding business scenarios where complex hardware is involved Selecting a row in a table results in an additional challenge from.doc • • • • • QTP Frame Work Applications with Long Life span – Longer the application in production greater the benefits from automation. If the numbers of rows were very high the execution time of the script would be high. • 2. This leads to performance issues of the recorded script. Avoiding dynamic screens. This scenario is faced very frequently in enterprise applications as in pricing tables and leads to the complexity of the script and subsequently the effort. Some automation tools provide the facility to read each row in a table and for focusing on a specific row.60761011. Avoiding scenarios that require high degree of coding while automating so that script’s complexity is reduced and high maintainability of the script is ensured.

60761011.doc

QTP Frame Work

2.1 QTP Environment Compatibility
QTP (version) supports a wide range of working environments and thereby can be used for practically any application. Core Environments Supported by QTP: - Windows applications (MFC) - Visual Basic - Java - ActiveX Enterprise Applications: - SAP - Siebel - PeopleSoft - Oracle Web Technologies: - HTML - DHTML - JavaScript Browsers: - Internet Explorer - Netscape - AOL Emerging Technologies: - .NET winforms, webforms, web services - J2EE Web services - XML, WSDL, UDDI Terminal Emulators: - 3270 - 5250 - VT100 Server Technologies:

Confidential

Page 12 of 100

60761011.doc - Oracle - Microsoft - IBM - BEA - ODBC - COM / COM+ Multimedia: - Flash - RealAudio / RealVideo - Windows Media Player Operating Environment Operating Systems Supported: Databases Supported: Networks Supported: Programming Languages Supported: Windows XP/2000/NT Windows 95/98/ME

QTP Frame Work

(Not Applicable) TCP/IP JavaScript Java HTML Visual Basic (VB) XML Middleware Supported: Microsoft .NET

2.2 Versions of QTP
QTP 6.5: To successfully install and run QTP6.5, following minimum system requirements are required : Computer/Processor: IBM-PC or compatible with a Pentium® II 266 MHz microprocessor (366 MHz recommended). Windows® 98 Second Edition, Windows® 2000— Service Pack 3, Windows NT® 4.0—Service Pack 6a, Windows® Me, or Windows® XP—Service Pack 1.

Operating System:

Confidential

Page 13 of 100

60761011.doc Memory: Free Hard Disk Space: Browser:

QTP Frame Work
128 MB of RAM (256 MB recommended) 150 MB of free disk space for a compact installation or 200 MB for a typical or complete installation Microsoft Internet Explorer 5.0–6.0.

Supported Environments QuickTest Professional supports creating, recording, and running tests in the environments described below. Standard Windows Applications Win32 API MFC Visual Basic Applications Visual Basic 6.0 Browsers
• • • •

Microsoft Internet Explorer 5.01–6.0 (required) Netscape Navigator 4.06–4.7x (optional) Netscape 6.1, Netscape 6.22, and Netscape 6.23 (optional) AOL 5.0 and 6.0 (optional)

ActiveX Grid Controls In addition to basic support of ActiveX properties and methods, QuickTest Professional supports context-sensitive recording and verification on the following ActiveX Grid controls:

Confidential

Page 14 of 100

MSFlexGrid.0 (OLEDB) FPSpreadADO.0 Sheridan Data Grid 2.fpSpread.MonthView.Grid MSDBGrid.3 FarPoint Spreadsheet 6 (OLEDB) Microsoft Grid 1.SSDBGridCtrlApt.doc Name FarPoint Spreadsheet 2.TDBGrid TrueOleDBGrid60.5 FarPoint Spreadsheet 6.60761011.4 FarPoint Spreadsheet 3.fpSpread.2 Confidential Page 15 of 100 .0 Apex True OLE DB Grid 6.1 SSDataWidgets.0 Sheridan Data Grid 3.4 MSGrid.1 Apex True DataBound Grid 5.fpSpread.1 SSDataWidgets.0 (SP4) MSComCtl2.2 Microsoft MonthView Control 6. QuickTest Professional supports context-sensitive recording and verification on the following ActiveX Calendar controls: Name ProgId Microsoft Date and Time Picker Control 6.Spread.2 FPSpread.0 Apex True DataBound Grid 6.0 FarPoint Spreadsheet 3.Spread.3 FPSpread.DTPicker.1 FPSpread.0 ProgId QTP Frame Work FPSpread.TDBGrid TrueDBGrid60.0 (SP4) MSComCtl2.0 FPSpreadADO.0 Microsoft Flex Grid 6.TDBGrid ActiveX Calendar Controls In addition to basic support of ActiveX properties and methods.DBGrid MSFlexGridLib.3 TrueDBGrid50.Spread.5 FarPoint Spreadsheet 3.5 (OLEDB) FPSpreadADO.0 Microsoft DataBound Grid 5.SSDBGridCtrlApt.2 FarPoint Spreadsheet 3.Spread.

PeopleSoft. QTP 8.0: Confidential Page 16 of 100 .doc Multimedia Applications QTP Frame Work QTP6. Note for QuickTest Professional 6. and terminal emulator applications.5 supports testing on the following multimedia applications: • • Microsoft Windows MediaPlayer controls. Oracle. . For more information about QuickTest Professional add-ins. SAP solutions. • Additional Environments QuickTest Professional add-ins support other environments such as Java. You can also test Macromedia Flash 6 clips containing only Flash 4 or 5 commands. Siebel.5 and are no longer part of the core product.NET Windows and Web Forms. version 6. contact your sales representative or Mercury Interactive Customer Support. Web Services.0 and earlier: Java support and Oracle support are now available as separate add-ins to QuickTest Professional 6.60761011.0 and higher RealPlayer controls supported for Internet Explorer browsers (the controls within applications containing browser controls are not supported) Macromedia Flash 4 or 5 objects that are ActiveX controls in Internet Explorer.

250 MB of free disk space for application files and folders.1 Confidential Page 17 of 100 . it is recommended to have at least 150 MB free disk space on the system disk for the operating system and Quick Test Professional to run correctly.5 Service Pack 2-6.0.1 SAP solutions Add-in 6.5 PeopleSoft Add-in 6.0.60761011.x add-ins are supported for use with QuickTest Professional 8.5 .0: • • • • • • Java Add-in 6.5. Free Hard Disk Space: Browser: Supported Add-ins The following external QuickTest 6.5 Oracle Add-in 6. and an additional 120 MB of free disk space on the system disk (the disk on which the operating system is installed). After Quick Test Professional is installed.5. 128 MB of RAM (256 MB recommended).5. or Windows 2003 Server. Windows 2000-Service Pack 3 or Service Pack 4.5 Terminal Emulator Add-in 6.doc QTP Frame Work System Requirements To successfully install and run QTP8. Microsoft Internet Explorer 5.NET Add-in 6. you need the following minimum system requirements: Computer/Processor: Operating System: Memory: IBM-PC or compatible with a Pentium II 266 MHz microprocessor (366 MHz recommended). Windows XP-Service Pack 1.

Standard Windows Applications 1. Netscape 7.1 (optional) • AOL 8. and running tests or components using the environments and programs described below.0 (optional) • ActiveX Grid Controls In addition to basic support of ActiveX properties and methods.5. and Netscape 7. the . QuickTest Professional supports context-sensitive recording and verification on the following ActiveX Grid controls: Confidential Page 18 of 100 .MFC Visual Basic Applications Visual Basic 6. Netscape 6.NET applications are supported by the QuickTest Professional .0 Note: Visual Basic .22.5 Service Pack 2-6.0 add-ins. the Add-in for SAP solutions 6.60761011.23.0 (required) Netscape 6.1 Supported Environments and Programs QuickTest Professional 8.doc QTP Frame Work Note: Siebel Add-in 6.cannot be used with QuickTest Professional 8.NET Add-in. or any 6. Browsers • Microsoft Internet Explorer 5. Netscape 6.5.0 supports creating.0 and 9.Win32 API 2.02.0. recording.5.NET Add-in 6.1.

4 MSGrid.1 SSDataWidgets.0 (SP4) MSComCtl2.3 FarPoint Spreadsheet 6 (OLEDB) Microsoft Grid 1.0 (SP4) MSComCtl2.Spread.1 Apex True DataBound Grid 5.doc Name FarPoint Spreadsheet 2.5 (OLEDB) FPSpreadADO.0 Apex True DataBound Grid 6.Spread.0 Sheridan Data Grid 2.0 (OLEDB) FPSpreadADO.5 FarPoint Spreadsheet 3.4 FarPoint Spreadsheet 3.MSFlexGrid.0 Microsoft DataBound Grid 5.Grid MSDBGrid.1 FPSpread.2 Microsoft MonthView Control 6.SSDBGridCtrlApt.5 FarPoint Spreadsheet 6.0 Sheridan Data Grid 3.fpSpread.TDBGrid ActiveX Calendar Controls In addition to built-in support for ActiveX properties and methods.fpSpread.2 FarPoint Spreadsheet 3.DTPicker.fpSpread.1 SSDataWidgets.SSDBGridCtrlApt.3 TrueDBGrid50.0 Microsoft Flex Grid 6.2 FPSpread.0 Apex True OLE DB Grid 6.TDBGrid TrueDBGrid60.60761011.3 FPSpread. QuickTest Professional supports context-sensitive recording and verification on the following ActiveX Calendar controls: Name ProgId Microsoft Date and Time Picker Control 6.0 ProgId QTP Frame Work FPSpread.2 Confidential Page 19 of 100 .0 FarPoint Spreadsheet 3.DBGrid MSFlexGridLib.Spread.TDBGrid TrueOleDBGrid60.0 FPSpreadADO.Spread.MonthView.

60761011. Additional Environments QuickTest Professional add-ins support other environments such as Java. and XP.NET Windows and Web Forms. you can work with Microsoft Query 2000. and XP. Siebel.0 (for example. Microsoft Query When using Microsoft Query with QuickTest Professional 8. 2002. Web Services. for Database checkpoints). Confidential Page 20 of 100 .doc QTP Frame Work Microsoft Excel When using Microsoft Excel files with QuickTest Professional 8. you can work with Microsoft Excel 2000. For more information on QuickTest Professional add-ins. contact your sales representative or Mercury Interactive Customer Support. to import or export data to or from the Data Table).0(for example. Oracle. and terminal emulator applications. . 2002. 2003. PeopleSoft. 2003. SAP Solutions.

Web &Visual Basic 8.1 Types of Add-Ins QTP version 8. Confidential Page 21 of 100 .5 Oracle add-in 6. Net Web Java XML Default Add-Ins: Active X controls.5.5 and Web services add-in 6. Web &Visual Basic .0 cannot be used with Quick Test Professional 6.2 Java add-in 6.5 . Multimedia.0 .5 Add-ins Siebel add-in 8. • The add-ins for Quick Test Professional 6.5 Terminal Emulator add-in 6.5. Web Note: Quick Test Professional Siebel add-in 6.5.0. If you are using Quick Test Professional 6.doc QTP Frame Work 3. Visual Basic. Add-Ins 3.0 6.5 Oracle add-in 6.2 Default Add-Ins: Active X Controls.1 Sap add-in 6.5 version of your add-in.5. you will need to get the 6.60761011.0 Terminal Emulator add-in 8.5 PeopleSoft add-in 6.5 Default Add-Ins: Active X Controls.1 Java add-in 6.0 cannot be used with Quick Test 8. Net add-in 6. Net add-in 8.

parameterize a step.2.2. 3.2 Conditions for Add-ins 3. To test Java applets or applications running on Netscape 4. it is required to use the . However. buttons etc. you must load the Web add-in as well as the Java Add-in.Net .To create a checkpoint.2 .In some cases. In SAP application Grid Tables.x browser is already installed before installing the Quick Test Professional Java Add-in. if a Web application contains complex controls like ActiveX or other controls developed in .Net like ASP. the Java Add-in must be loaded. Status Bar messages. 3. even though the application has been developed using .2.Net add-in is required to support objects developed in . when the page is sent to the browser.1 Java Add-In When testing Java applets in a Web browser.3 Sap Add-In The Sap add-in is required for all SAP applications.Net.Net add-in to achieve object recognition. confirm that the Netscape 4. without the .doc QTP Frame Work 3.Net Add-In The . When testing Java applets in a Web browser web Add-in as well as java add-in must be loaded .x’s built-in JVM (not Java Plug-ins). Labels can be identified only if SAP Add-in is installed. Confidential Page 22 of 100 . it is a plain HTML page. and use the Web tab of the Record and Run Settings Dialog box to specify your record and run preferences.60761011.Net server controls. Quick Test Professional can recognize HTML controls like edit fields. or to add a method from individual java applets.Net add-in.

Confidential Page 23 of 100 . so name of the test case for the S014_01 scenario was given as IMWM_S014_01. Example 2: In the Unilever Automation Project.2 Script and Action Naming Conventions: Similar to the Test case naming. Use Case Or Scenario For example: Example 1: Considering that Each Use case is associated with one Test case. if S014_01 is the scenario name. If the name of the Use Case were UC_001 then the Test case name would be TC_001. The Onlooker should be able to trace the test case back to the use cane name or Scenario name by the name of the Test Case. Test Case 4. Typically each Test Script is prepared corresponding to each Test Case. Scripts and Actions vary from Project to Project depending upon the Client.1 Test Case Naming Conventions: Test cases should be named in a manner that enables easy identification of the corresponding Use case (or the Scenario) for which the Test Case is written. so for writing the test case for a particular scenario naming convention used is module name followed by scenario name. Consistency should be maintained in following the hierarchy of naming.60761011.doc QTP Frame Work 4. Conventions The Conventions for Naming for test cases. For Module IMWM. in those modules different transactions are grouped together as a scenario. SAP transactions are divided into different modules. 4. Each Condition can be represented by an action in the script. Script naming should be done consistently with clarity and traceability. Every Test Case contains one or more Conditions.

Therefore it would be easier to understand the Action if the name of the action represents the Functionality.The hierarchy should be maintained in case the use cases or test cases are nested. Actions can be named in 2 ways: 1. Functionality of the Action 2. This also adds a huge advantage when the Actions are made reusable.g.: An Action written or recorded for logging the user should be named as Login or Authentication for easy understandability. Action Naming: Each Test Script can contain one or more Actions.doc QTP Frame Work Use Case Test Case Condition1 Condition2 Condition3 ……… Test Case Condition 1 Condition2 Test script Action1 Action2 Therefore for a Test Script corresponding to a Test Case named TC_001 would be QTS_001. Example: REUSE_Login.g. Functionality of the Action: Typically Actions are segregated by their functionality in the Test Script. Hierarchy of the Action in the Test Script. with one or more actions representing a test Condition. E.: TC_01_014 would have a QTP Test Script as QTS_01_014. For E.60761011. When an Action is to be made reusable the action should be named as REUSE_(Action name). 1. Reusable Actions can be used between various scripts. Confidential Page 24 of 100 . An Action for booking tickets should be named as Book_Tickets An Action for exiting the application named as Exit.

General Conventions followed in VBScript are: Data Type Prefixes: By using data type prefixes. for purpose of Clarity and tracking.doc QTP Frame Work 2. your variables always indicate what they are designed for. Double) Objects Set oFile = Nothing Strings sTitle = "Welcome!" User interface elements uPara. Hierarchy of the Action in the Script: Since Actions are a part of the Test Script.076 (Byte.title = cTitle Confidential Page 25 of 100 . e.g.style.60761011. Const cTitle = "Welcome!" UDocument. For e.: Test Case Name  TC_01 QTP Test Script Name  QTS_01 Name of 1st action in the Script  QTS_01_01 Similarly Name of 9th Action in the ScriptQTS_01_09 4. Indicating the data type therefore is less important for constants. Actions can be named as per Hierarchy. Currency. Integer. Long. I'm using just six prefixes: Prefix b d i o s u Data Types Boolean (true or false) Example bChecked = True Date/time dStartTime = Now All numeric data types iTax = iPrice * 0. the naming conventions for variables can be followed alike VB Script Naming Conventions.3 Variables and Constants: QTP Scripts are in VB Script. Therefore.g. Single. Prefix letter c for all constants can be used.display = "block" Constants Prefix: Usually there are only a handful of constants in any scripts.

Example: OUT_sStatus. This can be renamed as Global for all the Scripts for consistency. which when named following its naming conventions. Global data sheet 2.60761011. ‘In’ denoting that it’s an input parameter for the Test in whole.. can be used efficiently for the data sheet too. The name following IN should be a relevant name for the variable. these should be named as OUT_(relevant variable name). which is a common sheet for all the actions of the script. Example: ACTIN_iResult b) Action Output Parameters: These could be named as ACTOUT_(var name). Local data sheets The Global data sheet. IN_iIncrement etc. which is local to the Action. Typically. This is by default. Each Action in the Script contains one data sheet. denoting the purpose of its use.4 DataSheet Naming and Parameter Naming Conventions: Every QTP Test Script contains 2 types of sheets.doc QTP Frame Work 4. Parameter Naming: Various Types of Parameters used in QTP are: 1) Test Parameters a) Test Input Parameters: These should be named as IN_(relevant variable name). is named by default as dt_globalsheet. named after the Action to which it belongs. Therefore the name of the datasheet follows directly the name of the Action. This should also comply with the standard variable naming conventions. ACTIN denoting that it’s an Action Input Parameter. OUT representing that it’s an output parameter. 2) Action Parameters a) Action Input Parameters: These are local to Action of a Test. These can be named as ACTIN_(variable name). Confidential Page 26 of 100 . b) Test Output Parameters: On the similar lines of Input Parameters. Example: IN_bFlag. 1.

so their naming convention is not discussed.5 Function Naming Conventions Functions should be named as Func_(name).60761011. Internal Variables: ENV_INT_(variable name) External Variables: ENV_EXT_(Variable name) 4. Func_Add Confidential Page 27 of 100 . Built-in variables cannot be declared named by the user. This can provide clarity and difference between a Reusable Action and a Function that can be used within Actions. Example: Func_Save . User Defined Environment Variables are either Internal or External.doc Example: ACTOUT_bFlag QTP Frame Work 3) Environment Variables: Environment variables are either built-in or User defined.

60761011.doc

QTP Frame Work

5. Settings
5.1 QTP Test Settings
Before Running or Recording any test on QTP, the QTP Test settings need to be set as per the requirements of the Test. Setting these Test Settings before starting a Test plays a crucial part in the behavior of the test. These can be found at the path Test>Settings. A dialog box pops up, in which various tabs are present which allow one to set • Properties of the test like Add-Ins used • Run time Preferences • Resources like files, data tables, and repository to be used. • Parameters required in the Test. • Environment variables used • Web navigation • Recovery Scenarios

Note: For further details about the use of each tab, refer to QTP Test Settings

Confidential

Page 28 of 100

60761011.doc

QTP Frame Work

5.2 Record and Run Settings
After Setting the Test Settings at Test>Settings, the next important settings for actually recording the application and running it for Testing are to be set at the Test>Record and Run Settings. This dialog box opens automatically, when recording a test for the first time. The details of which application to record are set in this dialog box.

For further details about these settings refer to Record and Run Settings.

5.3 Active Screen Capture Level
One of the most useful fetaures of QTP is the various views it provides, out of which Active view is the most unique.The selection of the appropriate Active Screen Capture level influences the storage space, properties stored and the view of the Active screen. The selection can be made by going to Tools>Options>Active Screen. The Active screen settings can also set at the Test>Record and Run Settings. The active screen capture level can be set to any of the 4 levels i.e. Complete, Partial, Minimum and None.

Confidential

Page 29 of 100

60761011.doc

QTP Frame Work

For details about each capture level, refer to ActiveScreen Capture Level.

5.4 Object Repository
When a test is recorded, QTP adds each object on which an operation is performed, to the Tools>object repository. Objects can be added to the repository while editing the tests too.While recording, Objects are added to the repository in either of the two ways: a. Object Repository per Action b. Shared Object Repository.

Confidential

Page 30 of 100

the user may choose a location to save the shared object repository files for all the tests.and their properties can be seen and manipulated in the Tools>Object Repository.60761011. find and replace property values etc.spy objects. objects are identified and separated on the basis of each action and the corresponding object repository for the test is created in the test folder. Confidential Page 31 of 100 .doc QTP Frame Work The settings can be changed by going to Test>Settings>Resources>Object Repository Type In the Per-Action mode.There are provisions in this Object Repository Dialog box to add new objects. All the Objects recorded during a test.In the Shared mode.

there are 3 important views that enable us to understand clearly. b. 5. d. They are a. Keyword View: Hierarchical Representation of Actions c. Export: To Export any objects to an outside location. Object Spy: To Spy any Object. c.5 Expert View While recording Tests in QTP. Active Screen View: Pictorial view of the currently active Screen. Add Objects : A Button to add new objects to the repository. Expert View b. Add. to see its Properties. Highlight: To highlight the object selected in the repository. when the application is open. The second section of the dialog box contains provision to Find. Replace.60761011. Confidential Page 32 of 100 . and Remove the properties of an object in the Repository also set any default values for the properties.doc QTP Frame Work The First Section of Object Repository Dialog Box contains provisions to a. the various representations of the Script.

60761011.doc QTP Frame Work In the Expert View. QTP displays each operation performed on the application in the form of a script. For each object and method in an Expert View statement. The script is comprised of VBScript statements and the view is a script editor with many script editing capabilities. Fig: Active Screen Component corresponding to Expert View Statement Confidential Page 33 of 100 . which enables easy traceability. a corresponding row exists in the Keyword View and a corresponding Active Screen in the Active Screen view.

1 Step Generator: If the user is familiar with VBScript. After the test or an Action is recorded. then any Syntax errors of the step can be Identified in its Keyword view.These additional steps can be added either manually or using Insert>Step >Step Generator . the user can add and update statements and enhance the tests and components with programming.doc QTP Frame Work Fig: Keyword view and Active Screen view corresponding to one expert view statement 5.5.60761011.whenever a step is added to a script. Confidential Page 34 of 100 .Datatables etc. its power and flexibility can be increased by adding recordable and non-recordable VBScript statements as required for tasks like Check Points...

rest all applications require a special Add-in to be purchased to do the testing.The generated step gets added at the position of cursor in the expert view.SAP. VBScript functions. In the Step Generator dialog box you can define steps that use: • test object methods and properties • utility object methods and properties • calls to library functions.6 Setting related to the Application Used: The different kind of Applications that can be tested using QTP are windows applications.web based(java and . The Step Generator enables you to add steps quickly and easily. by selecting from a range of context-sensitive options and entering the required values.60761011. and internal script functions 5.Each Confidential Page 35 of 100 .doc QTP Frame Work The Step Generator enables you to add steps quickly and easily.Net).Apart from the windows applications using MFC and simple web applications(which can be run with default addins). by selecting from a range of context-sensitive options and entering the required values.Oracle etc.

how to choose a particular setting option. results in a new tab in all the setting dialog boxes .60761011.It purely depends on the type of application . using which various setting options can be chosen.doc QTP Frame Work Add-in which is bought and installed. Example of a SAP Add-in : Fig: The Add-in manager dialog with SAP add-in Confidential Page 36 of 100 .

For detailed information of the settings of the tabs other than the special tabs refer Record and run settings.60761011.doc QTP Frame Work Fig: Record and Run Settings with a SAP Add-in. Confidential Page 37 of 100 .

GetROProperty and methods such as ChildObjects. minimize etc. which differentiates the given object with other objects. Activate. Property: Property describes about the object defined. Objects 6. maximize. For Example: Window is said to be an object which consists of properties such as Exist.60761011. each object has different properties.1 Objects Objects are the things which contains different properties and methods. For example: If we take a window object. which are used for changing the properties of the object that is in order to manipulate with the object properties we use.doc QTP Frame Work 6. Activate is a method used to activate the window object. Methods: Methods are functions. Exist is a property which is common to many objects which returns true if that object exists. Confidential Page 38 of 100 . it belongs to a window class. thus by using Activate method Activate property of the present window object is set to true. For example: If we take a window object. which is necessary to describe the object. we first have to define to which class it belongs to which is one of the property. thus the window object will be activated if not in activated mode.

there are two main Objects. Dialog Parent Object named as “Login” Child Object named as “Agent WinEdit Name:” “Set” is the method associated with “WinEdit” object Confidential Page 39 of 100 . This objects contain child objects.doc QTP Frame Work Sample for Object hierarchy: Method for “WinEdit” Object “Dialog” Object Child Object for “Dialog” Object In the above sample of code. For Dialog object which is named as “Login” has WinEdit object with name as “Agent Name:” as childobject. one is Dialog and the other is Window object.60761011. here Set is the method used to set a text into the WinEdit object.

doc QTP Frame Work 7. Syntax: Datatable. “Nameofthesheet”) • • Addsheet : Used for adding a sheet into the script file. all the data including output values are stored in the default sheet for the action.AddSheet(“Sheetname”).1 Datatable Object and related Functions: Description Basic use of Datatable object is to create an object for adding. this sheet is exported and stored in a specified location using this function. Main functions of the datatable object: • Importsheet : This function is used to Import sheet into the script. Data Table In QTP scripting there are many objects that are used.GetRowCount Confidential Page 40 of 100 .Importsheet(“nameofExcelfilewithpath”.Exportsheet(“nameofExcelfilewithpath”. updating data of an excel sheet used. “nameofthesourcesheet”. Syntax: Datatable. “nameofthedestinationsheet”) • Exportsheet : This function is used to Export sheet from the script. GetRowCount: This function is used to get the no of rows in a particular sheet. so that all the data in the imported sheet can be used in the script.60761011. deleting. Syntax: Datatable. 7. One of the Objects used in QTP scripting is DataTable Object.

Value(“Fieldname”.Value(“Fieldname”. When an action is run by using run setting as “run on all rows”.2 Organizing Data Sheets for Global & Local variables Description There are two types of sheets in any QTP Script. in order to find the row for which action is running currently we use GetCurrentRow function.GetSheet(“Sheetname”).”Global”) = Value For using the values from the global sheet we use the following function: Value = Datatable.dtlocalsheet) Or Datatable. Syntax: Datatable.Value(“Fieldname”. Globalsheet is used in order to store values in the sheet and the values stored in Globalsheet can be used in all the actions.60761011.”Sheetname”) Confidential Page 41 of 100 . For storing a value in the global sheet we use the following function: Datatable.GetCurrentRow 7. they are Globalsheet Localsheet Globalsheet: Globalsheet in any script is unique.Value(“Fieldname”. name of the Localsheet of a particular action is same as the action name. that action will run as many times as the number of rows in the excel sheet of the action. For using the data from the Local sheet we use following function: Datatable.doc QTP Frame Work • GetCurrentRow: This function is used to get the current row of a particular sheet.”Global”) Localsheet: Each and every action in the script will have its own Localsheet.

and/or method arguments containing the same constant value within a given action. in the same way that you can use a Find and Replace All operation instead of a step-by-step Find and Replace process. that property can be parameterized using Data driven Wizard.doc QTP Frame Work Organization of Global and Local sheets with the actions used in the script are shown below: Action name: “Login” Local Sheet for “Login” Action Global Sheet 7. If any property of an object is taken.60761011. Confidential Page 42 of 100 .3 Parameterizing using Data driven Wizard Description The Data Driver enables you to quickly parameterize several (or all) property values for test objects. You can choose to replace all occurrences of a selected constant value with a parameter. checkpoints. QuickTest can also show you each occurrence of the constant so that you can decide whether or not to parameterize the value.

60761011. There will be two options to be selected as given below: Confidential Page 43 of 100 .e.WinEdit("Agent Name:").doc QTP Frame Work Different steps for parameterization using Data driven Wizard is as follows: • • Go to tool bar option Tools and select Data Driver option We will get a list of all the properties of all the objects which can be parameterized (i. which is as given below: • • Select a value which should be parameterized and click on “Parameterize” button. for all the objects where a value for a property is given in the script) For example consider script for entering Login name which is as follows Dialog("Login").Set "name" The Set property of WinEdit Object appears in the list of Datadriver with “name” as Value representing the Set property of “Agent Name” Editbox.

and if so. this will enable us to select an other instance of the constant selected and parameterize that instant. Confidential Page 44 of 100 . it will continue the same process till all the instances of the given value are done. For each step. the Next button is enabled when you select this option.doc QTP Frame Work Step-by-step Parameterization: Enables you to view the current values of each step containing the selected value.60761011. you can choose whether or not to parameterize the value. which parameterization options you want to use.

60761011.doc QTP Frame Work Parameterize all: Enables you to parameterize all occurrences of the selected value throughout the action. The Finish button is enabled when you select this option. Confidential Page 45 of 100 . When you select this option the Parameter details area is enabled.

The data in the imported sheet replaces the data in the destination sheet (see SheetDest argument). writing and manipulating the data in an excel sheet.60761011.4 Importing and Exporting Datasheets: Description Importing and Exporting of Datasheets are used for reading. and in the next screen select the datatable Field from where the property for which the value belongs is parametererized. 7. click on “Finish” button thus all the instances of the value selected for parameterization will be parameterized.doc QTP Frame Work Here Parameter tab can be selected using the button given at the “Parameter” radio button. Importing Datasheet: Description Imports a sheet of a specified file to a specified sheet in the run-time Data Table. Confidential Page 46 of 100 .

Exporting the whole excel file and Exporting the sheets in the file. the sheet is inserted as the last sheet of the file. but the file does not contain a sheet with the specified sheet name. a new file is created and the specified sheet is saved. Confidential Page 47 of 100 . There are two functions for Importing. since action name and corresponding sheet name should be same. Same as Importing.60761011. Syntax: Import “filenamewithpath” Function for Importing the sheets from the excel file: Imports the specified sheet into the script. Syntax: Importsheet “filenamewithpath”. If the current file exists and the file contains the specified sheet.doc QTP Frame Work Note: All the fields in the imported sheets should match with the data used in the script.”sourcesheetname”. the exported sheet overwrites the existing sheet. If the current file exists. Function for Exporting the whole Excel file: Exports the file into the script with all the sheets which are there in the excel file. • • • If the specified file does not exist. ”destinationsheetname” Exporting Datasheet: Description Exports a specified sheet of the run-time Data Table to the specified file. Note: Sheets in the excel file should match with the Actions in the script to use the data efficiently. There are two functions for Exporting. Function for Importing the whole Excel file: Imports the file into the script with all the sheets which are there in the excel file. Importing the whole excel file and Importing the sheets in the file.

Syntax: Exportsheet “filenamewithpath”. ”destinationsheetname” QTP Frame Work Confidential Page 48 of 100 .doc Syntax: Export “filenamewithpath” Function for Exporting the sheets from the excel file: Exports the specified sheet into the script.60761011.”sourcesheetname”.

doc QTP Frame Work 8. or to run iterations only for certain rows in the Data Table. Actions 8.1 Actions Settings You can use the Run tab of the Action Call Properties dialog box to instruct QuickTest to run only one iteration on the called action.60761011. to run iterations on all rows in the Data Table. Confidential Page 49 of 100 .

this action will run only one iteration.doc QTP Frame Work 8. In the second iteration of the test.2 Iterations using rows The Run tab includes the following options: Option Description Runs the called action only once. the last row of the action's data sheet. For example. suppose an action's data sheet has two rows and the global sheet has four rows.60761011. Confidential Page 50 of 100 . During the first iteration of the test. If you choose to run one iteration only for the action and you choose to run iterations on all rows of the global data sheet. then during each iteration of the test. Runs the called action with the number of iterations according to the specified row range. the Data Table parameters in the action continue to take data from the second i. Runs the called action with the number of iterations according to the number of rows in the action's Data Table. In the third and subsequent iterations of the test. the last row of the action's data sheet is used for each subsequent test iteration. If the action's data sheet contains fewer rows than the global sheet.e. Data Table parameters in the action take data from the second row of the action's data sheet. using the row in the action's data sheet that corresponds to the current global iteration number. Run one iteration only Run on all rows Run from row __ to row __ The Run tab of the Action Call Properties dialog box applies to individual action calls and refers to the rows in the action's data sheet. Data Table parameters in the action take data from the first row of the action's data sheet. The data that the action parameters use during each repetition of the test are based on the iteration number for the test.

Action Description. An action template applies only to actions created on your computer. you can add this comment line to your action template.60761011.mst 8. such as Data Table files. The text file must be in the structure and format used in the Expert View. Confidential Page 51 of 100 . The Data Table can be any Microsoft Excel (. For example. you can create an action template.3 Action Template Creating an Action Template If you want to include one or more statements in every new action in your test. Recovery scenario used etc. Action name. All new actions you create contain the script lines from the action template.mst in your <QuickTest Installation Folder>\dat folder. Include action template for every test containing script id. Check for mandatory input fields for all iterations in the datasheets that are being imported. Only the file name ActionTemplate. Save the text file as ActionTemplate. Create a text file containing the comments.doc QTP Frame Work 8. function calls. Every action.xls) file. 2.4 Script Startup • • • • Check for the required add-ins for an application. To view the Action template refer to ActionTemplate. if you always enter your name as the author of an action. The option area Other location instructs Quick Test to use data stored in the specified Data Table location. scenario must be specified with an appropriate name. and other statements that you want to include in your action template. Example: The Resources tab of the Test Settings dialog box can be used to associate specific files with the test. To create an action template: 1.mst is recognized as an action template.

5 Splitting Actions. to make the design more modular and efficient tests.doc QTP Frame Work For a sample external file refer to Sample External File • Check for the “Data table iterations” under the test settings for which the test has to be run. When you create a new test. Re-usable Actions. Internal/External Actions Actions help divide your test into logical units.60761011. it contains a call to a single action or create tests that call multiple actions by inserting calls to them. A test is made up of calls to actions. For further details refer to QTP test settings doc. 8. Confidential Page 52 of 100 . specific activities that you perform in your application.

• For further details on creation & splitting of actions refer to Actions. • Non-resuable-actions —an action that can be called only in the test with which it is stored. External actions are read-only in the calling test. and can be called only once. They can be modified only in the test with which they are stored.1 Per Action/Shared Object Repository: Confidential Page 53 of 100 . • external action—a reusable action stored with another test. 9. Object Repository 9.doc There are three kinds of actions: QTP Frame Work reusable action—an action that can be called multiple times by the test with which is stored in the local test as well as by other tests.60761011.

Select the Resources tab. 4.60761011.doc Setting the Shared /per action Object Repository option QTP Frame Work To set only one test to use the Shared Object Repository option: 1. 3. select one of the options: • Select "Per-action" to set the Object Repository mode for your test to the Object Repository per action mode. Below are some of the factors based on which Per Action option is selected Confidential Page 54 of 100 . 2. In the Object repository type box. Go to Test -> Settings. Click the "New" button or go to File -> New to open a new test.

To set all new scripts to use a Shared Object Repository: For Quick Test Professional 6. To specify a file. To create a new Shared Object Repository file. Select the Resources tab. Note: These steps need to be done in a new script.2 Merging of two object repositories: General: Confidential Page 55 of 100 . Go to Test -> Settings. Once you have modified the script. specify the Shared Object Repository file you want to use as the test's Object Repository file. 9. 4. 7. enter the Object Repository file name or click the ellipse button <. 6.5 and above 1. you will not be able to change the option..tsr) from the Open dialog box. Specify the Shared Object Repository file you want to use as the test's Object Repository file. To specify a file. Click the New button or go to File -> New to open a new test. 2. If you selected Shared in step 4. enter a new file name in the Shared box. Click <Apply> and <OK>.60761011. enter the Object Repository file name or click the "Browse" button and select a resource file (*. Loading of per Action object repository takes less time as the size is less Select "Shared" to set the Object Repository mode for your test to the Shared Object Repository mode. Below are some of the factors based on which Shared Action option is selected • • • Whenever there are common objects across transactions Maintenance of object repository is very easy Whenever size of object repository is 1MB 5. Click the "Set as Default" button.> and select a resource file (*.tsr) from the Open dialog box. 5. To create a new Shared Object Repository file. 3. Select the Shared option for the "Object-repository type". enter a new file name and path in the Shared box..doc • • • • QTP Frame Work Whenever there are no common objects across transactions Ease of building object repository.

between which some test objects properties have changed (e. It can also be that the user has decided to modify the automatically assigned logical name of an object (for example. but different descriptive properties. whether a button is enabled) then the same object exists in the two repositories with different properties. in order to create a shorter name) in one repository but not in the other. Conflicts: The implementation of the merge algorithm is quite simple when the object repository files have different objects in them.g. Note: The Merge Utility works only on machines where QTP8. The Merge Utility allows you to merge the content of one Object Repository to another one thus giving you the flexibility and the power in controlling the content of the Object Repository and the ability to dynamically change this content. or decide to keep two objects that for the inexperienced eye would seem identical. For example.doc QTP Frame Work The Object Repository File Merge Utility allows users to merge object repository files into a single file. or to ignore one of the conflicting object. For example. but with the same descriptive properties. This utility is intended for an advanced user that builds powerful tests. Merge Object Repositories Utility Main Window: This utility is designed to supply simple access to the functionality implemented by the Confidential Page 56 of 100 . even though the object behavior has not changed. or if all objects had only exact replicas in other files. The user might want to merge two objects that were not initially the same.60761011. Resolving Conflicts: It is not trivial to identify and handle conflicting objects. to assume that the two objects are actually the same object. Due to the nature of the operation it is often not the case. It is therefore possible to either keep the two objects (and their subtrees) separated. new tests would record a new logical name for it. We call this a name conflict. if we try to merge two object repositories from tests that were recorded at different time points. We will discuss these choices later in detail. In this case. recording on web browsers would likely generate identical logical names for browsers that have nothing in common. We call this a description conflict as the two objects have the same name. two objects will exist with different logical names. It is also likely that if the text on a button has changed.0 is installed.

The reason is that each Action has a data table sheet. The limitation on the number of Actions is 255. If the size crosses more than 1MB loading of object repository takes lot of time . Mercury Interactive recommends that you keep the Object Repository under 1 MB and perform regular backups. For different options of Merging refer to Merging of Object Repositories. however those Actions will not be able to access a local data sheet. 9.3 Limitations: 1. so we will discuss the different options in detail. Confidential Page 57 of 100 . The Formula 1 control has a limitation of 255 sheets so the limitation is 255 Actions per test. the UI has many options to select.doc QTP Frame Work ObjectRepositoryMgr COM component. 2. As the operation is not trivial.60761011. You may be able to add additional Actions after reaching the 255 "limit".

you will see the data sheet added to the data table. This can be accomplished if you are calling the same Action more than one time within the script. 10. When the Action is added to the script. insert a "call to" a reusable Action. This applies to "call to" Actions only. Insert another "call to" to the same Action. Variables In QTP scripting there are mainly 3 types of variable that we use. The data sheet will not be added again. you may be able to have more than 255 Actions within the script. They are: Confidential Page 58 of 100 .60761011.doc QTP Frame Work Note: If you are calling reusable Actions. Example: In a new script. The data sheet for the Action will only be loaded once.

You can define. or you can use the default value that QuickTest provides for the parameter value type that you choose. which we declare in the script. so that it can return values for use later in the test. You can also specify output parameters for an action. VB Variables. so that it can output values for use later in the test. Confidential Page 59 of 100 . Input values for an action parameter can be retrieved from the test (for a top-level action) or from the parameters of the action that calls it (for a nested action). you can output a value from a step in a nested action and store it in an output action parameter. The default value is saved with the action and is used by the action if a value is not defined for a parameter in the action call. from your test to a top-level action. or from a step in a toplevel action back to the script or action that ran (called) your test.1 Action Parameters Action parameters enable you to transfer values between actions and their nested actions in your test. You define the parameters that an action can receive and the output values that it can return in the Parameters tab of the Action Properties dialog box. Input values for an action can be retrieved from the test (for a toplevel action) or from the parameters of the action that calls it (for a nested action). You can specify input parameters for an action so it can receive input values from elsewhere in the test. QTP Frame Work 10.60761011. You can also specify a default value for each action input parameter. and delete input and output parameters in the Parameters tab of the Action Properties dialog box. Setting Action Parameters You can specify input parameters for an action so that steps in the action can use values supplied from elsewhere in the test. For example. modify. You can specify output parameters for an action. For each input or output action parameter. or pass values back to the application that ran (called) the test. Environment Variables. You specify the actual values that are provided to these parameters and the locations in which the output values are stored in the Parameter Values tab in the Action Call Properties dialog box. you define a name and a type.doc • • • Action Parameters. and then use that value as input in a later step in the calling parent action.

The default value is True. If you enter a value and do not include the quotation marks.doc QTP Frame Work To add a new input or output action parameter: 1. o Date—A date string. Click in the Name box and enter a name for the parameter. The default value is an empty string. 2. "New York". Select the value type for the parameter in the Type box. o Boolean—A true or false value. you can click in the Default Value column and click the arrow to select a True or False value. 3/2/2005. Click the Add button next to the Input parameters or Output parameters lists to add a new parameter to the appropriate list. you can click in the Default Value column and click the arrow to open a calendar from which you can select a date. If you select a Date value type. If you select a Boolean value type. for example. 3. You can select one of the following types: o String—A character string enclosed within a pair of quotation marks. QuickTest adds them automatically when the value is inserted in the script during the test run.60761011. Confidential Page 60 of 100 . for example. A row for the new parameter is added to the relevant list. The default value is today's date.

the purpose of the parameter in the action.2 Test Parameters In the Parameters tab of Test Settings. Note that if you select the Any value type. If you are editing an existing value. Select the parameter you want to modify from the Input parameters or Output parameters list. you must enclose it in quotation marks. the password characters are masked when you enter the password in the Default Value field. Select the parameter you want to delete from the Input parameters or Output parameters list. 2. If the value is not a number. Click the Delete button . QuickTest automatically encloses it in quotation marks. You can also use the Parameters tab to modify or delete existing test or component parameters Confidential Page 61 of 100 . 10. click in the Default Value box and enter a default value for the parameter or you can leave the default value provided by QuickTest for the parameter value type. To delete an existing action parameter: 1. QuickTest checks whether it is a number. When you specify a value of Any type. The parameter is removed from the list. The default value is 0. 5. o Any—A variant value type. The default value is an empty string. o To modify an existing action parameter: 1. for example. 2. If you wish. then enter a description of the parameter. The default value is required so that you can run the action without receiving parameter values from elsewhere in the test. For example. If you are defining an input action parameter.60761011. Modify the values as necessary in the edit boxes of the parameter row. QuickTest automatically encloses it in quotation marks if the previous value had quotation marks. you can define input parameters that pass values into your test or component and output parameters that pass values from your test or component to external sources. you must specify the value in the format that is required in the location where you intend to use the value. Password—An encrypted password value. If you select a Password value type. if you intend to use the value later as a string. click in the Description box. The default value is an empty string. which accepts any of the above value types.doc o QTP Frame Work Number—Any positive or negative number. 4.

You can add and delete input and output parameters for your test or component using the parameter control buttons: Option Description Confidential Page 62 of 100 .60761011.doc QTP Frame Work The Parameters tab contains two parameter lists: Input parameters—Specifies the parameters that receive values from sources that are external to the test or component. • You can edit an existing parameter by selecting it in the appropriate list and modifying its details. • Output parameters—Specifies the parameters that pass values to sources that are external to the test or component.

in the format: Parameter("ParameterName"). When you run a test or business component from QuickTest. You define test or component parameters in the same way you define action parameters. 10. You can create or modify internal. the purpose of the parameter in the component. Enter a name for the new parameter and select the parameter type. input parameter values for tests and components are taken from in the Input Parameters tab of the Run dialog box. QuickTest uses the default value for each defined input parameter if a specific value has not been defined for the parameter in either QuickTest or Quality Center. Confidential Page 63 of 100 . Removes the selected parameter from the test or component. Throughout the test run.doc QTP Frame Work Adds a parameter to the appropriate parameter list.60761011. Using Test or Component Parameters Once you have defined test or component parameters. the value of an environment variable remains the same. You can enter a description for the parameter. enter a default value for the parameter in the Default Value column. These variables are saved with the test and are accessible only within the test in which they were defined. for example. Defining Values for Input Parameters When the test or component runs. regardless of the number of iterations.3 Environment Variables QuickTest can insert a value from the Environment variable list. you insert them in your test or component by specifying the test or component parameter name with the Parameter reserved object. user-defined environment variables for your test in the Environment tab of the Test Settings dialog box or in the Parameter Options dialog box. which is a list of variables and corresponding values that can be accessed from your test. unless you change the value of the variable programmatically in your script. There are three types of environment variables: • User-Defined Internal—variables that you define within the test. If you are defining an input parameter.

Note that external environment variable values are designated as read-only within the test.60761011. You use the Parameter Values tab of the Action Call Properties dialog box to specify the values of input action parameters used by the called action and to specify the locations in which you want to store output action parameter values. the default value that is specified in the Action Properties dialog box is used. Confidential Page 64 of 100 . 10. such as Test path and Operating system. If you do not set a value for an input action parameter in the Action Call Properties dialog box. and are designated as read-only.4 Variable passing from one Action to another QuickTest enables you to retrieve values in your test or component and to store them as output values. You can pass variables from one action to another by setting Action Call Parameter Values. or change files for each test run. • Built-in—variables that represent information about the test and the computer on which the test is run. You can subsequently retrieve these values and use them as input at a different stage in the run session. which retrieve values during the test run and output them to internal environment variable parameters for use in your test. and their types. The actual input and output action parameters that an action can receive or return. • User-Defined External—variables that you predefine in the active external environment variables file.doc QTP Frame Work Tip: You can also create environment output values. You should not use the names of these variables for any other purpose. You can also parameterize the value used for a particular input action parameter using any available parameter type. Note: QuickTest also has a set of predefined environment variables that you can use to set the values of the Record and Run Settings dialog options. These variables are accessible from all tests. are defined in the Action Properties dialog box. You can create as many files as you want and select an appropriate file for each test.

doc QTP Frame Work You can specify a location in which to store the output action parameter values.60761011. To specify a location in which to store an output action parameter value: 1. Confidential Page 65 of 100 . click in the Store In box for the parameter and enter a variable name. In the Output parameters area. which can be used in the called action.

doc QTP Frame Work If we choose variable to store the value. When you insert a call to a copy of an action. you can click the output storage button in the Store In box to open the Storage Location Options dialog box in which you can specify a location for storing the output value.5 Scope of Variables Mainly there are two types of variables: action parameters and environment variables. you can see the action parameters have changed. Repeat this procedure for each output action parameter value in the list. You can select to store the value in a test or action parameter. Alternatively. If you change the action parameters defined for an action. However. You can accept the default name assigned to the variable or enter a different variable name. or an environment parameter. 2. then the value is stored in a runtime variable for the duration of the run session. a Data Table parameter. the actual values specified for input action parameters and the locations specified for action output parameters can be different for each call to the action. and then view the action properties for a call to that same action in a different part of the test. 10. An action's parameters are stored with the action and are the same for all calls to that action.60761011. the copy of the action is inserted with the action parameters and action call parameter values that were Confidential Page 66 of 100 .

doc QTP Frame Work defined for the action you copied. Note that external environment variable values are designated as read-only within the test. and are designated as read-only. You can create or modify internal. The action call values for the second action are taken from the default values of that action's parameters. You can create as many files as you want and select an appropriate file for each test. unless you change the value of the variable programmatically in your script. These variables are saved with the test and are accessible only within the test in which they were defined. or change files for each test run. Confidential Page 67 of 100 .  Built-in—variables that represent information about the test and the computer on which the test is run. the action parameters are copied to both actions. Throughout the test run. regardless of the number of iterations.  User-Defined External—variables that you predefine in the active external environment variables file. user-defined environment variables for your test in the Environment tab of the Test Settings dialog box or in the Parameter Options dialog box. There are three types of environment variables:  User-Defined Internal—variables that you define within the test. Environment variables can be accessed from your test. These variables are accessible from all tests. such as Test path and Operating system.60761011. When you split an action. the value of an environment variable remains the same.

Note: Standard checkpoints are supported for all add-in environments • Image Checkpoint checks the value of an image in the application or Web page. You can add a table checkpoint to check that the time of the first flight in the table is correct. For example. suppose an application or Web site contains a table listing all available flights from New York to San Francisco. we can check that the map zooms in correctly.60761011. For example. • Standard Checkpoint checks the property value of an object in your application or Web page. you can check that a radio button is activated after it is selected or you can check the value of an edit field. radio buttons. we can check that a selected image's source file is correct. lists. Image checkpoints are supported only for the Web environment • Bitmap Checkpoint checks an area of a Web page or an application as a bitmap.1 Types of Checkpoints In QTP the following types of checkpoints can be inserted to check various objects in a Web site or application. The map has control keys for zooming. For example. Check Points A checkpoint is a verification point that compares a current value for a specified property with the expected value for that property. For example. Note: Bitmap checkpoints are supported for all add-in environments • Table Checkpoint checks information within a table. Confidential Page 68 of 100 . We can record the new map that is displayed after one click on the control key that zooms in the map. Note: Image checkpoint can be created by inserting a standard checkpoint on an image object. etc.doc QTP Frame Work 11. combo boxes. 11. The standard checkpoint checks a variety of objects such as buttons. consider a Web site that can display a map of a city the user specifies. Using the bitmap checkpoint.

You can add an Alt property check to check whether objects that require the Alt property under this guideline. We can create a text checkpoint that checks that the words "New York" are displayed between "Flight departing from" and "to San Francisco". and ActiveX add-in environments Text area checkpoints are also supported for some external add-in environments.1 of the W3C Web Content Accessibility Guidelines requires you to provide a text equivalent for every non-text element. Table checkpoints are supported for Web and ActiveX environments & for many other external add-in environments. according to specified criteria. guideline 1. Text area checkpoints are supported for Standard Windows. • Accessibility Checkpoint identifies areas of your Web site that may not conform to the World Wide Web Consortium (W3C) Web Content Accessibility Guidelines. consider an application or Web page that displays the sentence Flight departing from New York to San Francisco. you can check how long a Web page takes to load or whether a Web page contains broken links.60761011. You can create a text area checkpoint to confirm that the number displayed on the button is the same as the number entered in the form. Visual Basic. Page checkpoints are supported for the Web environment Confidential Page 69 of 100 . For example. For example. do in fact have this tag. For example.doc QTP Frame Work Note: You create a table checkpoint by inserting a standard checkpoint on a table object. Text checkpoints are supported for all add-in environments • Text Area Checkpoint checks that a text string is displayed within a defined area in a Windows application. where <Num> is replaced by the four digit code entered in a form elsewhere in the application. For example. • Text Checkpoint checks that a text string is displayed in the appropriate place in the application or a Web page. Note: You create a page checkpoint by inserting a standard checkpoint on a page object. Accessibility checkpoints are supported for the Web environment • Page Checkpoint checks the characteristics of a Web page. suppose your Visual Basic application has a button that says View Doc <Num>.

you can use a database checkpoint to check the contents of a database containing flight information for your Web site.doc QTP Frame Work • Database Checkpoint checks the contents of a database accessed by your Web site. For example. • XML Checkpoint checks the data content of XML documents in XML files or XML documents in Web pages and frames. • • To add checkpoints while recording To add a checkpoint while editing the test For more information refer to Checkpoints 11. XML checkpoints (file) are supported by all environments For more specific information refer to Checkpoints Adding checkpoints in a test in QTP There are several ways to add checkpoints.60761011.2 Output Values for Verification The following are the categories of output values that can be created: • • • • • Standard Output Values Text Output Values Text Area Output Values Database Output Values XML Output Values For more information refer to Checkpoints Adding output values in a test in QTP Confidential Page 70 of 100 . XML checkpoints (Web page/frame) are supported for the Web environment. Database checkpoints are supported by all environments.

doc • • QTP Frame Work To add checkpoints while recording To add a checkpoint while editing the test For more information refer to Checkpoints Output Values Properties Dialog Box The Output Value Properties dialog box enables you to choose which property values to output and to define the settings for each value that you select. This dialog except that it contains two additional option areas. HTML verification and All objects in page. These options are relevant only for checkpoints and are disabled when defining output values. Note: If you insert an output value on a Web page.60761011. The output values can be output to either of these locations: • • Global\Local Sheet Environment variables Confidential Page 71 of 100 . the Page Output Value Properties dialog box opens.

doc • Action\Test Parameter. QTP Frame Work This option is given in the output options dialog box 12.60761011. Reusable Library Description Confidential Page 72 of 100 .

Any text file written in standard VBScript syntax can act as a library file. and then associate the files with our test. Changes to the default library files list in the Test. Defining Resource Settings for Your Test Confidential Page 73 of 100 . the authors go on to consider how the components that may be found could be used. modules..1 Introduction In QTP we can create VBScript library files containing VBScript functions. etc. We can also edit the list of associated library files for an existing test in the Test Settings dialog box. but invaluable. classes. library. reusable software components offer the same possibilities. To the test engineer.doc QTP Frame Work When forming a new product the traditional engineer can take advantage of ready-made subassemblies. thus saving the considerable time and effort it can take to generate new software. the same components can be incorporated into many whole new systems. etc.. subroutine. Note that once a test is created. 12. 12. User defined We can specify the default library files for all new tests in the Test Settings dialog box (Test > Settings > Resources tab). making it essentially a small. Starting with an introduction to software reuse and a discussion of its feasibility. The reusable library was designed with reuse very much in mind.2 How to establish a Reusable Library a. contained within any library file that is associated with our test.60761011. Built-In ii. We can call any VBScript function. the list of files specified in the Test Settings dialog box is independent of the files set as default in the Test Settings dialog box. a) Functions i. subroutines.

. We can also set the currently associated library files and object repository settings as the default settings for all new tests. When we run our test.60761011. To execute an externally-defined function: Confidential Page 74 of 100 .doc QTP Frame Work We can use the Resources tab of the Test Settings dialog box to associate specific files with your test. from an action in your test or from an associated library file by inserting an ExecuteFile statement in our action or library file. the ExecuteFile statement executes all global code in the specified file in order to make all definitions in the file available from the global scope of the action's (or library file's) script. and to specify the object repository mode and file to use for our test. b. Executing Externally-Defined Functions from Your Test We can create a VBScript file and call its functions. etc. classes. such as VBScript library files and Data Table files. subroutines.

etc.60761011. Regular Expressions 13. Use the functions. from the specified VBScript file as necessary in your action or within other functions in an associated library file. 13. 1.. 3. Create a VBScript file using standard VBScript syntax. classes. 2. Add an ExecuteFile statement to an action in your test or in an associated library file using the following syntax: ExecuteFile FileName where FileName is the absolute or relative path of our VBScript file.1 Description Confidential Page 75 of 100 . 12. subroutines.doc QTP Frame Work 1.3 How to use this Reusable Library. Store the file in any folder that you can access from the machine running your test.

For example. consider a Web site called: mercurytours. To match any single character including \n.doc QTP Frame Work While creating checkpoints we have an option only to search or check for a specific text string or a specific value of a property. To indicate that the period is not part of a regular expression. welcomed. For example. Matching Any Single Character in a List Square brackets instruct QuickTest to search for any single character within a list of characters. To increase the flexibility and adaptability of the tests we use regular expressions. The most common expressions that can be used to create regular expressions are: 1.) instructs Quick Test to search for any single character (except for \n). you would write it as follows: mercurytours\. enter: (. Regular Expressions enable Quick Test to identify objects and text strings with varying values.com 2.60761011. Using the Backslash Character A backslash (\) instructs Quick Test to treat the next character as a literal character. Matching Any Single Character A period (. write: 196[789] 4. The backslash (\) can also instruct Quick Test to recognize certain ordinary characters as special characters.com The period would be mistaken as an indication of a regular expression. matches welcomes. A regular expression is a string that specifies a complex search phrase. if it is otherwise a special character.mercuryinteractive. or 1969.|\n) 3. By using special characters we define the conditions of the search. to search for the date 1967. For example: welcome. Matching Any Single Character Not in a List Page 76 of 100 Confidential . 1968. A series of periods indicates the same number of unspecified characters.mercuryinteractive\. or welcome followed by a space or any other single character.

For example: ca*r matches car. or after a caret (^). to match any year in the 1960s. For example: ca?r matches car and cr. 10. 5. you can use square brackets ([ ]) with the hyphen (-) character. 11. For example. For example: ca+r matches car and caaaaaar. Matching Zero or One Specific Character A question mark (?) instructs Quick Test to match zero or one occurrences of the preceding character. just as in mathematics and programming languages.60761011. Matching One of Several Regular Expressions A vertical line (|) instructs QuickTest to match one of a choice of expressions. ? . + . it instructs QuickTest to match any character in the list except for the ones specified in the string. but nothing else. but not cr. 9. [-a-z] matches a hyphen or any lowercase letter. 7. fo(o|b)ar causes Quick Test to match either fooar or fobar.doc QTP Frame Work When a caret (^) is the first character inside square brackets. 6. Matching Any Single Character within a Range In order to match a single character within a range. Using groups is especially useful for delimiting the argument(s) to an alternation operator ( | ) or a repetition operator ( * . caaaaaar. For example: [^ab] matches any character except a or b. Matching the Beginning of a Line Confidential Page 77 of 100 . Matching Zero or More Specific Characters An asterisk (*) instructs QuickTest to match zero or more occurrences of the preceding character. and cr. Grouping Regular Expressions Parentheses (()) instruct Quick Test to treat the contained sequence as a unit. { } ). Matching One or More Specific Characters A plus sign (+) instructs QuickTest to match one or more occurrences of the preceding character. For example: foo|bar causes QuickTest to match either foo or bar. For instance. 8. write: 196[0-9] A hyphen does not signify a range if it is displayed as the first or last character within brackets.

* matches start. or z_M.doc QTP Frame Work A caret (^) instructs QuickTest to match the expression only at the start of a line. For example: \W matches &. a-z.Matching Any AlphaNumeric Character Including the Underscore \w instructs QuickTest to match any alphanumeric character and the underscore (A-Z. started. Matching the End of a Line A dollar sign ($) instructs Quick Test to match the expression only at the end of a line. 14. starter. Combining Regular Expression Operators You can combine regular expression operators in a single expression to achieve the exact search criteria you need. _). 13. You can use a combination of brackets and an asterisk to limit the search to a combination of non-numeric characters. 15. For example: book matches book within the lines—book. and book list. For example. and the underscore (_). my book. $. or after a newline character.60761011. etc. you can combine the `. For example. a-z. It matches Ab. For example: [a-zA-Z]* Creating checkpoints with Regular Expressions Confidential Page 78 of 100 . 0-9. ^. start. For example: book Matches book within the lines—my book. a-z. matches only lines ending in that string. For example: \w{3} causes Quick Test to match 3 occurrences of the alphanumeric characters AZ. For example: book$ Matches book only in the line—my book. while ^book Matches book only in the lines—book and book list 12. 0-9. *. r9_. r9Cj. or before a new line character. or 12_uYLgeu_435. and # . %. Matching Any Non-AlphaNumeric Character \W instructs QuickTest to match any character other than alphanumeric characters and underscores. starting. and the underscore (_).' and `*' characters in order to find zero or more occurrences of any character (except \n). while a string that is followed by ($). 0-9. and book list. It matches Ab4. For example: \w* causes QuickTest to match zero or more occurrences of the alphanumeric characters—A-Z.

12 Select CheckPoint "Fax Order No\. Confidential Page 79 of 100 . The checkpoint passed because the text was displayed in the format specified by the regular expression. the Test Results window opens. expand (+) Test RegExpression Summary > RegExpression Iteration 1 (Row 1) > Action1 Summary > Flight Reservations > Fax Order No. 1. Examine the checkpoint results.60761011. In the results tree.doc QTP Frame Work Regular expressions are generally used in the context of creating checkpoints to check a range of values. For more information on creating checkpoints with regular expressions refer Regular Expressions Analyzing a Test with Regular Expressions When the test run is completed. [0-9][0-9]".

clicking an OK button in a pop-up window. or skip a test step entirely and continue with the next step in the test. The Recovery Scenario Manager provides a wizard that guides you through the process of defining a recovery scenario—a definition of an unexpected event and the operation(s) necessary to recover the test run. You can prioritize the scenarios associated with your test to ensure that trigger events are recognized and handled in the required order. or a Quick Test test run error. and from which point in the test Quick Test should continue.  Recovery Operation(s)—The operation(s) that need to be performed in order to continue running the test. errors. To instruct Quick Test to perform a recovery scenario during a test run. grouped according to your own specific requirements. if at all. For example. you can instruct Quick Test to detect a Printer out of paper message and recover the test run by clicking the OK button to close the message and continue the test. Recovery scenarios are saved in recovery scenario files. a window that may pop up on screen. and application crashes during a test run can disrupt your test and distort test results. A recovery scenario consists of the following:  Trigger Event—The event that interrupts your test run. A test can have any number of recovery scenarios associated with it. This is a problem particularly when running tests unattended—the test is suspended until you perform the action needed to recover. For example. Recovery Scenario You can instruct Quick Test to recover from unexpected events and errors that occur in your testing environment during a test run.  Post-Recovery Test Run Option—The instructions on how Quick Test should proceed once the recovery operations have been performed. A recovery scenario file is a logical collection of recovery scenarios.doc QTP Frame Work 14. you must first associate it with that test. For example. Unexpected events. you may want to restart a test from the beginning. For example. or restarting Microsoft Windows. Confidential Page 80 of 100 .60761011.

You can also control and activate your recovery scenarios during the test run by inserting Recovery statements into your test. If you added or modified scenarios in an existing recovery file. Choose the folder in which you want to save the file. 14. which leads you through the process of defining each of the stages of the recovery scenario.1 Exceptional Handling using Recovery Scenarios The Recovery Scenario Manager dialog box enables you to create recovery scenarios and save them in recovery files. You then save the recovery scenarios in a recovery file. Confidential Page 81 of 100 . Quick Test performs the corresponding recovery and post-recovery operations. the Save Attachment dialog box opens. You can create a new recovery file or edit an existing one. Tip: You can also click the arrow to the right of the Save button and select Save As to save the recovery file under a different name. you of a test can do this by adding an extra step to the end of your test. If you chose this option and need to recover from an unexpected event or error that may occur in the last step. the recovery mechanism does not handle triggers that occur in the last step of a test. you need to save the recovery file. 2. You create recovery scenarios using the Recovery Scenario Wizard. Quick Test looks for the defined trigger event(s) that caused the error. Creating a Recovery File You save your recovery scenarios in a recovery file. Click the Save button . and associate them with a specific test or tests. If a trigger event has occurred.doc QTP Frame Work When you run a test for which you have defined recovery scenarios and an error occurs.60761011. For more information on creating a Recovery File refer to Creating a Recovery File Saving the Recovery Scenario in a Recovery File After you create or modify a recovery scenario in a recovery file using the Recovery Scenario Wizard. Note: If you choose On error in the Activate recovery scenarios box in the Recovery tab of the Test Settings dialog box. the recovery file and its scenarios are saved. To save a new or modified recovery file: 1. A recovery file is a convenient way to organize and store multiple recovery scenarios together. If you are using a new recovery file.

Type a name for the file in the File name box. the recovery file and its scenarios are saved. The Recovery Scenario Manager contains the following recovery scenario icons: Icon Description Indicates that the recovery scenario is triggered when a window pops up in an open application during the test run. Click Yes. Indicates that the recovery scenario is triggered when the property values Confidential Page 82 of 100 . you can use the Recovery Scenario Manager to manage them.60761011. The recovery file is saved in the specified location with the file extension . and you click Yes to the message prompt. Managing Recovery Scenarios Once you have created recovery scenarios. If you added or modified scenarios in an existing recovery file.qrs. Quick Test prompts you to save the recovery file.doc QTP Frame Work 3. and you click the Close button in the Recovery Scenario Manager dialog box. Tip: If you have not yet saved the recovery file. and proceed with step 2 above.

To view recovery scenario properties: 1 In the Scenarios box. 2 Click the Properties button . you can double-click a scenario in the Scenarios box. Indicates that the recovery scenario is triggered when a step in the test does not run successfully. Alternatively. The Recovery Scenario Properties dialog box opens. Indicates that the recovery scenario is triggered when an open application fails during the test run. The Recovery Scenario Manager enables you to manage existing scenarios by:  Viewing Recovery Scenario Properties  Modifying Recovery Scenarios  Deleting Recovery Scenarios  Copying Recovery Scenarios between Recovery Scenario Files Viewing Recovery Scenario Properties You can view properties for any defined recovery scenario. The Recovery Scenario Properties dialog box displays the following read-only information about the selected scenario: Confidential Page 83 of 100 .60761011. select the recovery scenario whose properties you want to view.doc QTP Frame Work of an object in an application match specified values.

Page 84 of 100 Confidential . 2 Click the Copy button .  Recovery operation tab—Displays the recovery operation(s) defined for the recovery scenario. Modifying Recovery Scenarios You can modify the settings for an existing recovery scenario. plus the name and path of the recovery file in which the scenario is saved. To copy a recovery scenario from one recovery scenario file to another: 1 In the Scenarios box. The scenario is copied to the Clipboard.  Post-Recovery Operation tab—Displays the post-recovery operation defined for the recovery scenario. select the scenario that you want to modify. The recovery scenario is deleted. The Recovery Scenario Wizard opens. with the settings you defined for the selected recovery scenario. select the scenario that you want to delete. 3 Navigate through the Recovery Scenario Wizard and modify the details as needed. Quick Test ignores it during the test run.  Trigger Event tab—Displays the settings for the trigger event defined for the recovery scenario. 2 Click the Edit button . 2 Click the Delete button . select the recovery scenario that you want to copy. To delete a recovery scenario: 1 In the Scenarios box. Copying Recovery Scenarios between Recovery Scenario Files You can copy recovery scenarios from one recovery scenario file to another.doc QTP Frame Work  General tab—Displays the name and description defined for the recovery scenario.60761011. Note: If a deleted recovery scenario is associated with a test. the corresponding information is deleted from the recovery scenario file. When you delete a recovery scenario from the Recovery Scenario Manager. To modify a recovery scenario: 1 In the Scenarios box. Deleting Recovery Scenarios You can delete an existing recovery scenario if you no longer need it.

The Recovery Scenario Properties dialog box opens. you can double-click a scenario in the Scenarios box. 4 Click the Paste button . You can also choose to disable specific scenarios. The Recovery tab of the Test Settings dialog box lists all the recovery scenarios associated with the current test.60761011. The scenario is copied to the new recovery scenario file. When a trigger event occurs. select the recovery scenario whose properties you want to view. You can prioritize the scenarios and set the order in which Quick Test applies the scenarios during the test run. Setting Recovery Scenario Priorities You can specify the order in which Quick Test performs associated scenarios during a test run. Tip: When a trigger event occurs. displaying read-only information regarding the settings for the selected scenario. or all scenarios. Note: If a scenario with the same name already exists in the recovery scenario file. that are associated with a test. you can associate one or more scenarios with a test in order to instruct Quick Test to perform the recovery scenario(s) during the test run if a trigger event occurs.doc 3 Click the Open button QTP Frame Work and select the recovery scenario file to which you want to create a new recovery scenario to copy the scenario. To view recovery scenario properties: 1 In the Scenarios box. you can choose whether you want to replace it with the new scenario you have just copied. You can change this order as described in “Setting Recovery Scenario Priorities” For more information on “adding a recovery scenario to a test” refer to Adding Recovery Scenario to a Test Viewing Recovery Scenario Properties You can view properties for any recovery scenario associated with your test. Alternatively. Adding Recovery Scenarios to Your Test After you have created recovery scenarios. 2 Click the Properties button . Quick Test checks for applicable recovery scenarios in the order in which they are displayed in the Recovery tab. You can also define which recovery scenarios will be used as the default scenarios for all new tests. you associate them with selected tests so that Quick Test will perform the appropriate scenario(s) during the test runs if a trigger event occurs. or click the New button file in which to copy the scenario. Quick Test checks for applicable recovery Confidential Page 85 of 100 . Setting the Recovery Scenarios List for Your Tests After you have created recovery scenarios.

a step that selects a check box may cause a pop-up dialog box to open. but Quick Test will no longer perform the scenario during a test run. the scenario itself still exists. but is not performed by Quick Test during the test run. Removing Recovery Scenarios from Your Test You can remove the association between a specific scenario and a test using the Recovery tab of the Test Settings dialog box. Note that the step that returns an error is often not the same as the step that causes the exception event to occur. To set recovery scenario priorities: 1 In the Scenarios box. To remove a recovery scenario from your test: 1 In the Scenarios box. Although the pop-up dialog box is defined as a trigger event. You can enable the scenario at a later time. 2 Click the Remove button . 2 Click the Up or Down button . After you remove a scenario from a test. 3 Repeat steps 1-2 for each scenario whose priority you want to change.  On error—The recovery mechanism is activated only after steps that return an error return value. To define when the recovery mechanism is activated: Select one of the following options in the Activate recovery scenarios box:  Always—The recovery mechanism is activated after every step. select the scenario whose priority you want to change. it remains associated with the test. Quick Test moves to the next step because it successfully performed the check box selection Confidential Page 86 of 100 .  Clear the check box to the left of one or more individual scenarios to disable them. Enabling and Disabling Recovery Scenarios You can enable or disable specific scenarios and determine when Quick Test activates the recovery scenario mechanism in the Recovery tab of the Test Settings dialog box. When you disable a specific scenario. The selected scenario’s priority changes according to your selection. For example. The selected scenario is no longer associated with the test. select the scenario you want to remove.doc QTP Frame Work scenarios in the order in which they are displayed in the Recovery tab of the Test Settings dialog box.60761011. To enable/disable specific recovery scenarios:  Select the check box to the left of one or more individual scenarios to enable them.

After the recovery operation is completed. Any future changes you make to the current recovery scenario list only affect the current test. in the “Select Trigger Event” screen of Recovery Scenario Wizard.60761011. In this case. it is this tenth step that returns an error and triggers the recovery mechanism to close the dialog box. functions or other conditional or looping statements that do not require performing operations on your application. and not the step that caused the trigger event. the current step is this tenth step. Confidential Page 87 of 100 . select “pop-up window” Radio button as shown below. take a new recovery scenario. 14. when we give wrong password in the login dialog box then we get the following popup window: In order to handle this.  Never—The recovery mechanism is disabled. and do not change the default list that you defined. The next several steps could potentially perform checkpoints.doc QTP Frame Work step. It may only be ten statements later that a step instructs Quick Test to perform an operation on the application that it cannot perform due to the pop-up dialog box.2 Sample for Recovery Scenario: For adding a recovery Scenario: Let us take an example of a popup window exception. Setting Default Recovery Scenario Settings for All New Tests You can click the Set as Default button in the Recovery tab of the Test Settings dialog box to set the current list of recovery scenarios to be the default scenarios for all new tests. In Flight Application.

doc QTP Frame Work In the next screen.60761011. we can specify Pop-up window condition. then details of the pop-up window appears as follows: Confidential Page 88 of 100 . by spying the popup window.

In the recovery operation screen select “keyboard or mouse operation” radio button.doc QTP Frame Work then in the next step.60761011. In the next screen select “Add another recovery operation” check box as given below: Confidential Page 89 of 100 . then in the next step select “Press ENTER Key” radio button.

We can add the Recovery Scenario to our test while we create a new Recovery Scenario by checking the “add Scenario to current test” check box in “Completing the Recovery Scenario Wizard” screen of Recovery Scenario Wizard. In the “Post-Recovery Test Run Options” screen select “Repeat current step and Continue” radio button. 1. In the recovery operation screen select “function call” radio button Specify the path and name of the library file which has the appropriate function for entering the password and clicking “ok” button of “Login” dialog box.60761011. thus the recovery will be created.doc QTP Frame Work then in the next step. Adding a Recovery scenario into the Test: We can add the Recovery Scenario to our test in two ways. give a name to the recovery scenario. Confidential Page 90 of 100 .

Confidential Page 91 of 100 .doc QTP Frame Work 2. The other way to add Recovery Scenario to our test is by adding the required scenario file in the recovery tab of Test Settings Dialog box.60761011.

doc QTP Frame Work Confidential Page 92 of 100 .60761011.

if the screen or dialog box doesn’t appear or will continue the normal flow. those objects are as follows: Dialog boxes with title bar as Auto Complete File Download Internet Explorer Netscape Enter Network Password Error Security Alert Security Information Security Warning Username and Password Required Confidential Page 93 of 100 . Default Optional Steps: There are some default objects.doc QTP Frame Work 15. so that it proceeds to the next step. which QTP recognizes as optional. Optional Steps 15. for those objects QTP by default sets as optional. It bypasses any step designated "optional" and continues running the test. If a dialog box may or may not appear at a particular instanse then that dialog box actions performed can be set as optional.1 Description: When running a test. You can manually designate additional steps as optional. QuickTest automatically marks as optional steps that open certain dialog boxes. QuickTest does not necessarily abort the test run. if a step does not succeed in opening a dialog box. By default.60761011.

doc QTP Frame Work Setting Optional Steps: There are two ways of setting Optional steps: 1.Browser("browser_name").Page("page_n ame"). The Optional Step icon will be added next to the selected step. 2. Example: OptionalStep.Link("link_name") Confidential Page 94 of 100 .60761011. You can also add an optional step from the Expert View by adding OptionalStep to the beginning of the VBScript statement. We can directly Right-click a step in the Keyword View and choose Optional Step.

Test results toolbar—Contains buttons for viewing test results (choose View > Test Results Toolbar to display the toolbar). we view the results in the Test Results window.60761011. choose Start > Programs > QuickTest Professional > Test Results Viewer. The Test Results window contains the following key elements: Menu bar—Displays menus of available commands. • • Confidential Page 95 of 100 .doc QTP Frame Work 16. Note: You can open the Test Results window as a standalone application from the Start menu. the Test Results window opens when a test run is completed. and add the appropriate comments and reports to the test results to increase the readability of it. By default. Reporting can be done in various formats. Test Results Window After a test run. To open the Test Results window. Reporting The process of reporting is to customize the test results.

• On Errors – adds screen shots only on occurrence of error • On Errors and Warnings – adds on both errors and warnings.1 Different Options for Reporting There are 3 options for screen capture the screens to the results: • Always – adds screen shots to the results for every step. • Never Note: If “Always” option is selected then the result file will occupy lots of memory. thus selection of “Always” option should be done only if the client wants to view all the screen shots for reference during review. 16. • Test results details—Contains details of the selected step. Confidential Page 96 of 100 .60761011.doc • QTP Frame Work Test results tree—Contains a graphic representation of the test results in the test results tree. • Active Screen—Shows the active screen of the particular window or step in the results.

EventStatus Number or pre-defined constant ReportStepName String Details in Example String N/A The following example uses the Report Event method to report that the checkpoint on this window has passed. or Confidential Page 97 of 100 . 2 or micDone: Sends a message to the report without affecting the pass/fail status of the test. Reporter. 3 or micWarning: Sends a warning message to the report. This status does not affect the pass/fail status of the test.ReportEvent EventStatus. and does not affect the pass/fail status of the test. Filter Property Retrieves or sets the current mode for displaying events in the Test Results. You can use this method to completely disable or enable reporting of steps following the statement. When this step runs.2 Functions used for Reporting 1. Syntax: Reporter. 1 or micFail: Causes the status of this step to be failed and sends the specified message to the report. the test fails.doc QTP Frame Work 16. Details [. in] Argument Type Description Status of the report step: 0 or micPass: Causes the status of this step to be passed and sends the specified message to the report.ReportEvent 0. 12". Description of the report event. ReportStepName. The string will be displayed in the step details frame in the test report .60761011. but does not cause the test to stop running. Not in use. ReportEvent Method Reports an event to the Test Reports. 4 or micInfo: Applies an information status (and icon) to the step."The check point for this window has passed " 2. Name of the intended step in the report (object name)."Fax Order No.

"1".ReportEvent micGeneral.ReportEvent micGeneral. Syntax: To retrieve the mode setting: CurrentMode = Reporter. "6". 5. and 6. 2. "5". ReportPath Property Retrieves the folder path in which the current test's Test Results are stored. "2". Reporter. All reported events are displayed in the Test Results.Filter = NewMode The mode can be one of the following values: Mode 0 or rfEnableAll 1 or rfEnableErrorsAndWarnings 2 or rfEnableErrorsOnly 3 or rfDisableAll Description Default. " 3.ReportEvent micGeneral. "4".Filter To set the mode: Reporter.ReportEvent micGeneral. "" Reporter.ReportEvent micGeneral. "3".ReportEvent micGeneral.Filter = rfEnableAll Reporter.doc QTP Frame Work you can indicate that you only want subsequent failed or failed and warning steps to be included in the report. "" Reporter. Confidential Page 98 of 100 . Example The following example uses the Filter method to report the following events in the Test Results: 1. "" Reporter.Filter = rfDisableAll Reporter. No events are displayed in the Test Results. "" Reporter. "" Reporter.60761011. Only event with a warning or fail status are displayed in the Test Results. Only events with a fail status are displayed in the Test Results.

doc Syntax Path = Reporter. opens with QTP • XML format – the results are also stored in XML file. since it is based on simple Unicode format. dim Path Path = Reporter. This is useful in transfer of the results information across platforms. in which all the objects are stored in a hierarchy in .60761011. The following example uses the ReportPath method to retrieve the folder in which the test's Test Results are stored and displays the folder in a message box.xml format. which must be specified before starting the test run. The results are stored in 2 types of formats: • QTP format – this is the format in which the results are displayed in the test window.ReportPath MsgBox (Path) 16. Confidential Page 99 of 100 .ReportPath Argument Type Path Example QTP Frame Work Description String The folder path in which the current test's Test Results are stored.3 Reporting Formats The results of the QTP runs are stored in the Results folder.

60761011.doc QTP Frame Work Fig: results in XML format Confidential Page 100 of 100 .

Sign up to vote on this title
UsefulNot useful