document

216

Upload: softwarecentral

Post on 11-Nov-2014

2.543 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Document
Page 2: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 1

Table Of Contents WEBTEST INTRODUCTION .......................................................................................... 6

QUICK TOUR ................................................................................................................. 7

About AdventNetQEngine..........................................................................................................8 QEngine Feature Matrix...........................................................................................................10 Quick Fact Sheet .....................................................................................................................15

Web Testing Quick Facts.....................................................................................................................16 Web Performance Testing Quick Facts ...............................................................................................19 Java Application Functional Test Quick Facts.....................................................................................22 Java Application Performance Test Quick Facts.................................................................................25 Java API Test Quick Facts...................................................................................................................28 Java WebServices Test Quick Facts ...................................................................................................31 Regression Test Quick Facts...............................................................................................................32

Contacting AdventNet..............................................................................................................34 Contacting AdventNet ..........................................................................................................................34 AdventNet Sales ..................................................................................................................................35 Technical Support ................................................................................................................................36

RELEASE NOTES........................................................................................................ 38

INSTALLATION GUIDE................................................................................................ 40

WebTest Installation: Introduction ...........................................................................................40 System Requirements .............................................................................................................41

Web Functional Hardware Requirements............................................................................................41 Web Functional Software Requirements .............................................................................................42 Web Performance Hardware Requirements........................................................................................43 Web Performance Software Requirements .........................................................................................44

Installation and Setup Options.................................................................................................45 Installing QEngine WebTest ................................................................................................................45 Uninstalling AdventNet QEngine WebTest ..........................................................................................47 Installing Service Pack.........................................................................................................................48 Uninstalling Service Pack ....................................................................................................................50 Licensing AdventNet QEngine WebTest .............................................................................................52

Page 3: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 2

StartUp Options .......................................................................................................................54 WebFunctional Startup and Shutdown ................................................................................................54 Web Performance StartUp and Shutdown...........................................................................................55

Packages Bundled...................................................................................................................56 Package Structure ...............................................................................................................................57 Third Party Software ............................................................................................................................58

WEB FUNCTIONAL TESTING ..................................................................................... 59

Getting Started.........................................................................................................................60 Starting WebTest Studio......................................................................................................................61 Tool Interface - Menu Bar ....................................................................................................................62 Tool Interface - Tool Bar ......................................................................................................................65

Web Script Development .........................................................................................................67 Creating the test suite ..........................................................................................................................68 Recording Events.................................................................................................................................69 Playback ..............................................................................................................................................71 Viewing results.....................................................................................................................................73 Inserting Functions...............................................................................................................................75 Inserting Checkpoints ..........................................................................................................................76 Inserting Test Cases............................................................................................................................78 Updating Test Case .............................................................................................................................80 Editing Web Scripts..............................................................................................................................81 Chaining the Scripts.............................................................................................................................84 Editing Application Map File ................................................................................................................86 Web Scripts Parameterization .............................................................................................................87 Handling Exceptions ............................................................................................................................88 Internationalization...............................................................................................................................90 Using I18N Tool ...................................................................................................................................91 Configuration and Customization.........................................................................................................93

Web Script Filtering..........................................................................................................................................93 Web Script Sequencing....................................................................................................................................94 Configuring Suite Preferences .........................................................................................................................95 Configuring Map File Mode ..............................................................................................................................96 Customizing Web Reports................................................................................................................................97

Command Reference...........................................................................................................................98

Page 4: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 3

WEB PERFORMANCE TESTING ................................................................................ 99

Getting Started.......................................................................................................................100 Starting Web Performance Test Studio .............................................................................................101 Tool Interface - Menu Bar ..................................................................................................................102 Tool Interface - Tool Bar ....................................................................................................................105

Web Performance Script Development .................................................................................106 Recording Business Case .................................................................................................................107

Configuring Browser Proxy Settings...............................................................................................................108 Recording Business Cases ............................................................................................................................112 Handling URL Parameters (GET or POST Data) ...........................................................................................114 Handling Session Data in URL.......................................................................................................................116 Response Validator ........................................................................................................................................118

Run Web Performance Test ..............................................................................................................119 Defining User Profiles.....................................................................................................................................120 Defining WorkLoads.......................................................................................................................................121 Configuring Server Monitoring........................................................................................................................122 Configuring Virtual IP Addresses ...................................................................................................................123 Creating Load Test.........................................................................................................................................124 Executing Load Test ......................................................................................................................................125 Play Settings ..................................................................................................................................................127 Distributed Load Testing ................................................................................................................................128 Load Test Graphs/Reports .............................................................................................................................131

Advanced Options..............................................................................................................................134 Web Performance Advanced Options Intro ....................................................................................................134 Web Performance Sequencing ......................................................................................................................135 Generate Business Cases from Web Scripts .................................................................................................136 Import Export of Report Data .........................................................................................................................137

SUITE CREATION AND CONFIGURATION .............................................................. 138

Suite Creation ........................................................................................................................139 Suite Settings.........................................................................................................................141 Suite Environment Settings ...................................................................................................144

SUITE MAINTENANCE .............................................................................................. 145

Exporting a Suite ...................................................................................................................146 Importing a Suite....................................................................................................................147

Page 5: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 4

Modifying a Suite ...................................................................................................................148 Deleting a Suite .....................................................................................................................149

Suite Archiving.......................................................................................................................150

SUITE CUSTOMIZATION........................................................................................... 151

Customizing Test Results ......................................................................................................151

Integrating Third Party VCS...................................................................................................152 Integrating Third Party Version Control System ................................................................................153 Customizing Server Details UI...........................................................................................................156 Customizing Command Action ..........................................................................................................157 Customizing Explorer.........................................................................................................................159

SUITE DEBUGGING................................................................................................... 161

Suite Debugging ....................................................................................................................162 Configuring Log Levels ..........................................................................................................163

TUTORIALS................................................................................................................ 164

Web Testing Tutorial Introduction..........................................................................................164 Adding/Executing Web Performance Tests ...........................................................................165

Getting Started with Web Performance Tutorial ................................................................................166 Illustrating Creating Business Cases .................................................................................................169 Illustrating Data Parameterization......................................................................................................170 Illustrating Load Test Configurations .................................................................................................171 Illustrating Load Test Execution.........................................................................................................172

Adding/Executing Web Functional Test cases ......................................................................173 Getting Started with the Tutorial ........................................................................................................174 Testing GUI Objects...........................................................................................................................176 Illustrating Checkpoint Configuration .................................................................................................179 Illustrating For Construct....................................................................................................................184 Testing IFrame and Dialogs...............................................................................................................186

MIGRATION................................................................................................................ 187

FAQ............................................................................................................................. 188

FAQ: Introduction...................................................................................................................188 FAQ Web Functional Testing.................................................................................................189 FAQ Web Performance Testing.............................................................................................191

WEB FUNCTIONAL TIPS........................................................................................... 193

Page 6: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 5

WEB FUNCTIONAL TROUBLESHOOTING TIPS ..................................................... 198

WEB FUNCTIONAL KNOWN ISSUES....................................................................... 200

WEB FUNCTIONAL LIMITATIONS............................................................................ 201

WEB PERFORMANCE TIPS...................................................................................... 202

WEB PERFORMANCE TESTING KNOWN ISSUES ................................................. 206

WEB PERFORMANCE TESTING LIMITATIONS....................................................... 207

JAVADOCS ................................................................................................................ 208

GLOSSARY ................................................................................................................ 209

Page 7: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 6

WebTest Introduction AdventNet QEngine WebTest is an automated testing platform to test the functionality and performance of your Web sites and Web-based applications in both Linux and Windows platforms. The following are the various sections that are covered in the product documentation. Please choose the section, based on your requirement, to learn more. Quick Tour section gives an overview of the product, its architecture, and the technologies on which it is built. Further, it provides the contact information and various other products of AdventNet. Release Notes chapter explains features available with the current release of the product. Installation Guide explains the system requirements for installing and working with the product in different operating systems such as Windows and Linux. It describes the installation procedures to be followed when installing the product. It details the starting, reinitializing, and shutting down procedures. It also lists the third-party software that are bundled with the product and about the directory structure of the product. Web Functional Testing explains how to develop WebTest related scripts and test web pages. It also provides various configuration and customization options. Web Performance Testing explains how to develop Web Performance Test related scripts and run performance tests on web pages. It also provides various configuration and customization options. Suite Creation and Configuration explains how to set suite level properties and configure the test environment. Suite Maintenance explains how to maintain test data in a Version Control System, how to modify and replicate test data. Suite Customization section contains details on how to customize pre-validation condition, pre-validation action, validation, script configuration, sampling, report formats, etc. Suite Debugging section details on how to configure log levels and view execution logs for easy test debugging. Tutorials provides sample application test development procedure. Migration explains how to migrate to this version of the product from a prior version. FAQ contains common questions and doubts raised while using QEngine WebTest. Web Funcional Tips contains some of the important tips that will help you for web script development. Web Functional Troubleshooting Tips gives you tips on how to overcome difficulties you may face using QEngine Web Functional Test. Web Functional Known Issues and Web Functional Limitations lists out all the known issues and limitations of QEngine Web Functional Test. Web Performance Tips gives some useful tips to work with the product. Web Performance Known Issues and Web Performance Limitations lists out all the known issues and limitations of QEngine Web Performance Test. Javadocs gives the API documentation.

Page 8: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 7

Quick Tour Quick Tour: Introduction Quick Tour gives a quick overview of AdventNet QEngine and its architecture. Following are the topics covered in this book.

• About AdventNet QEngine

• QEngine Feature Matrix

• Quick Fact Sheet

• Web Functional Testing

• Web Performance Testing

• API Testing

• Functional Testing

• Performance Testing

• Web Services Testing

• Regression Testing

• Contacting AdventNet

• Contacting AdventNet

• AdventNet Sales

• Technical Support

Page 9: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 8

About AdventNetQEngine

What is AdventNet QEngine ? What is Unique about QEngine ? What Does QEngine Offer ?

What is AdventNet QEngine ? AdventNet QEngine is a powerful tool for automated testing of J2SE/J2EE applications that are Web based, SOAP or traditional client/server-based. Web application performance testing enables you to accurately emulate the traffic of thousands of users to identify and isolate performance bottlenecks and optimize the user experience within minutes. Web application functionality testing made much easier with Record and Playback actions performed on the HTML pages. With its regression testing capability it tests Nightly builds produced for the target systems in an unattended fashion. This proves the robustness of QEngine as the automated testing tool.

What is Unique about QEngine ?

First ever WebTest Tool to test your Web pages for both Web functionality and load testing in multiple browsers on multiple platforms.

Testing of Java API by sequencing method calls to vary the order in which the functionality is exercised for effective testing.

Java based and hence platform independence in testing. Define once and test anywhere. Single tool architecture with various testing capabilities saving maintenance and training costs. Provision for Custom Plug-ins offers great flexibility to handle unique user testrequirements. No programming/script proficiency required to develop test cases.

What Does QEngine Offer ?

Automatic recording of any Web Browser events and translate it into a clear and editable scripting language.

Easy-to-use script editor to edit the Python scripts. Application Map Editor to view and edit the map object properties (window and element

properties) of a web page.

Page 10: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 9

Ability to add checkpoints (GUI/Database/File checkpoints) to compare the expected outcome with the actual ones from the test run.

Requires no proficiency in Scripting Language. Point and click User Interface to create scripts. Data driven testing makes it possible to automate large number of tests with minimum effort. Support for testing multiple applications without too much additional resources. Unattended test execution allows test execution overnight, with accurate, repeatable results. Automated testing facilitates validation of major / minor releases, customer specials and

maintenance release. Distributed test execution ( test cases can be split and made to run on multiple test machines

substantially reducing the time needed for testing ). Automated filing of reports into bug tracking system reduces lot of manual effort. Comprehensive reports indicating application quality, test progress and status facilitates product

release and project management easier. Maintenance of MASTER report in database helps in establishing a base line for product quality. Command line scripts execution makes it possible to automatically kick off testing after each

build. Test data management through Concurrent Version Control System. Allows integration of third-party version control systems. Automated error recovery during testing. When unexpected error occurs during a test run moves to the next test run automatically.

Page 11: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 10

QEngine Feature Matrix

Platform Support

Features Windows (2000,NT,2003

and XP)

Linux (7.2

onwards) Solaris(2.8)

Web Performance Testing (Load Testing)

Server Monitoring to monitor CPU usage and memory usage for web servers. (in Windows/Linux/Solaris)

Modem Simulation

HTTP/HTTPS Protocol Support

Session Tracking (Cookies / URL Rewriting)

Distributed Load Testing

Centralized coordination and reporting of distributed load test results

Realistic Load Scenarios (Normal/Rampup)

Correlation (substituting values in dynamic data while playback)

Basic/Digest/NTLM Authentication Support

Page Validation (String/RegEx)

Visual watching of tests (request sent and response received)

Summary and Detailed Reports/Graphs

Virtual User Simulation with a provision to assign unique IP to each user.

Web Functionality Testing

Records User interactions on Browser as test scripts.

Page 12: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 11

Platform Support

Features Windows (2000,NT,2003

and XP)

Linux (7.2

onwards) Solaris(2.8)

Internationalization support

"Object-based "- recognizes controls symbolically rather than with raw screen coordinate.

Secure Recording on Password Fields.

Provision to add GUI, DB, and File checkpoints.

Data-Driven Test wizard to fetch script data from external source.

Jython based scripts enables definition of code control statements(IF or For Loops).

Provision to verify database tables, Files, page titles and HTML element properties.

Application Map File to View, modify attributes of objects.

Learns optional Object properties to ensure uniqueness of identification.

Powerful Script Editor for ease of Script Readability.

Support for Internet Explorer and Mozilla.

Key word driven test using pre-defined keywords to define actions for a test case.

Built-in Exception Handling and reporting facility.

Detailed reports indicating the failure for ease of analysis.

Ability to learn and add to map file in learn mode.

Java API Testing (White Box Testing)

Point and Click interface to construct complex Java objects for testing.

Provision to test API calls with valid and invalid parameters.

Page 13: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 12

Platform Support

Features Windows (2000,NT,2003

and XP)

Linux (7.2

onwards) Solaris(2.8)

Provision to generate API call sequences within a single test case to simulate end-user usage of API.

Provision to test application middleware based on the Enterprise JavaBeans (EJB) and RMI.

Provision to test Web Services based on SOAP (Service Availability and functionality).

Provision to fetch Test data - from a variety sources: CSV text, Database tables.

Provision to validate Method return values against DB data or File data.

Provision to validate method Return Objects using its bean properties .

Provision to test Java objects that are accessible only within Application Java Virtual Machine.

Provision to load classes from anywhere , also at run time (dynamic loading).

Java Application Functionality Testing (Black Box Testing)

Provision to test cold/warm start behavior of application.

Provision to test Date/Time sensitive functions of the application.

Test Application interoperability with multiple databases and platforms.

Test Applications Data Persistence functionalities during execution.

Automated Filing of failure reports into Bug Tracking System.

Email Alert provides notification via SMTP for test case failures.

Categorized Executive Summary reports based on Test Properties.

Java Application Performance Testing

Latency/Responsiveness Testing to measure response time of Critical Business Transactions.

Page 14: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 13

Platform Support

Features Windows (2000,NT,2003

and XP)

Linux (7.2

onwards) Solaris(2.8)

Provision to measure API response times along with metrics such as memory and CPU cycle utilization.

Centrally monitors and controls data collection tasks on different target systems and platforms.

Provision to incrementally add additional users to determine Load Capability of Web Applications.

Performance Testing of Distributed Components, such as Back-End, Middle-tier and Client.

Memory Analyzer Tool to collect method / object level memory , to identify memory hot spots

• searching/filtering of individual objects • summary/tabulation of the various types of objects • inward and outward references of an object • ability to produce heap dumps on demand; heap

dumps can also be triggered by out-of-memory situations.

Provision to monitor and record Application CPU , Memory and Thread utilizations.

Detailed reports and graphs to analyze and correlate response times with resource utilization.

Test performance both on static and dynamic resources (files, Servlets /JSP's)

Authentication and SSL protocol for use in testing secure sites

Regression Testing

Command Line interface to perform regression testing for all types of test.

Provision for automated daily build smoke test.

Built-in Error recovery for unattended testing.

Suite can be split and run on multiple machines to reduce testing time.

Web Interface for monitoring and controlling Suite execution.

Comparison reports - Daily regression reports against a master report.

Page 15: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 14

Platform Support

Features Windows (2000,NT,2003

and XP)

Linux (7.2

onwards) Solaris(2.8)

Transfer of reports to Central Server in Distributed Suite Environment.

Other useful features

Intuitive Point and Click Interface for test creation.

Macros to hold system-dependent values, paths to files to enable porting.

Import/Export utilities to transfer test data between multiple installations of QEngine.

Custom script plug-in allows use of any type of script ( like PERL , JYTHON etc ).

Third Party Plug-in support For Version Control System.

Third Party Bug tracking System can be integrated.

Single Tool for multiple platforms - Define tests once and run anywhere

Detailed Debug Information that includes reasons of failure , platform details.

Page 16: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 15

Quick Fact Sheet Quick Fact Sheet: Introduction Quick Fact Sheet gives a quick overview of the various testing techniques supported by AdventNet QEngine. The topics covered in this book are as follows:

• Web Functional Test Quick Facts • Web Performance Test Quick Facts • API Test Quick Facts • Functional Test Quick Facts • Performance Test Quick Facts • WebServices Test Quick Facts • Regression Test Quick Facts

Page 17: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 16

Web Testing Quick Facts

What is Web Testing ? What Does WebTest Offer ? How it Works ? WebTest Validation Modes Getting Started

What is Web Testing ? AdventNet QEngine Web Functional Test enables you to quickly test the functionality of your web sites and web-based applications using the Record and Playback capability in both Linux and Windows platforms. What Does WebTest Offer ? Provides an easy-to-use IDE to

Test HTML based Web applications in both IE and Mozilla browsers. Intuitive and easy-to-use IDE provides single point of control to record and playback browser

events, setup options, insert checkpoints, etc. Access to the elements of a web page from Python scripts. "Object-based testing"- recognizes controls symbolically rather than with raw screen coordinates. Key word driven test using pre-defined keywords to define actions for a test case. Standard session handling techniques, such as cookies and URL-rewriting is supported. Ability to view and edit the map object properties specific to each Web page. View HTML based reports that indicate the status of the test execution Ability to edit the Jython scripts through the script editor. Insert GUI, Database and File based checkpoints. Provision to add/edit/delete the scripts and test cases.

Page 18: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 17

How it Works ? AdventNet QEngine Web Functional Test consists of the following components:

WebTest Studio An IDE to record and playback browser events, create, modify and delete test scripts and application map file, and view test results.

Recorder Component Recorder Component records the browser events such as clicking a link or image, or submitting a data form in a Web browser. Such operations are captured by interrogating the Document Object model of the HTML. Script and Application Map Generator Script Generator generates simple script file that contains the sequence of recorded events. The script file can be easily edited and controlled using the script editor. The Application Map Generator generates the application map file which contains all the window and object properties of a web page which is to be validated.

Page 19: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 18

Playback Controller The playback controller reads the script file to interpret and replay the recorded events (via the Jython interpreter). The playback controller can run the scripts on any machine, regardless of screen or window size. Logger

Creates test-specific logs and records the outcome of each test. Logs get reinitialized at every test cycle, and include information about the test that was

executed. Logs contain messages that track the progress of the test suite. Reporter The reporter generates the test results. You can view the test results in the Test Results window. You can also view a summary of your test results. Web Tester Validation Modes AdventNet QEngine WebTest supports the following validation modes to verify the contents and GUI objects of your web application.

Document URL - Records and verifies the exact URL of the page. If the URL during playback differs from the one arrived at during recording an error message is displayed.

Element Properties - The selected element properties, such as text box, check-box, select, radio, image button, image mapping, image comparison and all other types of buttons in the document are recorded in the script. If any of the selected element properties of the base page differs during playback from the properties of the element recorded an error message is displayed.

Forms - The selected texts in the form are recorded in the script. If the selected text in the form differs during playback, an error message is displayed.

Text - The selected text in the document is recorded. If the actual text differs during playback from what was expected an error message is displayed.

Image - Verifies the image properties of the selected image in the current page. Once a image is selected, the image properties are recorded in the script. If these properties differ during playback an error message is displayed.

Element IDs - Properties of element IDs [if any are defined] are recorded. If the expected element ID properties differs during playback, an error message is displayed.

Table Cell Value, Column and Row Count - The selected table is recorded to verify the cell value at a particular (row, column), row count and column count. If the expected cell value, row count or column count differs during playback an error message is displayed.

Column Sorting - The column sorting (ascending or descending) specified in the GUI Table Checkpoint is verified during playback.

Page 20: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 19

Web Performance Testing Quick Facts

What is Web Performance Testing ? What Does Web Performance Testing Offer ? How it Works ? Getting Started

What is Web Performance Testing ? AdventNet QEngine Web Performance Test is a powerful, easy-to-use and affordable web load testing tool to quickly test the performance of your web sites and web-based applications. Its automatic analysis enables you to accurately emulate the traffic of thousands of users to identify and isolate performance bottlenecks and optimize the user experience within minutes. What Does Web Performance Testing Offer ? Provides an easy-to-use IDE to

Test HTML based Web applications in multiple browsers. Basic/Digest/NTLM Authentication Support. Distributed load testing and load balancing. Session Tracking with (Cookies / URL redirection). Virtual User Simulation with a provision to assign unique IP to each user. Ability to define Normal and Ramp-up type of workloads. Correlation (substituting values in dynamic data while playback). View HTML based reports to analyze the performance bottlenecks of web application and

optimize the user experience. Server Monitoring capabililty to monitor the CPU and Memory of Web servers for both

Windows/Linux machines.

Page 21: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 20

How it Works ? AdventNet QEngine Web Performance Test consists of the following components:

Web Performance Test Studio An IDE to record and playback load tests, create, modify and delete load test scripts, configure load tests and view load test results. Recorder Component Recorder Component records the URLs in a Web browser. The Recorder has the proxy unit which acts a proxy server for the browser to record the URLs clicked in the browser. The Script Generator generates simple script file that contains the sequence of recorded URLs. The script file can be easily edited and controlled using the script editor. You can also parameterize the recorded URLs using the Data Parameterization option to substitute values from database, CSV file or using cookies. Data Parameterization provides the ability to achieve true real-world emulation while running the performance test with support for dynamic cookie and session management.

Page 22: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 21

Playback Controller The playback controller comprises the Load Generator and Load Test Controller components. The Load Generator generates the work load as per the configured test parameters such as normal or ramp-up. The Load Test Controller interprets and replays the recorded URLs and measures the performance statistics for the configured test parameters. Logger

Creates test-specific logs and records the outcome of each test. Logs get reinitialized at every test cycle, and include information about the load test that was

executed. Logs contain messages that track the progress of the load test suite. Reporter The reporter generates the load test reports and graphs. The graphs include Bar, Pie, and Line graphs. You can view the test results in the Test Results window. You can also view dynamic reports during play and summary reports of your load test results.

Page 23: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 22

Java Application Functional Test Quick Facts

What is Java Application Functional Testing ? What Does Java Application Functional Testing Offer ? How it Works ? Getting Started

What is Java Application Functional Testing ? Java Appplication Functional Testing or blackbox testing allows verification of the applications behavior against the behavior stated in the functional specification. Test data are derived only from the test case specification without taking advantage of the internal structure of the program. What Does Java Application Functional Testing Offer ? Functional Test Engine non-intrusively tests the Java application for its functionality, such as

Start-up/Shutdown Database operations Log file entries Port status check License validity, etc. Application interoperability with multiple databases

under valid, invalid and inoppportune test conditions.

Page 24: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 23

How it Works ? QEngine Java Application Functional Testing consists of the following modules.

Java Application Functional Test Studio An IDE used to develop, modify and replicate functional test cases. The test cases developed using Java Application Functional Test Studio are sequenced into test runs by the test orchestration unit. This is to allow parallel execution of test cases. Application Controller

Application Controller automatically initializes, starts and stops the applications, sets up and releases test resources associated with each test case. Applications such as database servers and application servers may be controlled by the application controller while testing

Wrap Up operations required to bring the test environment to its default state is also performed by this module.

Application Validator Waits for the Application Under Test to reach a specified state or condition before proceeding the validation. Compares the expected and actual results to determine the result of a Java application functional test case and is primarily data driven where comparison values are kept external to the automated tool.

Page 25: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 24

Logger Module Creates test-specific logs and records which are the outcome of each test. Logs get reinitialized at every test cycle, and includes information about the tests that were executed. Logs contain messages that track the progress of the test suite. Reporter / Mailer Module

Creates summary, result and performance reports during testing. Comparison reports, status reports and test progress reports are also generated during

regression testing. Mailer module (if enabled) notifies test failures to the mail-id configured in the test case. This

module provides interface to third party bug tracking system.

Page 26: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 25

Java Application Performance Test Quick Facts

What is Java Application Performance Testing ? What Does Java Application Performance Testing Offer ? How it Works ? Getting Started

What is Java Application Performance Testing ? QEngine Java Application Performance Testing provides an integrated and centralized testing environment for distributed applications which works across networks and platforms. The QA professionals can measure the performance, control and coordinate the distributed test applications from one central test server. What Does Java Application Performance Testing Offer ? AdventNet QEngine Java application performance testing tool provides the following testing capabilities:

Distributed performance testing for multi-tier application. Fully automated and Interventionless performance testing enables repeatable and predictable

results. API performance testing. Measures the hit count and latency period of APIs for J2EE/J2SE applications. CPU and memory usage for the distributed components of the test application. Comprehensive reports such as graphical reports and tabular reports that summarise the count of

measurements, minimum response time, maximum response time, CPU and memory usage

Page 27: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 26

How it Works ? The components of QEngine Java application performance testing are:

Central Test Server and Test Agents

Central Test Server Test Server is the machine where AdventNet QEngine is installed. The Test Server reads the test cases developed using performance test studio and transfers the required files to all the target Test Agents. The Test Server centrally controls and monitors the flow of test execution in the distributed Test Agents. The Test Server contains the following components. Test Agent Controller The Test Agent Controller instructs the distributed Test Agents to automatically initialize, start, stop, setup and release test resources associated with each Test Agent. Test Agent Data Collector The Test Agent Data Collector collects the samples at regular intervals of time from the Test Agents and stores the collected data in the central database. Reporter Generates the consolidated reports (tabular and graphical reports) from the collected data stored in the database.

Page 28: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 27

Test Agents Test Agents are QEngine components that resides in the distributed applications such as application server, database server, client, middle tier, etc. The Test Agent provides a GUI to configure the application details. Following are the functions performed by the Test Agent:

The Test Agent performs the test operations in the configured application as instructed by the Test Agent Controller. At the end of the test execution performs wrap up operations to bring the test environment to its default state.

Creates the test-specific logs and records the outcome of each run and transfers the generated log files to the Test Agent Controller at the end of every run.

Page 29: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 28

Java API Test Quick Facts

What is Java API Testing ? What Does Java API Testing Offer ? How it Works ? Getting Started

What is Java API Testing ? Java API (Application Programming Interface) Testing or white box testing deals with testing of API calls (methods/functions) in isolation or in sequence to vary the order in which the functionality is exercised and to make the API produce useful results from these tests. The API Test Engine uses reflection to get the method details, gets the instance through JNDI / RMI look up or using constructors, creates arguments and executes the test and verifies if it is functional. What Does Java API Testing Offer ? Java API Testing is designed to verify method and function-level integrity of an API. Java API testing offers the following functionality:

To test the functionality of multiple methods (from same or different APIs) in Sequence Mode. To test the functionality of complex method arguments with multiple levels. To test the functionality of selected methods of an API in Isolation Mode.

with valid, invalid and inopportune parameter values for its arguments.

Page 30: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 29

How it Works ?

Java API Testing has the following modules: Java API Test Studio Java API Test Studio is an IDE used to develop, modify and replicate API test cases. Application Controller

Application Controller automatically initializes, starts and stops the applications, sets up and releases test resources associated with each test case. Applications such as database servers and application servers may be controlled by the application controller while testing.

To test the functionality of complex method arguments with multiple levels. Wrap Up operations required to bring the test environment to its default state is also performed by

this module. Java API Method Validator

Waits for the Application Under Test to reach a specified state or condition before proceeding the validation.

Compares the API return value (if any) with the configured value and records the result. Method validation can also be done by verifying entries in external source such as database or files to check the result.

Page 31: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 30

Logger

Creates test-specific logs and records the outcome of each test. Logs get reinitialized at every test cycle, and include information about the test that was

executed. Logs contain messages that track the progress of the test suite. Reporter/Mailer

Creates summary, result and residence time reports during testing. Comparison reports, status reports and test progress reports are also generated during

regression testing. Mailer module ( if enabled ) notifies test failures to the mail-id configured in the test case. This

module provides interface to third party bug tracking system.

Page 32: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 31

Java WebServices Test Quick Facts

Overview How it Works ? How to Test WebServices?

Overview AdventNet QEngine can test WebServices that expose their functionality via SOAP interfaces. QEngine automatically creates a SOAP message from a WSDL document and verifies the actual response with the expected response. Provides the following options to test WebServices:

SOAP Message Testing - SOAP messages are constructed with appropriate arguments and sent csv files to import data to construct soap messages. The responses to each SOAP request can be validated against the data sources such as, Database or files.

Service Functionality Testing - Tests if a WebService has been published appropriately and whether WebService consumers can bind to the published WebService.

How it Works ? The functionality of WebServices is tested using a black box approach. This means sending the relevant SOAP requests and checking if we get the right response back from the WebService. Testing of WebServices is no different from testing of any Java API. QEngine Java API Studio provides WSDL Stub Generator tool which is accessible from Tools menu. This tool translates the WSDL definition of a WebService interface into a Java Stub. Java stub methods are invoked with appropriate parameters to generate the SOAP message and the actual response is validated against the expected response. How to Test Web Services ? Refer here.

Page 33: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 32

Regression Test Quick Facts

What is Regression Testing Why Regression Testing? Machines in Regression Terms Used in Regression

What is Regression Testing ? Regression Testing is automated nightly build testing of daily builds. Nightly build testing is an ideal testing of software with a test suite. Why Regression Testing ?

Nightly builds when regression tested provide immediate feedback if any functionality is not working in the build.

Test results from nightly builds provide developers with feedback on how their test suite is progressing.

Tests consistency of an Application build over a prolonged time. Test results from nightly builds provide an overview of an Application's status.

Machines in Regression Automated regression is done across a minimum of five roles. The five roles include, a build machine, a regression manager, a regression server, a test machine, and a report server.

Build Machine Build machine provides a central coordinated compilation process to build the application to be tested. It maintains a clean, and controlled build environment for the compilation to take place within. On completion of build zip, the build machine sends the build to the regression manager. Regression Manager Regression manager manages the Regression Server(s) and its respective test machines. It receives the build zips from the build machine and notifies the registered regression server(s) about arrival of build zip. Regression Server Regression server receives the build zips from the regression manager, sends the build to the test machines on their request, reports the status of the test bed, and tracks the test progress in the test bed. Test Machine Test machines execute the regression tests. They have the required hardware / software configuration to test the application in the required test environment. They obtain the build from the regression server when ready, and execute the tests.

Page 34: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 33

Report Server Report server stores reports in user-specified database. Terms in Regression Test Group Let us consider an example to understand a Test Group. Say an application is to be tested simultaneously in both MySQL and ORACLE database. This can be achieved by simultaneously setting up a test group for both MySQL and ORACLE individually. The image below pictorially represents a test group.

To test the AUT in MySQL database a regression server, to receive the build to be tested in MySQL DB from the regression manager, a test machine(s) that has the test environment (MySQL database) is required. Here the regression server and the test machine forms the MySQL Test Group. To test the AUT in ORACLE database a regression server, to receive the build to be tested in ORACLE DB from the regression manager, a test machine(s) that has the test environment (ORACLE database) is required. Here the regression server and the test machine forms the ORACLE Test Group.

Page 35: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 34

Contacting AdventNet Contacting AdventNet AdventNet Corporate Headquarters AdventNet, the Internet Management Infrastructure Company™ is the leading provider of open, scalable, extensible and cross-platform management solutions for managing the Internet and e-commerce infrastructure. AdventNet solutions range in scope from optical and core internetworking management systems, Cable Modem, DSL, Storage, Security Management to E-Commerce Application Management. In each of these fast-growing markets, AdventNet is the leading provider of technology. Contact Information

Web Site http://www.adventnet.com

AdventNet Headquarters

AdventNet, Inc. 5645 Gibraltar Drive Pleasanton, CA 94588 USA Phone: +1-925-924-9500 Fax : +1-925-924-9600 Email: [email protected]

AdventNet Development Center

AdventNet India Development Center Private Limited , Sree Narayana Complex, No. 11, Sarathy Nagar, Vijaya Nagar, Velachery, Chennai 600 042 INDIA. Phone: +91-44-243-1215 Email: [email protected]

Page 36: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 35

AdventNet Sales For Sales and Product Licensing enquiries, please use the contact information available at the below given URL http://www.adventnet.com/contact.html. You can also mail us at [email protected] or call AdventNet headquarters at the following numbers.

• Telephone : +1-925-924-9500

• Fax : +1-925-924-9600

Note: Please request for Sales, when you call us at the above mentioned phone number.

Page 37: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 36

Technical Support One of the value propositions of AdventNet to its customers is its excellent support. To extend this commitment our support and maintenance programs are designed to enhance your experience with AdventNet products from development to deployment. During the evaluation phase, the support program is extended to you "free of charge". The hallmark of our maintenance and support is, rapid and knowledgeable response to customer queries, from our product developers-cum-support specialists. To enable this level of support, consistently and comprehensively, we have built an in-house Support Management System. This system enables automatic segregation of queries, authorized views, tracking and assigning of queries to the specialists, and many other advanced features. Mailing AdventNet Support Provided below is the table that gives the mail aliases for both product related and documentation related suggestions / issues.

Number Product Module / Service Mail ID 1 Any QEngine product related

suggestions (or) issues. [email protected]

2 Documentation related suggestions / issues for all AdventNet products.

[email protected]

Following is the support format to be enclosed, while sending support mails

Name Value

Version of the Product QEngine 4

Operating System Solaris/Win NT/Win98/Win2000/Linux etc.

JDK / JRE Version (JRE1.3 or JRE1.2 or JDK1.1.x) etc.

Browser (Netscape / IE)

Browser Version

Details of the Problem (a) The relevant log files (b) The steps to reproduce the problem.

Stack Trace ( if any )

Debug Messages or Thread Dumps

Log Files

Class path environment variable

Page 38: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 37

Feedback If you have comments or suggestions about the Product, Customization features, API design, Java documentation and Help Documentation, please feel free to mail us. While sending your feedback please include the following information.

• Topic Title. • A brief description of content (for example, are you reviewing step-by-step instructions that are

inaccurate, grammatical errors in a specific paragraph, information that requires clarification or more details, etc.).

• Your suggestion on how to correct/improve the documentation. Please send your messages to [email protected] Commercial To contact AdventNet, please visit http://www.adventnet.com/contact.html

Page 39: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 38

Release Notes • QEngine 5.3 Release Features

• Installation

• Known Issues and Limitations

• Help manual

• Technical Support

No Migration effort required to move from Release 5.0 to Release 5.3. Just Export and Import the test suites from Release 5.0 to Release 5.3. Note that you cannot move the test suites directly from a much previous version to the latest by skipping the in between releases. For example, assume you want to move from release X to release Z where release Y was made in between. Then, first move to release Y and then to release Z.

QEngine 5.3 Release Features New Features/Enhancements

Web Functional Testing

• Support to record and playback with the latest version of FireFox (1.0.6 and 1.0.7). • Provision to execute the script from the selected line in the script editor using the Execute From

menu option.

• Support to execute the script in steps (line by line execution) using the Execute Steps option.

• Provision has been made to add or edit the global variables using the Global Variables Editor UI to set and get global variables across scripts.

• New functions has been added in function generator which are as follows:

• selectItemWithIndex to select an item in a dropdown list using the specified index value.

• setGlobal() to set the value for the global variable.

• getGlobal() to get the value for the global variable.

• writeToCSVFile() to write CSV values in a CSV file. • Provision has been made to view the current execution line (highlighted in the script editor) when

calling one script from another using the callScript() .

• Support to enable or disable the recording of mouseover events using the RecordMouseOver menu option. By default, this is disabled.

• Provision has been made to view the screenshots generated for exception handling from the Test Reports page.

Web Performance Testing • Modem Simulation feature has been added to simulate the users connecting to the web server

with different bandwith.

• Provision to export the Web Performance report data as a csv file.

Page 40: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 39

Bug Fixes

• Issue with script does not pause for wait time in fast playback mode has been fixed. • Issue with internationalization for Japanese character in reports has been fixed. • Issue with recording of GUI Maps for table cell/element has been fixed. • Issue with option button and checkbox always showing the value as true even for the unselected

option has been fixed.

Installation

Installation Guide contains the details required for installing QEngine and setting up the initial environment.

Known Issues and Limitations

• Web Functional Known Issues • Web Functional Limitations • Web Performance Known Issues • Web Performance Limitations

Help Manual Detailed reference information is provided for every feature and sample illustrations in the form of tutorials are also available. Technical Support

Free technical support during product evaluation is provided which can help you to address your requirements and development related issues. Mail to [email protected] for technical help.

Page 41: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 40

Installation Guide WebTest Installation: Introduction This book explains the system requirements to install and work with AdventNet QEngine WebTest tool in different operating systems such as Windows, Linux, and Solaris. This book also details the service pack installation procedure, uninstallation of AdventNet QEngine, Licensing AdventNet QEngine, various startup options to start AdventNet QEngine, package structure and other third party softwares bundled with AdventNet QEngine. The topics covered in this book are as follows:

• Web Functional Hardware Requirements • Web Functional Software Requirements • Web Performance Hardware Requirements • Web Performance Software Requirements • Installing QEngine WebTest • Uninstalling AdventNet QEngine WebTest • Installing Service Pack • Uninstalling Service Pack • Licensing AdventNet QEngine • Starting AdventNet QEngine WebTest • Shutting Down AdventNet QEngine WebTest • Package Structure • Third Party Software

Page 42: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 41

System Requirements Web Functional Hardware Requirements The CPU and memory can supplement the performance of AdventNet QEngine Web Functional Test. The following table lists the minimum hardware requirements:

Operating Platform Processor Type Processor

Speed Memory Hard Drive Space (For Installation)

Hard Drive Free Disk Space

After Installation (To

Run)

Windows Pentium III 500 MHz 128 MB Ram or Higher 100 MB 50 MB

Linux Pentium III 500 MHz 128 MB Ram or Higher 100 MB 50 MB

Solaris Ultra-5 400 MHz 128 MB Ram or Higher 100 MB 50 MB

Page 43: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 42

Web Functional Software Requirements AdventNet QEngine Web Functional Test can run on different Operating Systems such as Windows NT, Windows 2000, Windows XP, and Linux. The additional software that must be installed to run it on each Operating System are explained in this page. Supported Platforms

• Windows NT4

• Windows 2000

• Windows XP

• RedHat Linux 6.2

• RedHat Linux 7.2 & above The following table lists the Operating Systems and Browsers on which AdventNet QEngine Web Functional Test can run.

Browsers Platforms Internet Explorer Mozilla Mozilla FireFox

Java

Windows NT4 IE 6.0 Mozilla 1.5, 1.6, 1.7, 1.7.2, 1.7.3, and 1.7.6

Mozilla FireFox 1.0 and higher

JRE 1.5.0

Windows 2000 IE 6.0 Mozilla 1.5, 1.6, 1.7, 1.7.2, 1.7.3, and 1.7.6.

Mozilla FireFox 1.0 and higher

JRE 1.5.0

Windows XP IE 6.0 Mozilla 1.5, 1.6, 1.7, 1.7.2, 1.7.3, and 1.7.6.

Mozilla FireFox 1.0 and higher

JRE 1.5.0

RedHat Linux 6.2 Not Applicable Mozilla 1.5, 1.6, 1.7, 1.7.2, 1.7.3, and 1.7.6.

Mozilla FireFox 1.0 and higher

JRE 1.5.0

RedHat Linux 7.2 Not Applicable Mozilla 1.5, 1.6, 1.7, 1.7.2, 1.7.3, and 1.7.6.

Mozilla FireFox 1.0 and higher

JRE 1.5.0

Note:

We recommend you to use only JRE 1.5.0. Any other version of JRE is not tested with QEngine and not recommended.

Solaris is not supported for Web Functional Test.

Page 44: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 43

Web Performance Hardware Requirements The CPU and memory can supplement the performance of AdventNet QEngine Web Performance Test. The following table lists the minimum hardware requirements:

Operating Platform Processor Type Processor

Speed Memory Hard Drive Space (For Installation)

Hard Drive Free Disk Space

After Installation (To

Run)

Windows Pentium III 500 MHz 128 MB Ram or Higher 100 MB 50 MB

Linux Pentium III 500 MHz 128 MB Ram or Higher 100 MB 50 MB

Solaris Ultra-5 400 MHz 128 MB Ram or Higher 100 MB 50 MB

Page 45: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 44

Web Performance Software Requirements AdventNet QEngine Web Performance Test can run on different Operating Systems such as Windows NT, Windows 2000, Windows XP, and Linux. The additional software that must be installed to run it on each Operating System are explained in this page. Supported Platforms

• Windows NT4

• Windows 2000

• Windows XP

• RedHat Linux 6.2

• RedHat Linux 7.2 & above

• Solaris 2.6, 2.7, and 2.8 The following table lists the Operating Systems and Browsers on which AdventNet QEngine Web Performance Test can run.

Platforms Java Windows NT4 JRE 1.5.0 Windows 2000 JRE 1.5.0 Windows XP JRE 1.5.0 RedHat Linux 6.2 JRE 1.5.0 RedHat Linux 7.2 JRE 1.5.0 Solaris 2.6 JRE 1.5.0 Solaris 2.7 JRE 1.5.0 Solaris 2.8 JRE 1.5.0

Note:

We recommend you to use only JRE 1.5.0. Any other version of JRE is not tested with QEngine and not recommended.

Any Web Browser is supported for recording URLs in Web Performance Test such as IE, Mozilla, Netscape, Opera, Konqueror, etc.

Page 46: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 45

Installation and Setup Options Installing QEngine WebTest AdventNet QEngine WebTest can be downloaded from the site www.adventnet.com. The following are the steps to be followed to install the same.

• Installing in Windows/Linux • Selecting the category of Installation

Installation in Windows/Linux Installation in Windows The AdventNet QEngine WebTest is available in a self-extracting EXE format and BIN format.

• For Windows, download the EXE file AdventNetQEngineWebTest_5_3_0.exe and install it by executing the EXE file.

Installation in Linux • For Linux, download the BIN file AdventNetQEngineWebTest_5_3_0_Linux.bin and

execute it.

Note:The bin can be extracted in any directory. ( QEngine doesn't prefer being installed in a directory like "Program Files" as there is a blank space in the directory name. )

Selecting the Category of Installation

The installation wizard prompts you to select the category of installation. The options displayed are as follows:

• Web Application Functionality Tester • Web Application Performance Tester • Both (Web Application Functional and Performance Tester)

Installing Web Functional Tester To install Web Application Functionality Tester for functional testing of web applications using the record and playback capability, choose the option Web Application Functionality Tester. Installing Web Performance Tester To install Web Application Performance Tester for performance or load testing of web applications, choose the option Web Application Performance Tester.

Page 47: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 46

Installing Both (Functional and Performance) To install both (Web Application Functional and Performance Tester) for functional and performance testing of web applications, choose the option Both (Web Application Functional and Performance Tester). Refer Licensing page for details on license policy

Page 48: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 47

Uninstalling AdventNet QEngine WebTest In Windows AdventNet QEngine WebTest can be uninstalled through the OS Control Panel Add / Remove Programs options. In Linux AdventNet QEngine WebTest can be uninstalled by removing the directory containing the files and directories extracted during installation. At the command prompt, type rm -rf AdventNet/QEngine to successfully uninstall QEngine.

Page 49: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 48

Installing Service Pack

• Using the Update Manager

• Viewing the details of the Service Pack AdventNet periodically provides Service Packs which provide new features (requested by the customers), fixes for certain bugs and document updates in the form of HTML files. Service Packs can be downloaded from the Web site, and updated into QEngine using the Update Manager tool. Using the Update Manager The Update Manager can be invoked by choosing Update Manager from the Options menu in the Launcher. Alternatively, you can invoke Update Manager by executing the file <QEngine Home>/bin/updatemanager.bat/sh. When you start the Update Manager, all the Service Packs that are already installed are listed and it provides the options to Install, Uninstall and view the details of any Service Pack.

Page 50: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 49

Warning : Ensure that no application is running when applying the Service Pack. This prevents any files used by the application from being over-written.

The steps to apply a Service Pack are as follows.

1. Start Update manager: Either run the updatemanager.bat/sh file in the <QEngine Home>/bin directory or by clicking the menu Options --> Update Manager or by clicking on Update Manager icon from the Launcher tool bar.

2. Select the Install option: Click "Install..." button. 3. Select the Service Pack file: Click the "Browse" button and select the Service Pack file (.ppm) to

be installed. 4. Install the Service Pack: You can go through the Readme file of the Service Pack by clicking the

"Show Readme" button and Install the Service Pack by clicking the "Install" button. If the Service Pack has some optional upgrades, it will prompt you to select the same if required and then continue.

5. View Readme and Logs: If you want to go through the Readme and the Logs created during the Service Pack update, check the "View Readme and Logs" option in the bottom-left corner of the screen and click the "Close" button. By default this option is checked. If you uncheck this option and close, the main screen is shown.

Note : On clicking the "Install" button, the tool checks whether there is enough space for the installation of the service pack. If there is not enough space, the tool informs the user about the lack of space. You must clear the space and then proceed with the installation.

Thus, Service Pack is installed in the application. Viewing the Details of a Service Pack You may want to know the details of an already installed Service Pack. The details are shown in two tabs namely, General and Readme. The details like the Service Pack name, its description, its size, its time of installation, and the list of files that are updated are shown in the General tab. While the readme file is shown in the Readme tab. The steps to view the details of a Service Pack are as follows.

• Start Update manager : Either run the updatemanager.bat/sh file in the <Product Home>/bin directory or select the Update Manager icon from the QEngine Launcher. The text area in the bottom of the screen lists all the Service Packs installed in the application.

• View the Service Pack details: Select the Service Pack whose details are to be viewed. Click the Details button to get the details dialog. It has the two tabs: General and Readme.

• Close the details dialog: Click the "Close" button to close the details dialog. Thus the main screen of Update Manager is shown.

Thus any Service Pack file content can be viewed. You can now continue with the screen (like viewing the details of another Service Pack) or quit the tool by clicking the "Exit" button.

Page 51: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 50

Uninstalling Service Pack • Overview

• Uninstalling the Service Pack

Overview You have the option of reverting the changes incorporated by the installation of a Service Pack. You can revert to the previous version of the Service Pack or to the base version of the application. Before you start the uninstallation process, make sure no application is running. Uninstalling the Service Pack The steps to revert to a previous version are as follows.

1. Start Update Manager: Run updatemanager.bat/sh from <QEngine Home>/bin directory.

Page 52: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 51

2. Select the service pack, which needs to be uninstalled, from the list. Click "Uninstall" button to proceed with the uninstallation.

3. The list of dependent service packs if any will be shown for your confirmation before proceeding with the process. Click Finish button to proceed.

Thus the specified Service Pack is uninstalled in the application. You can now continue with the screen (like uninstalling another Service Pack) or quit the tool by clicking the "Exit" button.

Note : To see the details of the installed service pack please refer to the Viewing the Details of a Service Pack section in Installing Service Pack document.

Page 53: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 52

Licensing AdventNet QEngine WebTest

• Overview • Procedure for Licensing • Upgrading from Trial to Registered • QEngine WebTest Licensing Scheme

Overview AdventNet QEngine WebTest provides an evaluation period of 15 days from the day of its installation, and it is a fully functional product even during this period. Once the evaluation period expires, you will be upgraded to the Free Edition automatically. The Free Edition provides all the features of Professional Edition, but test execution is limited and is without formal technical support. No license file is required for evaluation or free user. AdventNet will provide a registered user file after you purchase the product. Procedure for Licensing QEngine WebTest supports three types of licenses:

• Evaluation

• Free

• Registered

No license file is required for evaluation and free versions. To get the Registered or permanent license file you must contact our sales team at [email protected]. Upgrading your license from Trial (Evaluation) to Permanent

1. Start Launcher using StartTestToolkit.bat/.sh in <QEngine_Home> directory or Web Functional Test Studio or Web Performance Test Studio by running the StartWebFuncTestStudio.bat/sh or StartWebPerfTestStudio.bat/.sh file present under <QEngine Home>/bin directory.

2. From the "Help" menu, select the "Register" menu Item. The License Manager Screen will popup.

3. You must browse and provide the license file provided by AdventNet and click Open button.

4. Click Next, to view the user names to whom the license file is authorised. Select the User Name and click Finish. The licensing procedure will be completed and the product will get started.

Please contact AdventNet for any clarifications about Licensing of the product. QEngine WebTest Licensing Scheme AdventNet QEngine WebTest uses a unique licensing scheme. The details of the licensing scheme provided by AdventNet QEngine WebTest is given below:

• Evaluation License Scheme • Free License Scheme • Registered License Scheme

Page 54: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 53

Evaluation License Scheme

Test Tool Evaluation Licensing Restrictions

Web Functional Test Tool

The evaluation version of QEngine Web Functional Test Tool is the same as the registered version. Only restriction is that it is valid for 15 days from the date of installation after which it moves to the free edition.

Web Performance Test Tool

The evaluation version of QEngine Web Performance Test Tools supports a maximum of 100 users for both normal and ramp-up type of workloads. This is valid only for 15 days from the date of installation after which it moves to the Free Edition.

Free License Scheme The free version has the following restrictions :

Test Tool Free Licensing Restrictions Web Functional Test Tool Supports a maximum of three scripts per Suite and 50 lines per script.

Web Performance Test Tool

Supports a maximum of 20 users for normal and ramp-up types of workload.

Registered License Scheme The registered version has the following restrictions :

Test Tool Registered Licensing Restrictions Web Functional Test Tool No restrictions for registered users. Fully functional product.

Web Performance Test Tool - The registered licensing for Web Performance Test Tool supports the following types:

Type Number of Users Supported

Low Allows a maximum of 100 users for both normal and ramp-up type of workloads.

Medium Allows a maximum of 250 users for both normal and ramp-up type of workloads.

High Allows a maximum of 500 users for both normal and ramp-up type of workloads.

Very High Allows any number of users for both normal and ramp-up type of workloads.

Page 55: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 54

StartUp Options

WebFunctional Startup and Shutdown Startup Invoke the Web Functional Test Studio through the StartWebFuncTestStudio.bat/sh file in <QEngine Home>/bin directory. Shutdown

From Studio • Click on menu File -- >Exit. • Click on "hand like symbol" on the toolbar which stands for Exit from WebTest Studio. • Click on the close ( X ) icon of the studio window.

From Command Prompt Terminate the .bat/sh file.

Page 56: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 55

Web Performance StartUp and Shutdown Startup Invoke the Web Performance Test Studio through the StartWebPerfTestStudio.bat/sh file in <QEngine Home>/bin directory. Shutdown

From Studio

• Click on menu File -- >Exit. • Click on "hand like symbol" on the toolbar which stands for Exit from Web Performance

Test Studio. • Click on the close ( X ) icon of the studio window.

From Command Prompt Terminate the .bat/sh file.

Page 57: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 56

Packages Bundled Package Structure: Introduction Following are the topics covered in this book:

• Package Structure • Third Party Software

Page 58: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 57

Package Structure The directory structure and the files that are bundled with AdventNet QEngine WebTest are given below. All the files are extracted under <QEngine Home> directory. Directories : List of directories under < QEngine Home >.

Directory Name Description bin Contains all the batch files/scripts that are necessary to start the various

tools of the product.

conf Contains all the configuration files of this product.

examples Contains example Payroll System sample web application.

help Contains the help documentation.

html Contains launcher.properties file.

images

Contains the image files used in the product.

jre Contains jre 1.5.0

jars Contains the jars of QEngine.

lib Contains the .dll file to measure the CPU and Memory utilization of an Application.

projects Contains the configured Suites.

mysql Contains mysql related files.

template Contains the default configuration files for a new Suite.

xsl Contains XSL files to generate HTML reports.

Files : List of files under < QEngine Home >

COPYRIGHT Copyright file

setcommonenv.bat/.sh Contains QEngine's environment settings.

LICENSE_AGREEMENT License Agreement File.

README.html README file for the product.

Page 59: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 58

Third Party Software The following are the packages bundled with AdventNet QEngine WebTest: Package Name Version URL

JRE

Linux version

jre1.5.0

Solaris version

jre1.5.0

Windows version

jre1.5.0

Linux

http://java.sun.com/j2se/1.5.0/download.html

Solaris

http://java.sun.com/j2se/1.5.0/download.html

Windows

http://java.sun.com/j2se/1.5.0/download.html Activation.jar

1.0 http://java.sun.com/products/javabeans/glasgow/jaf.html

Mail.jar - http://java.sun.com/products/javamail/index.html JimiProclasses.zip 2.0 http://java.sun.com/products/jimi/

XML (jaxp:crimson:xalan)

Jaxp-version1.1 http://www.java.sun.com/products/xml

jython.jar 2.1 http://www.jython.org/download.html jcvs.jar 5.2.2 http://www.jcvs.org/download.html

Page 60: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 59

Web Functional Testing Web Functionality Testing AdventNet QEngine facilitates Web functionality testing which eases Client Side Automation at your end. The tool provided is called "WebTest Studio". You can record actions on web pages and play back those actions and also verify the data. Follow the below given links to learn how to use WebTest Studio to develop test cases and test web pages:

Topic Explains

Getting Started This section explains how to start WebTest Studio and also familiarizes you with its interfaces such as screens, menus and toolbar icons.

Web Script Development

This section explains how to record and replay actions on Web applications, possible configurations and customizations.

Tutorial This section provides sample illustration for web scripts development.

Tips This section provides you some useful tips and workarounds which will help in developing test cases, web scripts and lot more.

Page 61: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 60

Getting Started Getting Started - An Introduction Working with Web Test Studio You need to get familiar with the tool before starting any testing task. Follow the below given links for the same:

1. Starting Web Test Studio 2. Tool Interface - Menu Bar 3. Tool Interface - Tool Bar

Page 62: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 61

Starting WebTest Studio WebTest Studio is an IDE to record browser events, create test scripts, test cases, check the properties of specific objects in your Web Browser and playback the recorded events. You can start WebTest Studio from command line ( .bat / .sh ) file named "StartWebFuncTestStudio.bat/sh" present in <QEngine>/bin directory. In case of WebTest tool bundled with the complete QEngine suite of tools, you can also invoke it via the launcher. Tool Interface The initial screen of the WebTest Studio will look as shown below:

Page 63: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 62

Tool Interface - Menu Bar The following menus are available in Web Performance Test Studio Menu Bar:

• File • Edit • Record • Play • View • Settings • Tools • Help

File The following functions can be performed using the File menu:

Menu Item Function New Suite To create a new Suite. Open Suite To open an existing Suite. Save Suite As To save Suite in another name. Delete Suite To delete a Suite. Close Suite To close a Suite. New Script To create a new script. Save Script To save a script. Save Script As To create a copy of the script and store under another name. Delete To delete a script. Exit To exit Web Performance Test Studio. Edit The following functions can be performed using the Edit menu.

Menu Item Function Editor To perform script editing operations such as cut, copy, paste etc. Find To search for a script or test case on the Suites Tree. Clear Output and Error To clear the prints in the output and error panel.

Disable Sequence To disable test sequencing. Disable Filter To disable test filters. Suite Level GUI Map To create application map file (global map file) for the entire Suite.

Page 64: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 63

Control The following functions can be performed using the Control menu.

Menu Item Function Browser Preferences To set Browser options (IE or Mozilla).

Launch Browser To launch the IE Browser for testing a specific web application. Start Recording To start recording the events or actions performed in the web application. Stop Recording To stop recording the events or actions performed in the web application.

Record MouseOver To enable the recording of mouseover events (mouseover events are recorded in the script, if the HTML page has called the onMouseOver()). By default, recording of mouseover events is disabled.

Insert CheckPoint To insert Single property checkpoints or to check a single property of an object in your web browser.

Insert Test Case To insert test case that comprises of multiple properties of checkpoints for text, element and table objects in a web page.

Insert Function To insert built in functions. Clear Logs and Reports

To delete the test logs and test reports generated during the testing operation.

Play The following functions can be performed using the Play menu.

Menu Item Function Play Settings To set Play options such as normal or fast mode Execute Test To execute a particular test case or playback the browser events Execute UpTo To execute up to the selected line in the script editor. Execute From To execute from the selected line in the script editor.

Execute Step To execute the script in steps (line by line) i.e., click Next button in the StepExecution screen to execute each line in the script.

Update Test To update the Web element properties in the test cases in case they have changed since the last execution.

Stop Test To stop the execution of the seletected script. Clear Output and Error To clear the output and error panel.

Clear Logs and Reports

To delete the test logs and test reports generated during the testing operation.

View The following functions can be performed using the View menu.

Menu Item Function Test Results To view the test results of each test case executed. Summary Report To view the summary report of the test cases executed.

Settings The following functions can be performed using the Settings menu.

Page 65: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 64

Menu Item Function

Exception Handling To handle exceptions during play.

Suite Configuration

To define the settings of a Suite : Test Case Structure, Severity Scale, Test Properties, Test Scripts, Initialization, Test Result, Test Reports and Bug Tracking

Environment Settings To define and set environment independent values, JDK Home, etc.

Classpath Settings To set the classpath to execute the functional test cases. Compilation Settings To set the Java home for compiling user classes.

Debug Level To determine what prints have to be displayed in the Output and Error panel.

Global Variables Editor

To add or edit the values for the global variables using the Global Variables Editor screen to set and get global variables across scripts.

Tools The following functions can be performed using the Tools menu.

Menu Item Function

Data Configuration To parameterize lines in test scripts where the values are substituted at runtime from an external database, CSV file or using user-defined variable substitution option.

Merge GUI Map To merge all local map files into one common file that will be used globally. Link Checker To test hyperlinks present in web pages of internal as well as external sites.Version Control To invoke the CVS Tool. Import or Export To import or export a suite. Suite Filter To create suite filters Register To register the product as a permanent license holder.

Help The following functions can be performed using the Help menu.

Menu Item Function Contents To invoke complete Help documents. Technical Support AdventNet Contact Details.

About About QEngine.

Page 66: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 65

Tool Interface - Tool Bar The function of each toolbar is as shown in the table below: Toolbar Icon Function

Invokes the Suite Creation screen used to create a new Suite.

Opens defined Suite.

Invokes the Script Creation screen used to create a new script.

Saves a modified script.

Deletes a Suite, script or test case selected from the Suites Tree.

To launch the IE Browser.

Starts recording the browser events. The recorded events are written in the script selected from the Suites Tree.

Stops recording the browser events.

Displays a dialog to insert checkpoints to check the properties of specific objects in your web browser.

Invokes Test case configuration screen

Invokes Insert Function screen

Data Configuration screen to parameterize lines in your test script. Ability to fetch values from an external database, CSV file and Variable substitution option.

Starts Test Execution.

Stops Test Execution.

Page 67: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 66

Toolbar Icon Function

Displays report of executed test.

Clears the Output and Error panel in the Test Studio.

Finds a script or test case on the Suites tree.

Exits the Studio.

Opens up help documentation in a browser window.

Page 68: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 67

Web Script Development Web Script Development Web Application testing is a simple "Record and Playback" operation. Recorded information is stored in "webscripts" that can be played back when needed. Testing can be done in 3 simple steps: Step 1: Creating the test suite Step 2: Recording Web Application Events Step 3: Playback

Web script development follows Jython based script writing. Hence, you need to follow the syntax and semantics of Jython while customizing the web scripts.

Many other options are available that will help you in dealing with complex web testing. Also, some configuration and customization options are available. Follow the below given links to know more about them:

• Viewing Results

• Inserting Functions

• Inserting Checkpoints

• Inserting Test Cases

• Updating Test Case

• Editing Web Scripts

• Chaining the scripts

• Editing Application Map File

• Web Scripts Parameterization

• Handling Exceptions

• Web Script Filtering

• Web Script Sequencing

• Configuring Suite Preferences

• Configuring Map File Mode

• Customizing Web Client Reports

• Command Reference

Page 69: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 68

Creating the test suite A test case is created under a defined test suite. The first step test development involves is creating or selecting a suite. Created/Selected suite stores test information in an organized manner, thus supporting test design, test execution, test reporting and test debugging. Refer "Suite Creation" for more details.

Page 70: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 69

Recording Events Once you have created a suite, you will see the suite name displayed in the tree in the left panel of the Studio's main screen. Under that you will see a node called "webscripts". Each webscript (also called as script) stores the action statements for the actions that you perform on the HTML pages during testing. Find below the steps for recording:

• Add New Script

• Launch Browser

• Start Recording

• Stop Recording

Add New Script

Click File->New Script menu item from the menu bar or click the tool bar option . In the dialog, specify the name of the new script file and click the Save button. The script file is by default saved in <QEngine_Home>/webscripts/<script_name> directory. You can also save the script file in any other directory under <QEngine_Home>/webscripts/ directory (by creating a new directory). Launch Browser

Click Control->Launch Browser menu item from the menu bar or click the tool bar option . The default browser will be launched. You can change your preference. Please refer to the context sensitive help to select the preferred browser. Specify a valid URL in the launched browser. Start Recording Web Page Events To record the events, click Control->Start Recording menu item from the menu bar or click the tool bar

option . The list of actions performed in the web page are recorded in the newly created script file. The script file can be viewed in the script editor. Refer to "Commands Reference" for description of the commands and functions found in the web script.

_QE_BLANK Edit object and Text area with blank (spaces) are recorded as _QE_BLANK in the web script. setText("username","_QE_BLANK",2) On playback, Web Test studio understands it as blank (spaces) and sets the same in the object. Hence, note that _QE_BLANK is a reserved word and should not be used as a value that can be set in an edit object or text area.

Page 71: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 70

_QE_DESELECTALL

On deselecting the last selected item from a multi select list box, Web Test Studio records the action with a _QE_DESELECTALL. selectItem("multi","_QE_DESELECTALL",2) On playback, Web Test studio understands it as deselection of the last item. Hence, note that _QE_DESELECTALL is also a reserved word.

Stop Recording Events To stop recording events, click Control->Stop Recording menu item from the menu bar or click the tool

bar option .

Page 72: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 71

Playback Playback of the recorded steps is done by executing the web scripts. You have some choices for the same as explained below:

• Executing from Studio • Executing the Entire Script • Executing Selected Lines in a Script

• Execute Upto • Execute From • Execute Steps

• Executing all the Scripts in a Suite • Executing from Command Line

Executing from Studio Executing the Entire Script

1. Select the script from the Suites Tree.

2. Choose the toolbar icon or choose Play->Execute Test menu item.

3. This executes the test cases (if any) under the selected script or executes the script (replays the browser events).

Executing Selected Lines in a Script

Execute Upto 1. Select the script from the Suites Tree and place the cursor in the specific line upto which

the test execution has to be performed.

2. Choose Play->Execute UpTo menu item.

3. This executes the test cases (if any) under the selected script and executes the script upto the specified line (replays the browser events upto the specified line).

Execute From

1. Select the script from the Suites Tree and place the cursor in the specific line from which the test execution has to be performed.

2. Choose Play->Execute From menu item.

3. This executes the script from the specified line (i.e., replays the browser events from the specified line).

Note: While using the Execute From option, ensure that you have placed the cursor in the script in the setWindow() statement which is before the required line from which the execution must start. This will enable the successful execution of the script.

Page 73: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 72

Execute Steps

1. Select the script from the Suites Tree and place the cursor in the specific line from which the test execution has to be performed.

2. Choose Play->Execute Steps menu item. This will execute the script line in which the cursor was placed and will display the StepsExecution screen. This screen shows the Current Line Number and Execution Status as Success or Failure based on the status f the script line execution.

3. Click the Next button to proceed to execute the next line in the script. You can continue with the script execution by clicking the Next button for each line in the script.

4. To stop the script execution, click the Stop button in the StepsExecution screen. Executing all the Scripts in a Suite

1. Select the Suite on the Suites Tree and select the webscripts directory.

2. Choose the toolbar icon or choose Play->Execute Test menu item.

3. This executes all the scripts and the test cases in a script under webscripts node. Executing from Command Line Playback of the web scripts from command line is equivalent to performing Regression testing. To do so, you need to be familiar with web script sequencing. Refer "Web Script Sequencing" for details on how to sequence the web scripts and then execute them.

Page 74: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 73

Viewing results

• Test Results

• Summary Report Test Results To view the result of the script execution, choose View->Test Results menu item. This displays the report in the Logs & Reports panel as shown below:

Page 75: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 74

Summary Reports The Summary Reports can be viewed under < QEngine Home > / projects / <Suite Name> / webreports /<Month>_<Date>_<Hour>_<Minutes> directory. TestCase report

Page Property Report

Page 76: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 75

Inserting Functions • Introduction

• Using the Function Generator

• Sample Illustration Introduction Web Test Studio provides Built-in functions for various operations. You can type these functions manually in the script but this may result in syntax error and you may find it difficult to debug. To facilitate non erroneous insertion, an utility called "Function Generator" is made available.

You can use this utility only during the recording mode. Otherwise, you need to type the functions manually.

Using the Function Generator Refer the following link to learn about the tool usage. Sample illustration Assume you want to read the property "name" of a text box named "text_1" and use the property's value in the script then you can do the following:

1. Choose the function "editGetInfo". 2. Click on Browse button and select the Edit object from the web page. 3. Choose the property "name" from the Property list box. 4. Click on the button "Paste".

This will insert the function in the script as follows: result = editGetInfo("text_1","name")

Page 77: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 76

Inserting Checkpoints • Introduction

• Creating Single Property Checkpoint

• Sample Illustration

• Expected Result

Introduction A checkpoint helps you in verifying the properties of an object in an HTML page. Assume a scenario where value is retrieved from the database and populated in a text box and you want verify if the value is "XYZ". In such a case, you can insert a checkpoint statement which while replaying the test script, will verify the conditions that you have specified in the checkpoint configuration. In short, checkpoints help you for result verification. Web Test Studio facilitates both single property check points and multiple property (complete object's) checkpoints. Multiple properties checkpoints are stored as a "Test Case" in XML format. This document explains "Single Property Checkpoint" configuration.

You can use this utility only during the recording mode. Otherwise, you need to type the functions manually.

Creating Single Property Checkpoint Refer the following link to learn about the tool usage. Sample illustration Assume you want to check if the value in the text box named "user_name" is "Peter" then you can do the following:

1. During recording, choose the menu "Control --> Insert CheckPoint". 2. Click on the object "User name" in the HTML page. 3. Choose the property "value" from the Properties list box. 4. Enter the Value as Peter. 5. Click on the button "Paste".

This will insert the checkpoint in the script as follows: editCheckInfo("user_name","value","Peter") Expected Result On script execution, the single property checkpoint will be evaluated and the result can be viewed via "View --> Test Results" menu or "View --> Summary Report" menu as shown below: In the "View --> Test Results" screen, click on the tab "Test Reports". You will see the Script name and the Case Id displayed and the result adjacent to the case id. Here, Case Id refers to each Single Property Checkpoint that has been configured.

Page 78: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 77

Similarly, in the Summary report page, click on "TestCase Report" link.

Page 79: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 78

Inserting Test Cases

• Introduction • Creating Test Cases • Viewing Test Result

Introduction A test case is nothing but a multiple property checkpoint configuration. Each test case contains the object properties and the values to which they are compared with. The property names and the compared values are stored in a separate XML file for each test case under the directory where the webscript is stored. Similar to Single property checkpoints, you can define test cases during recording, select the properties and specify the comparison values. Creating Test Cases To create test cases, click Control->Insert Test Case menu item from the menu bar or click the tool bar

option . The "Test Case Configuration" dialog is displayed. 3 types of test cases (checkpoints) can be developed:

1. GUI Checkpoint 2. Database Checkpoint 3. File Checkpoint

Viewing Test Result On script execution, the single property checkpoint will be evaluated and the result can be viewed via "View --> Test Results" menu or "View --> Summary Report" menu as shown below: In the "View --> Test Results" screen, click on the tab "Test Reports". You will see the Script name and the Case Id displayed and the result adjacent to the case id. Here, Case Id refers to each Single Property Checkpoint that has been configured. Similarly, in the Summary report page, click on "TestCase Report" link.

Page 80: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 79

Page 81: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 80

Updating Test Case If the properties of the Web elements have undergone a change between recording phase and playback phase, this feature helps in updating the modified properties of those elements. This kind of a change is normally possible in environments where the client screens undergo drastic changes between one release and another. Hence, you can run the test cases in the Update mode to update the element properties.

1. Select the Suite on the Suites Tree and select the webscripts directory.

2. Choose Play->Update Test menu item.

3. This executes all the scripts and the test cases in a script under webscripts node and also updates the properties of the recorded elements. You can view the updated properties in the test case configuration screen.

Page 82: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 81

Editing Web Scripts

• Introduction • Inserting programming constructs • Data Parameterization for Dynamic substitution • Using Global Variables • Inserting Built-in Functions

Introduction You can manually edit the webscripts to insert,modify or delete script statements. But ensure that Jython language syntax and semantics is not violated.

Also, click on the icon in the toolbar or choose "File --> Save" to save the script updates. Some of the common editing that you may do are as follows: Insert programming constructs You need to manually insert the programming constructs such as for, if, while etc after doing the bare minimal recording of the web page. A skeletal script will be generated. Then you can add the programming statements as desired. Refer the document "Illustrating For Construct" for a sample. Replacing script text via variable substitution You can select a text in the script and choose to substitute values dynamically at runtime when the script is executed. The values can be retrieved from any source such as a database, CSV file, environment variable, user defined variable etc. For more details, refer Data Configuration. Using Global Variables You can set or get values in a global variable across scripts or from one script to another while using the callScript() or when executing multiple scripts in a Suite. Using the Global Variables Editor screen, you can configure the values for the global variables. You can setGlobal("<variable_name>","<variable_value>") in script1, and in script10 you can get the global variable value using getGlobal("<variable_name>"). Using the Function Generator UI invoked using Control->Insert Functions menu item, you can insert these functions in the script. The syntax and usage for setting and getting global variable values across scripts are as follows: Syntax: setGlobal("<variable_name>","<variable_value>") getGlobal("<variable_name>") Usage: The usage of setGlobal() and getGlobal() functions are given below:

Page 83: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 82

Example: 1 setGlobal("qehome","file:\\C:\test\WebTest\QEngineWebTest\examples\payrollsystem\index.html") You can get the variable value in your script as below getGlobal("qehome") or store it in a variable as myhome=getGlobal("qehome"). Example: 2 Assume you have three scripts script1, script5 and script6. script1 sets the global variable values and in a for loop using the callScript() calls the scripts (script5 and script6) from where the global variable value is accessed using the getGlobal() to set the values in the setText() statements. Example Script (script1) sets the global variable values and calls the scripts (script5 and script6) using the callScript().

useLocalMapFile()

launchApplication("about:blank")

changeURL("file://$QE_HOME/examples/payrollsystem/index.html",2)

setWindow( "AdventNet Payroll System",2)

clickElement("AdventNet ",2)

clickList("View",2)

setWindow( "AdventNet Payroll System Package - Form to View Employee Details",2)

initCSV("$APPHOME/test.csv")

for i in range(0,2):

setGlobal("name",getCSVValueAt(i,1))

callScript("script5","script5")

for i in range(0,4):

setGlobal("dept",getCSVValueAt(i,2))

callScript("script6","script6")

closeWindow( "AdventNet Payroll System Package - Form to View Employee Details",2)

Example Script (script5) being called by script1 uses the getGlobal() to get the global variable value and set it in the setText() statement.

useLocalMapFile()

setWindow( "AdventNet Payroll System Package - Form to View Employee Details",2)

setText("yourname",getGlobal("name"),2)

Page 84: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 83

Example Script (script6) being called by script1 uses the getGlobal() to get the global variable value and set it in the setText() statement.

useLocalMapFile()

setWindow( "AdventNet Payroll System Package - Form to View Employee Details",2)

setText("dept",getGlobal("dept"),2)

Insert Built-In Functions You can also insert some of the built-in functions.

Page 85: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 84

Chaining the Scripts This feature lets you achieve the following:

1. Invoking other web scripts from the current one. 2. Controlling the order of execution of the web scripts that need to be played.

Web Test Studio provides the following built-in functions to do so:

• callScript • callScriptUpto

callScript

This will transfer the execution control to the called web script. The web script to be called and its location are specified as arguments. callScript("<Web Script Name>","<Web Script Path>") For example, assume the web script named test.wcs is present under webscripts/case1/test folder, then callScript is to be written as callScript("test","case1/test").

callScriptUpto

This will transfer the execution control to the called web script and execute up to the line number specifed. The web script to be called, its location and the line number are specified as arguments. callScriptUpto("<Web Script Name>","<Web Script Path>",Line number) For example, assume the web script named test.wcs is present under webscripts/case1/test folder and you want to execute up to script line numbered 120, then callScriptUpto is to be written as callScriptUpto("test","case1/test",120).

Points to remember

• While specifying the Web Script Path, omit the webscripts folder. • Use forward slash ( / ) to specify the path. • If the called web script contains stop() then the calling script (till the parent script) will

also be stopped. For example assume ScriptA calls ScriptB and that in turn calls ScriptC. ScriptC contains stop() command. Then, all the three webscripts will be terminated.

• callScript() and callScriptUpto() can be written anywhere in the web script but it should be ensured that the parent webscript's flow is not disrupted. Assume the following:

• ScriptA calls ScriptB. • ScriptA contains

• launchApplication("about blank")

Page 86: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 85

• changeURL("www.google.com") • setWindow("google") • callScript("ScriptB","ScriptB") • setText("searchtext","web testing")

• ScriptB contains • launchApplication("about blank") • changeURL("www.yahoo.com") • setWindow("yahoo") • setText("searchtext","functional testing")

This shows that after ScriptB is executed, when control returns to ScriptA the active window will not be "google" due to which setText("searchtext","web testing") will fail. This shows that callScript has been wrongly placed. You can handle such cases by either inserting another changeURL("www.google.com") and setWindow("google") after callScript("ScriptB","ScriptB") or by inserting these at the end of ScriptB.

• Test case results/reports will be generated under the parent web script directory only even if several other scripts had been invoked from it. But the script actions and test case result of the called scripts will be reported with the actual script name in the "remarks" column in addition to the actual remarks. For example, ScriptA calls ScriptB and that in turn calls ScriptC, then the test case results will be available under ScriptA only.

• Report will be generated only when the parent web script is executed completely. • If the called web script gets interrupted due to call to stop(), map_file_ not_found error ,

script_exception ,popup_handling error ,web_exception_handling etc., then the parent web script will not proceed further and it will be reported as CHILD_SCRIPT_FAILED.

Page 87: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 86

Editing Application Map File Application map file (GUI map) contains the details of the html objects recorded. These details are required for the identification of the object. In case you want to edit any of these details , select a script file from the Suites tree and right-click. A Popup menu is displayed. Choose Edit Application Map menu item. A dialog will be shown as follows:

You can see in the left tree the parent node being the window object and the children nodes being the objects belonging to that window. On clicking the child node, you can see its properties displayed whose value are editable.

For more details, refer the document Editing Application Map Properties.

Page 88: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 87

Web Scripts Parameterization You can add variables or parameterize lines in your test scripts which will help in substituting the required data either from a comma separated values (CSV) file, database or user defined constants etc. Data Configuration screen helps you to parameterize. To invoke the Data Configuration screen, select a text from the script editor and click the Tools->Data

Configuration menu item or click the toolbar option . This displays the Data Configuration screen. For more details, refer Data Configuration.

Note: While selecting the text from the script editor, select the entire string including the quotes.

Page 89: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 88

Handling Exceptions

• Overview

• Types of Exceptions

• Handling Exceptions Overview Exceptions are part of software engineering but we need to have efficient means to handle them so that the normal execution of the software continues with minimal effect on the code or the data. Web testing also handles such situations and facilitates you with options so that you can decide what to do when exceptions are encountered. Types of Exceptions Web Test module allows you to handle the following types of exceptions. PopUp Exceptions

This refers to the unexpected popups that popup during the playback of the webscripts but were not encountered during the recording phase. For e.g. assume you are testing a page using which you create a new user account and the user related details are populated in the database. If the user account already exists, then an alert popup is displayed saying "User details already exist". During recording the first time, you enter a new user details and hence the alert popup is not displayed. But when the webscript is played back, the automated test script will try to add the same user details and the alert popup will be displayed.

Web Exceptions

This refers to exceptions such as Page/URL not found when trying to access a page in the internet. Assume you had recorded the page at http://www.abcd.com/index.html but that page does not exist anymore. Hence during playback, Page/URL not found exception is encountered.

Script Exceptions

This refers to the syntactical incorrectness in the webscript. For e.g. assume you are inserting a built in function manually and instead of linkGetInfo() you have typed linGetInfo().

Object Exceptions

This refers to a variety of exceptions related to the HTML objects in the page under recording. For e.g. during recording a HTML Text object named user_name was recorded but during playback it was not found as the page has been changed. In this case, ELEMENT_NOT_FOUND exception will be thrown.

Handling Exceptions

Popup and Web Exceptions

Web Test studio provides "Exception Handling" dialog where you can specify what needs to be done when these kinds of exceptions are encountered. Refer Exception Handling for details.

Page 90: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 89

Script and Object Exceptions You need not handle these explicitly. Web Test takes care of logging these in the log files and continue the test case execution as appropriate. You will be able to see these in the log window of the studio.

Page 91: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 90

Internationalization • Overview • Using I18N Resource Editor tool for Internationalization • Playback of Localized Web Application

Overview QEngine Web Functional test tool supports multi-byte character sets allowing customers to verify localized versions of their applications. Multiple language testing with a single script is possible. I18N tool bundled with the product allows users to build a phrase dictionary from US English GUI Map. This allows users to add the required equivalent phrase for localised testing. This means, the properties in the map file corresponding to the recorded scripts can be internationalized to the desired locale. AdventNet QEngine uses English language of United States locale, as default. Using the Internationalization feature, you can replace the English language words and phrases used in the map file corresponding to the webscript files with the language of your choice. Using I18N Resource Editor Tool for Internationalization The steps to internationalize using I18N Resource Editor tool are as follows:

• Invoke the I18N Resource File Editor using the I18NEditor.bat/.sh file in <QEngine_Home>/bin directory. This displays the I18N Resource File Editor tool.

• Choose "File->New" menu item from the menu bar. This displays the Open Suite screen. • In this screen, the Available Suites combo box displays the Global option and all the available

suites in <QEngine_Home>/projects directory. The Global option is provided to list the keywords from all the map files corresponding to all the suites in <QEngine_Home>/projects directory. To list the keywords from the map file specific to a particular suite, select the required suite.

• Choose the desired language and country from the Language and Countries combo box. • Click OK. This will display all the keywords from the map file for the selected suite or keywords

from all the map files for all the suites (if the Global option is chosen). • Specify the property value for the property name in the desired locale. • Click "File->Save" or "File->Save as Text" menu item to save the file. If the Global option was

chosen, this will save the global EnglishToNative properties file named GlobalEnglishToNative_"<language_country>".properties file in <QEngine_Home>/conf directory. If a specific suite is chosen, then the EnglishToNative properties file corresponding to the selected suite is stored as "<Suite_Name>"EnglishToNative_"<language_country>".properties file in <QEngine_Home>/projects/<Suite_Name>/conf directory.

To know the details of the various operations that can be performed using the I18N tool, please refer to the document Using I18N Tool. Playback of Localized Web Application Following are the steps to playback the localized Web application:

• To enable the playback of the recorded script in the desired locale, choose "Play->Play Settings" menu item from the menu bar.

• In the Play Settings screen, choose the Locale check box and choose the desired language and country from the Language and Country combo box.

• Click OK. This will enable the playback in the selected locale. • Now, click the Play->Execute Test menu item to playback the localized Web application.

Page 92: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 91

Using I18N Tool • Overview • Starting the Tool - A Default view of the Editor • Operations performed using Menu Options

Overview The mechanism to internationalize the window and element properties in a map file corresponding to a script and playback the internationalized webscript is facilitated by a tool namely I18N Resource File Editor. This tool is accessible from <QEngine_Home>/bin directory. It is equipped to edit the .properties file such as "<Suite_Name>"EnglishToNative_"<language_country>".properties file or GlobalEnglishToNative_"<language_country>".properties file. The text files ( EnglishToNative.properties ) file contain the list of keywords from the map file as "keys" for which the corresponding internationalized word are specified as "values". Starting the Tool - A Default view of the Editor To start the I18N Resource File Editor tool, execute the I18NEditor.bat/sh tool from <QEngine_Home>/bin directory. The I18N Resource Editor tool displays a table containing two columns viz. Property Key and Property Value. The text that is specified for the Property Key column is the property name in the map file corresponding to each script in the suite AdventNetPayrollSystem (in English), that is to be internationalized while that in the Property Value column is the internationalized word. You can also select the required "<Suite_Name>"EnglishToNative_"<language_country>".properties file or the GlobalEnglishToNative_"<language_country>".properties file using the File->Open menu item and "Open" it in the editor. Modification and deletion of the existing words/properties in the text file is also possible. Operations performed using Menu Options The various operations that can be performed using the I18NEditor menu options are as follows: File Menu : This menu comprises of five menu items viz. New, Open, Save, Save as Text and Exit. The New menu item is to create a new EnglishToNative.properties file with the desired language and country. The Open menu item is to open any EnglishToNative.properties file. You can save the changes made in a text file by using the Save or Save as Text menu item. The Exit menu item is used for exiting from the I18NEditor tool. Edit Menu : This menu comprises of four menu items viz. Find, Add, Delete, and Edit in Editor. The Find menu item is to find a particular Property Name or Property Value from the keywords list. The Add menu item is to add new words (also known as properties) to EnglishToNative.properties file by specifying the new keyword as the Property Key and its internationalized word as the Property Value in the respective table columns. The Delete menu item is to delete an existing word of the Property Key. An existing word of the Property Key column can be modified by just simply double-clicking the word and specifying the

Page 93: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 92

new word and its corresponding internationalized word. The Edit in Editor menu item is to select a particular Property Name from the list and edit the value for the same using the Row Editor screen. View Menu : This menu comprises of two menu items viz. Prominent Entries and All Entries. These menu items are for displaying the property entries of the selected file in the I18NEditor's display table. When you want to view only the <PROMINENT ENTIRES> of a text file then select the Prominent Entries menu item and for viewing all the entries of a file select the All Entries menu item. Help : This menu is to view the context sensitive help document for the I18NEditor tool.

Page 94: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 93

Configuration and Customization

Web Script Filtering Test Case filtering allows execution of selected scripts that match the filter criteria. If you have selected the project / webscripts node in the tree and proceeded on to script execution then all the scripts under that project will be executed one by one. If you want only specific web scripts to be executed, you can create a Suite Filter via Tools --> Suite Filter option. Multiple filters can be created but only one will be active at a time. Based on the matching criteria you set, corresponding scripts match the criteria will be executed. In case you want to disable the suite filters temporarily, you can choose the menu option Edit -- > Disable Filter and check the checkbox. Refer to Configuring Filters for more details.

Page 95: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 94

Web Script Sequencing Web script sequencing is automatically done by Web Test Engine where ever required, based on a predefined logic. This plays a major role for testing the web scripts in Regression environment. The sequence information is stored in a file called WebScriptSequence.xml present under the conf directory of the project (test suite). Sequencing happens automatically in the following scenario:

• Whenever you click on the Test Suite node (Project), Module node, and webscripts node in the tree and select to "Execute", all the scripts under that are automatically sequenced and listed in WebScriptSequence.xml.

• If you choose a particular web script in the tree and select to "Execute", then only that webscript is listed in WebScriptSequence.xml.

• If you have created a suite filter then during playback, the scripts that match the filter will be selected and only the selected ones will be sequenced. The same can be found listed in WebScriptSequence.xml.

Thus playback of the web scripts is based on the information present in WebScriptSequence.xml.

In case you do not want the sequence to be recreated the next time you execute the scripts and want to maintain the existing script sequence, then check the menu checkbox labeled "Disable Sequence" present under "Edit" in Web Test Studio.

WebScriptSequence.xml and Regression Regression testing of these web scripts is also done by reading the sequence file, WebScriptSequence.xml. Assume you have created n web scripts and you want to sequence them to be run in regression, then you can sequence them via Studio as explained above or as below given steps:

1. Invoke the file SequenceWebFuncTest.bat/sh present under < QEngine Home >/bin directory. This will sequence the web scripts of the specified test suite and list them in WebScriptSequence.xml.

Usage SequenceWebFuncTest.bat/sh < Suite Name > Example SequenceWebFuncTest.bat/sh LoginAppJ2SESuite

2. Invoke the file CommandLineWebFuncTest.bat/sh present under <QEngine Home >/bin directory:

Usage CommandLineWebFuncTest.bat "< Suite Name 1, Suite Name 2,Suite Name n >" Example CommandLineWebFuncTest.bat/sh "LoginAppJ2SESuite"

Sequencing happens immediately as soon as play back is started in Studio. Hence, if your requirement is just to generate the sequence then you can terminate the script execution at any point after you start.

Page 96: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 95

Configuring Suite Preferences You can configure the following settings related to your test suite:

1. Browser Settings 2. Execute Options

• From the Suite tree, select the Suite for which you want to add the test case.

• Choose the menu item Preferences from the Settings menu.

• Select Browser enables you to choose the appropriate browser for record and playback of browser events. For details, please refer to Browser Options.

• Execute Options enables you to set

• the speed with which the recorded test cases will be played.

• the maximum time for which Web tester needs to wait for playing a recorded operation such as document loading in a window.

• For details please refer Execute Options.

Page 97: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 96

Configuring Map File Mode Application map file (GUI map) contains the details of the html objects recorded. These details are required for the identification of the object. Your test suite can either contain one map file global to the entire suite or one map file per script. Map File per Script Map File per Script is the default mode which creates the GUI map file for each script. This file is placed in <QEngine_Home>/projects/<Suite_Name>/webscripts/<Script_Name>/ directory with .map extension. The command useLocalMapFile() in the script will indicate that the map file local to this webscript must be used while playback. Map File per Suite Map File per Suite mode is enabled by choosing the Edit->Suite Level GUI Map menu item. This mode creates a global map file for the entire Suite. The global map file is placed in <QEngine_Home>/projects/<Suite_Name>/conf directory. Note that in this case useLocalMapFile() command is not embedded in the webscript. Merging Map File Once you feel the number of local map files (map files per script) is increasing and maintenance is an issue, then you can choose to merge them to a single map file. Use the menu option Tools->Merge GUI Map. A confirmation dialog is displayed. Clicking Yes, merges the local map file(s) to global map file and displays a message box to remove the useLocalMapFile() statement from the script. A global map file named global.map will be created under <QEngine Home>/projects/<project>/conf folder.

Page 98: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 97

Customizing Web Reports

• Overview

• Description

• Code Snippet

• Configuring Web Report Format

Overview QEngine by default generates tabular and html reports for Web test. Web reports can be customized by writing a user class that implements the interface WebClientReporterInterface. Description This example illustrates the com.adventnet.qengine.web.report.WebClientReporterInterface implementation which generates the customized Web reports. Code Snippet

public class WebClientReportWriter implements WebClientReporterInterface {

public void writeReport(Vector reportVec) { ............. ............. }

}

• Place the Java file under <QEngine home>/projects/ <suite name>/usersrc directory.

Configuring Web Report Format Once you have written the user class to customize the WebTest report, you need to configure the user class name in Reports.xml file in <QEngine_Home>/projects/<Suite_Name>/conf directory as shown below. <WebClient_Report> <Class name="com.adventnet.qengine.web.report.WebClientReportWriter"/> </WebClient_Report> In the above entry, com.adventnet.qengine.web.report.WebClientReportWriter is the default user class name.

Page 99: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 98

Command Reference On recording your Web application, web scripts are generated which contain commands/functions corresponding to the recorded action. You can refer to the complete list in Web Functional Test Studio by choosing the menu item Help -> Functional Library.

Page 100: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 99

Web Performance Testing Introduction Web Performance Test Tool allows you to test and analyze the performance characteristics and bottlenecks of your websites and intranet applications with an easy-to-use IDE. Load can be simulated in terms of Virtual users where each virtual user is assumed to perform few business transactions thus hitting few URLs from time to time.

Topic Explains

Getting Started This section explains how to start Web Performance Test Studio and also familiarizes you with its interfaces such as screens, menus and toolbar icons.

Web Performance Script Development

This section explains how to record and replay URLs on Web applications, possible configurations and customizations.

Tutorial This section provides sample illustration for load scripts development. Tips This section provides you some useful tips.

Page 101: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 100

Getting Started Getting Started - An Introduction Working with Web Performance Test Studio You need to get familiar with the tool before starting any testing task. Follow the below given links for the same:

1. Starting Web Performance Test Studio 2. Tool Interface - Menu Bar 3. Tool Interface - Tool Bar

Page 102: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 101

Starting Web Performance Test Studio You can start Web Performance Test Studio (IDE) from command line ( .bat / .sh ) file named "StartWebPerfTestStudio.bat/.sh" present in <QEngine>/bin directory. In case of Web Performance Test tool bundled with the complete QEngine suite of tools, you can also invoke it via the launcher. Tool Interface The initial screen of the Web Performance Test Studio will look as shown below:

Page 103: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 102

Tool Interface - Menu Bar The following menus are available in Web Performance Test Studio Menu Bar:

• File • Edit • Control • Play • View • Settings • Tools • Help

File The following functions can be performed using the File menu:

Menu Item Function New Suite To create a new Suite. Open Suite To open an existing Suite. Save Suite As To save Suite in another name. Close Suite To close a Suite. New Business Case To create a new business case. Save Business Case To save a business case. Save Business Case As To save a business case in another name. Delete Business Case To delete a business case. Exit To exit Web Performance Test Studio. Edit The following functions can be performed using the Edit menu.

Menu Item Function Undo To undo a operation in the business case. Redo To redo a operation in the business case. Cut To cut a selected text or line in the business case. Copy To copy a selected text or line in the business case. Paste To paste a selected text or line in the business case. Select All To select all the lines in the business case. Goto Line To goto a specific line in the business case. Clear Output and Error Clear the logs and errors in the Output/Error panel.

Page 104: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 103

Record The following functions can be performed using the Record menu.

Menu Item Function Record Settings To configure the recorder options. Proxy Settings To configure the proxy settings. Start Record To start the recording of a business case. Stop Record To stop the recording of a business case. View or Parameterize URL To parameterize the headers or parameters in a URL.

Response Validator To insert functions in a business case to validate the response. Play The following functions can be performed using the Play menu.

Menu Item Function

Test Configurator To invoke the load test configurator UI to define the test cases, user profiles and workloads.

Play Settings To configure the play settings options. Start Play To start the performance test. Stop Play To stop the performance test. Add Play Engine To add the IPs, port and Max Users for distributed play engines. Server Resource Monitor

To configure the list of servers to be monitored during performance testing of web application to collect the CPU usage (in %), memory usage (in %) .

Clear Logs and Reports

To clear the webperlogs and webperfreports generated in <QEngine_Home>/projects/<Suite_Name>/ directory.

View The following functions can be performed using the View menu.

Menu Item Function Generate Reports To generate and view the reports dynamically when play is in progress. View Reports To view the reports generated for web performance test cases. View Status To view the Play Status UI.

Settings The following functions can be performed using the Settings menu.

Menu Item Function Environment Settings To define and set environment independent values, JDK Home, etc.

Classpath Settings To set the classpath to execute the web performance test cases Debug Level To determine what prints have to be displayed in the Output and Error panel.

Page 105: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 104

Tools The following functions can be performed using the Tools menu.

Menu Item Function Virtual IP Configurator To configure unique IP address for each virtual user.

Version Control To invoke the CVS Tool. Import or Export To import or export a suite.

Help The following functions can be performed using the Help menu.

Menu Item Function Contents To invoke complete Help documents. Technical Support AdventNet Contact Details. Online Support To know the details of contacting qengine-support from our website. QEngine Forum To invoke qengine forums page to post your queries, suggestions or feedbacks. About About QEngine. Register To provide the extended license file for evaluation or the registered license file.

Page 106: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 105

Tool Interface - Tool Bar The function of each toolbar is as shown in the table below: Toolbar Icon Function

Invokes the Suite Creation screen used to create a new Suite.

Opens defined Suite.

Invokes the Business case creation screen used to create a new business case.

Saves a modified business case.

Deletes a Suite, script or test case selected from the Suites Tree.

Starts recording the urls. The recorded urls are written in the business case selected from the Suites Tree.

Stops recording the urls.

Starts Test Execution.

Stops Test Execution.

Invokes the Test Configurator screen to create test cases, user profiles and workloads.

Displays report of executed test.

Clears the Output and Error panel in the Test Studio.

Opens up help documentation in a browser window.

Exits the Studio.

Page 107: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 106

Web Performance Script Development Web Performance Script Development: Introduction Web Performance testing enables you to load test your Web applications which can be anything ranging from pure HTML, to ASP, JSP, PHP etc. Recorded information is stored in "webperfcases" that can be played back when needed. Web Performance Testing can be done in 3 simple steps: Step 1: Creating the test suite Step 2: Recording Web Application Events Step 3: Playback Results are available in the form of graphs and reports. You can view the same. Also the resultant data can be exported to other formats for future reference and further manipulation. Many other options are available that will help you in dealing with complex Web Performance testing. Also, some configuration options are available. Follow the below given links to know more about them:

• Handling URL Parameters

• Handling Session Data in URL

• Response Validation

• Configuring Server Monitoring

• Configuring Virtual IP Addresses

• Configuring Play Settings

• Distributed Load Testing

• Viewing Load Test Reports/Graphs

• Web Performance Sequencing

• Generate Business Case from Web Scripts

• Import/Export of Report Data

Page 108: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 107

Recording Business Case Recording Business Case: Introduction The first step in web performance testing is to record a business case. Recording a business case involves steps such as configuring browser proxy settings, recorder proxy settings and then creating a business case. You can validate the response by inserting functions in the recorded business case and parameterize the script to fetch data from external sources such as database, CSV or from Cookie, Element, Text, Javascript or from URL. The topics covered in this book are as follows:

• Configuring Browser Proxy Settings • Recording/Creating Business Case • Handling URL Parameters • Handling Session Data in URL • Response Validation

Page 109: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 108

Configuring Browser Proxy Settings The Web Browser must have the right configuration in order to enable recording and work with Web Performance tester. Following need to be set before moving on with creating/recording a business case for Web performance testing. Configuring Browser Proxy Settings Automated Proxy Setup UI is provided to automatically configure the Web browser proxy settings for Windows platform. This option is by default enabled, if your default browser is IE/Mozilla/FireFox. Choose Control->Start Record menu item from the menu bar to view the Automated Proxy Setup UI. To know the details, please refer to the context sensitive help. For Linux platform and for other browsers not set as default browser in Windows, you need to manually set the browser proxy settings as explained below. The following table explains the same.

Platform Browsers In Windows In Linux/Solaris

Internet Explorer (if set as default browser)

Automated Proxy Setup is enabled NA

Mozilla (if set as default browser) Automated Proxy Setup is enabled Manual Proxy Setup is required

FireFox (if set as default browser)

Automated Proxy Setup is enabled Manual Proxy Setup is required

Opera Manual Proxy Setup is required Manual Proxy Setup is required

Konqueror, etc. Manual Proxy Setup is required Manual Proxy Setup is required

Manual Proxy Settings Internet Explorer

1. Open Internet Explorer 2. Click on Tools 3. Click on Internet Options

4. Click on Connections 5. Click on the LAN Settings button

6. Make sure that the checkbox next to Use a proxy server for your LAN (These settings will not apply for dial-up or VPN Connections) is checked as shown in the screenshot below:

Page 110: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 109

7. Enter the Address as "localhost" and Port as "8091". 8. Click the button labeled, "Advanced". For HTTP, enter the proxy host name as "localhost" and

port as "8091". Check the check box "Use the same proxy for all protocols" as shown in the screenshot below:

9. Click on "OK" button in the subsequent screens. This will set the proxy settings for IE.

Page 111: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 110

Mozilla

1. Open Mozilla 2. Click on Edit->Preferences 3. In the list on the left, click on the arrow next to Advanced 4. Click on Proxies 5. Click on the radio button next to Manual Proxy Configuration 6. For HTTP, SSL, and FTP, enter the proxy host name as "localhost" and port as "8091"as shown

in the screenshot below:

7. Click on "OK" button. This will set the proxy settings for Mozilla. FireFox

1. Open FireFox 2. Click on Tools 3. Click on Options 4. Click on Connections Settings 5. Click on the radio button next to Manual Proxy Configuration 6. For HTTP, enter the proxy host name as "localhost" and port as "8091". Check the check box

"Use the same proxy for all protocols" as shown in the screenshot below:

Page 112: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 111

• 7. Click on "OK" button in the subsequent screens. This will set the proxy settings for FireFox

Page 113: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 112

Recording Business Cases

• Introduction • Configuring Recorder Proxy Settings • Configuring Recorder Settings • Creating/Recording a Business Case • Creating Virtual User Scripts

Introduction A business case is defined as a set of actions the user performs in the web application which has meaning in a business context. It could be as simple as viewing a single page or as complicated as performing an entire transaction. For example, in a web based banking application, A simple business case can contain two transactions, i.e.,

• logging in

• logging out A complicated business case can have multiple transactions such as

• logging in

• viewing account balance

• creating a Fixed Deposit account

• transferring money from one account to another

• logging out.

Configuring Recorder Proxy Settings The Recorder component of QEngine has the proxy unit which acts a proxy server for the Web browser to record the URLs clicked in the browser. To enable the recording of URLs, configure the recorder proxy settings as given below:

• Invoke Web Performance Test Studio.

• Choose the menu "Settings --> Proxy Settings" from the menu bar. This brings up the Proxy Settings UI. To know the detailed steps of configuring the recorder proxy settings, please refer to the context sensitive help.

Configuring Recorder Settings There are a couple of options for recording that are controlled from the Recorder Settings UI. To bring up the Recorder Settings UI, choose the Record->Recorder Settings menu item from the menu bar. To know the detailed steps of configuring the recorder settings, please refer to the context sensitive help.

Page 114: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 113

Creating/Recording a Business Case To create business case all you need to do is to record the transactions (URLs) per business case. Recording can be done using Web Performance Test Studio.

Using Web Performance Test Studio Follow the below given steps to do the same:

1. Invoke Web Performance Test Studio 2. Choose the Suite in which you want to place the test related configuration. Create new

Suite if required. 3. Select the tree node "webperfcases" and choose the menu option, "File --> New

Business Case". Enter a name for the business case in the dialog. For example, enter "view_acct_balance". You will see the new business case node added under the tree node labeled "businesscase".

4. Configure the appropriate browser proxy settings and recorder proxy settings as explained in the topic Configuring Browser Proxy Settings and in the sub topic Configuring Recorder Proxy Settings.

5. Launch the browser and click Record->Start Record menu item or click the toolbar

option to start recording the transactions (urls) in the Web application. For example, enter the Web application's home url, then choose, login option, then choose view account balance and finally choose logout. You will see that the four URLs related to these operations would be recorded in the script named "view_acct_balance" as submitURL(URL, thinktime). For example, login page would be scripted as "submitURL(http://abc-bank.com/login_page.asp,2)".

6. Choose Record --> Stop Record menu item to stop recording. 7. Finally, save the business case using the toolbar option.

Repeat steps 3 to 8 to create few more business cases

Page 115: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 114

Handling URL Parameters (GET or POST Data)

• Overview • Handling URL Parameters • Configuring URL Parameters

Overview After recording a business case, if your test procedure requires dynamic substitution of URL parameters (POST or GET data) from cookies, response body, or an from external source such as database or CSV, Web Performance Test Studio provides the View or Parameterize URL option. The advantages of using parameterization in the script is as follows:

• Ability to achieve true real-world emulation while running the load test. • Dynamic Cookie and Session management.

Handling URL Parameters Identify the category under which each of the URL parameters fall such as

• constant • dynamic or • dataset

Constant Constant type parameters do not change values between a recorded session and a replay session. The values recorded can be used as it is for replay. Dynamic Dynamic parameters requires that their values be obtained from the response of the previous request. The parameter value can be extracted from one of the following:

Parameter Value Extracted From Description

Cookie Fetch parameter value from the Cookie Set in the response header.

Element Fetch parameter value from an element attribute value of a hidden form element. For example <input type="hidden" name="jsessionid" value="QE1469"> use the element attribute value for parameter.

Response Body

Fetch parameter value from the body of the response.

• Between configured prefix and suffix text. • Extract text using Regular expressions. For example to extract

sessionid from the below html you use

Regular Expression: [\s\S\n\r]*?sessionid=

Page 116: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 115

Parameter Value Extracted From Description

Suffix: > <HTML> <TR><TD>Server Configuration </TD> <TD><A HREF=serverconfig.html?sessionid = 810> Config </A> </HTML>

Javascript Fetch cookie or parameter value from the specified Javascript. URL

Fetch cookie or parameter value from the previous URL for the given prefix and suffix text.

Dataset Parameters that need unique data for each use (such as user login and passwords) and that are fetched from any external datasource such as CSV or Database fall in this category. For example, when testing a web application that contains a login page, "parameterization” lets you use a different login name and password for each virtual user (dynamic substitution of values). There’s no need for each User Scenario to contain a separate script that performs the task of logging in. Configuring URL Parameters Data parameterization for URL parameters is configured using the Configure Parameterization UI invoked using the Record->View or Parameterize URL menu item. To know the detailed steps of configuring the same, please refer to the context sensitive help in the following link.

Page 117: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 116

Handling Session Data in URL • Overview • Handling Session Data in URL Rewrites • Configuring Session Data in URL Rewrites

Overview After recording a business case, if your Web application has URL Rewriting for session management, Web Performance Test Studio enables you to dynamically substitute the session data in the URL from an external source such as database or CSV file or from cookies or response body. Handling Session Data in URL Rewrites URL Rewriting is one of the popular session tracking method used for Non-cookie browsers to save session information. URL Rewriting tracks the user's session by including the session ID in the URL (to carry information from one HTML page to another). The information is stored inside the URL, as an additional parameter where all the links on a page are re-written so that the server side program receives the old as well as new data. Thus a session (or a connection is maintained between multiple pages) for every user. The following table explains the four types of URL Rewrites supported by QEngine:

Type Description How to Configure Replace Complete URL

Replace Complete URL

URL will be completely rewritten by the server to include session details. URL rewriting involves finding all links that will be written back to the browser, and rewriting them to include the session ID. For example, a link that looks like this: <a href="/store/catalog"> is rewritten to look like this: <a href="/store/catalog;jsessionid=DA32242SSGE2"> If the user clicks on the link, the rewritten form of the URL will be sent to the server.

If your recorded URL belongs to this category then choose the option Select Complete URL and substitute the values either from response body or from an element attribute. Refer to Configuring Replace Complete URL for the details.

Session Data Embedded in URL

Embedded in URL

Session data embedded within a URL segment as name value pairs. For e.g., http://testserver:8080/login.do; jsessionid=AEGH12SEWF33RFFSF?view=network&id=10

If your recorded URL belongs to this category, parameters of this URL has to be selected and configured to fetch values either from database, CSV file, cookie, response body or from an element attribute. Play engine will

Page 118: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 117

Type Description How to Configure extract the values by searching and parsing returned HTML content and embed it with the URL. Refer to the following link for the details.

Session Data Embedded in Path

Embedded in Path

The session data is added as a new URL's path segment. Session data does not appear as name value pair. http://testserver:8080/login.do/AEGH12SEWF33RFFSF? view=network&id=10

If your recorded URL belongs to this category, parameters of this URL has to be selected and configured to fetch value either from database, CSV file, cookie, response body or from an element attribute. Play engine will extract the values by searching and parsing returned HTML content and embed it with the URL path. Refer to the following link for the details.

Configuring Session Data in URL Rewrites To know the details of Configuring Session Data using URL Rewrites, please refer to the context-sensitive help in the following link.

Page 119: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 118

Response Validator • Introduction

• Sample Illustration

• Using the Response Validator

Introduction Web Performance Test Studio provides the option to insert Built-in functions in the script to validate the response during playback. You can type these functions manually in the script but this may result in syntax error and you may find it difficult to debug. To facilitate non erroneous insertion, an utility called "Response Validator" is made available. Please note that this feature will be fully functional only in the GA Release.

You can use this utility during the recording mode or non-recording mode. Otherwise, you need to type the functions manually.

Sample illustration Assume you want to search for a particular text in the response during playback, you can use the web_verify_text function and search for a particular text which could include even the prefix and suffix text. To achieve this you can do the following:

1. Choose the category "All". 2. Choose the function "web_verify_text". 3. In the Arguments panel, specify the search text, prefix text or suffix text. 4. Click on the button "Paste".

This will insert the function in the script as follows: web_verify_text("tom","sam","peter") Using the Response Validator Refer to the context sensitive help in the following link to learn about the tool usage.

Page 120: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 119

Run Web Performance Test To playback or run the web performance test, you need to create the test cases which includes the steps such as, defining user profies, defining workloads, configuring server monitors (optional), configuring virtual IPs (optional), associate the user profile and workload to the test case and then execute the test. The detailed steps are explained in the following topics:

• Defining User Profiles • Defining Workloads • Configuring Server Monitors (optional) • Configuring Virtual Ips (optional) • Creating Load Test • Play Settings (optional) • Executing Load Test • Distributed Load Testing

Page 121: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 120

Defining User Profiles

• Introduction • Illustration • Configuring User Profiles

Introduction In most scenarios, multiple users will be simultaneously accessing different parts of the web application, performing different operations. In order to map the real time activities and simulate the load, Web Performance tester allows you to configure User Profiles. Using user profiles greatly increases the accuracy of your test, since it better simulates what your web server will be seeing in the real world. Each User Profile is a set of business cases in the order of their execution. Illustration Assume following business cases have been defined:

• login_trans, view_account_balance, logout_trans

• logout_trans, create_fd_account, logout_trans

• login_trans, view_account_ transfer_money, logout_trans In real environment,

• few users may log in, check their account balance and then log out.

• some may log in, check their account balance, transfer money and then logout.

• others may do another combination of the above said actions. A user profile consists of one or more business cases, each with unique settings reflecting different usage characteristics. Configuring User Profiles User Profiles are created using the Test Configurator tool invoked from the Play menu in Web Performance Test Studio. To know the detailed steps of configuring the user profiles, please refer to the context sensitive help in the following link.

Page 122: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 121

Defining WorkLoads

• Introduction • Supported Workload Models • Defining WorkLoads

Introduction A workload is the total load of activity (HTTP/HTTPS requests that the server receives during any given period of time) that is placed on the Web application to be tested. This load consists of a certain number of virtual users who process a defined set of transactions in a specified time period. Assigning a proper workload is at the crux of web performance testing. Supported Workload Models Normal - In this type of workload, a constant number of virtual users are run against the Web application for the duration of the test. Ramp Up - In this type, an increasing load are run to help testers to find the limit of a Web application’s work capacity. At the beginning of the load test, only a small number of virtual users are run. Virtual users are then added to the workload step by step. Burn-In - In this type of workload, the response time of a URL is repeatedly measured with the specified number of virtual users based on the exit criteria specified. In performing a burn-in URL testing, you will often catch problems that would only arise after extended use of the URL by a large number of users. Defining WorkLoads The workloads are defined using the Workload Configurator UI in the Test Configurator screen. The Load Test Configurator screen is invoked from the Play menu. The detailed steps are explained in the context sensitive help in the following link. Please, refer to the same.

Page 123: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 122

Configuring Server Monitoring • Introduction • Configuring Server Resource Monitoring

Introduction In addition to measuring the client and server response time, Web Performance Test allows monitoring of CPU utilization (in %) and memory usage (in %) of the web server or database servers. Provides the ability to remotely monitor the above resources without any server-side installation in both Windows, Linux and Solaris.

Note: For Windows, if the specified host is a remote host, server monitoring is done only if the remote host is in the same domain as the local host from where the test is executed.

Configuring Server Resource Monitoring Server Resource Monitoring is supported for Windows, Linux and Solaris platform. In Windows, server resource monitoring is done using WMI. In Linux/Solaris, server resource monitoring is done using Telnet/SSH.

Note: Test Configuration option chosen from Play->Test Configurator menu item allows you to choose one or more configured server monitors and play engine starts all the configured server monitors which will then report the resource utilization of the monitored servers.

To know the detailed server monitoring configuration details, please refer to the context sensitive help in the following link.

Page 124: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 123

Configuring Virtual IP Addresses • Introduction • Configuring Virtual IP Addresses

Introduction Virutal IP Configurator tool provides the ability to generate virtual clients or allocate a unique IP address for each virtual user located on the same physical machine. By assigning each virtual user with a unique IP address, you can track the performance of each virtual user and hence really pinpoint the performance issues of a particular web application. Configuring Virtual IP Address To create virtual IP Addresses, choose the Virtual IP Configurator tool from the Tools menu. The Virtual IP Configurator gives you the ability to specify the start IP Address and the number of IP addresses. You can also add or remove IP addresses using the Add Virutal IP and View/Delete Virtual IP options.

Note: Configure virtual IP addresses which would be valid on your network; Contact your network administrator for for the list of unused IP addresses on your network.

To know the details of configuring the virtual IP address, please refer to the context sensitive help in the following link.

Page 125: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 124

Creating Load Test • Introduction • Creating Load Test

Introduction Creating a load test involves associating the appropriate work loads to profiles. You can also configure the server monitors to collect the CPU usage, memory usage and thread counts. This allows you to test the web application with various scenarios reflecting the real world transactions of a user. Creating Load Test The load tests are defined using the Test Case Configurator UI in the Load Test Configurator screen. The Load Test Configurator screen is invoked from the Play menu. The detailed steps are explained in the context sensitive help in the following link. Please, refer to the same.

Page 126: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 125

Executing Load Test You have the following choices to run the load tests:

• Executing Load Test from Studio • Executing Load Test from Command Line • Executing Single Businsess case

Executing Load Test from Studio

1. Select the business from the Suites Tree.

2. Choose the toolbar icon or choose Play->Start Play menu item. This displays the Execution Status UI as shown below.

3. From the TestCase field, select the load test to be executed and click the Start Test button.

4. This executes the selected load test. You can view the execution status such as Username, URL, Status and Response Code as shown below.

Execution Status UI

Page 127: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 126

Executing Load Test from Command Line To execute the load test from command line, you need to sequence the load tests before execution. Refer "Web Performance Test Sequencing" for details on how to sequence the load tests and then execute them. Executing Single Businsess case You can execute a single business case with the default profile, workload and test case. To execute a business case, select the business case from the tree-node and right-click. Select the Execute menu item from the popup menu. Executes the business case with the default profile, workload and test case.

Page 128: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 127

Play Settings AdventNet QEngine Web Performance Test provides a couple of options to configure the default play settings before running the web performance test. To bring up the Configure Play Settings dialog select the Play->Play Settings menu item from the menu bar. To know the detailed steps of configuring the play settings, please refer to the context sensitive help in the following link.

Page 129: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 128

Distributed Load Testing

• Overview • Illustration • Understanding Distributed Load Testing • Steps to enable Distributed Load Testing

Overview Today, Web applications/Web sites get a great deal of traffic. To effectively handle the traffic and offer improved performance for business-critical Web applications, companies need to predict the maximum load the web server can adequately handle using a distributed architecture. To measure the performance of such a system, QEngine provides the Distributed Load Testing option. Illustration

Understanding Distributed Load Testing QEngine distributed load testing generates load from one single Test Controller and simultaneously distributes the configured load in the remote play engines. The distributed playback engine has the following components:

Page 130: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 129

Test Controller Test Controller is the machine were QEngine is installed. The functions of Test Controller are as follows:

• Generates and distributes the load (Max Users configured in the Add Play Engine Screen) in remote machines with different hardware configurations.

• Starts the load test execution in the distributed play engines. • At the end of the test execution, automatically collects the test logs generated in the distributed

play engines and stores it in the respective directories. QEngine Distributed Play Engines Distributed play engines are the machines where QEngine is installed with RMI Server for remote test execution. The functions of play engines are as follows:

• The play engine is where the user requests sent by the Test Controller is replayed to measure the performance statistics.

• The play engine automatically stores the test reports generated during the load test execution in the common database.

Common Database The common database is used both by the Test Controller and the distributed play engines. The user requests generated for the configured test parameters, the responses received from the distributed play engines and the test reports generated and sent by the distributed play engines are stored in the common database. Steps to enable Distributed Load Testing The steps to enable distributed playback are as given below: Note: You can skip steps 1 to 3, if you have already recorded the business cases and configured the test parameters for load test execution.

1. Record the business cases as per the steps given in the topic Recording Business Case. 2. Parameterize the recorded URLs (if required) as per the steps given in the topic Handlng URL

Parameters. 3. Define test parameters such as user profiles and workloads. Configure server monitoring and

virtual Ips (optional). Create test cases to associate the profiles and workloads. To know the details, refer to the steps given in the topic Defining User Profiles, Defining Workloads, Configuring Server Monitoring, Configuring Virtual IP Addresses and Creating Load Test.

4. Install QEngine in a machine which acts as the Test Controller. 5. As per your requirements to distribute the load, install QEngine in machines with different

hardware configurations. Start remote agent in each of the distributed machines using StartDistributedAgent.bat/.sh file in <QEngine_Home>/bin directory.

6. Open Web Performance Test Studio from Test Controller, choose Play->Play Settings menu item from the menu bar. In the Other Details panel, select the check box Distributed Playback and click OK.

7. Choose Play->Add Play Engine menu item from the menu bar. The Play Engine Configuration screen will be displayed.

Page 131: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 130

8. In this screen, configure the IPs, RMI port and maximum virtual users to be simulated in the distributed play engines. This is to enable the Test Controller to remotely contact the distributed play engines to perform distributed load testing. For details of configuring Play Engine IPs, Port, and Max Users, refer to the context-sensitive help in the following link.

9. After configuring the IPs, Ports, and Max Users, start the load test execution as per the steps given in the topic Executing Load Test.

10. The test reports will be stored in the common database. The test logs will be stored in the respective directories in the Test Controller. To know the report details, refer to the topic Load Test Graphs/Reports.

Page 132: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 131

Load Test Graphs/Reports Load Test result statistics are made available in the form of graphs and reports. These help you in analyzing the performance of the Web application under test. The View menu provides the following options to view the dynamic reports and the logs/reports panel: Generate Reports - To generate and view the reports dynamically when play is in progress. View Reports - To view the logs/reports generated for Web performance test cases. Find below a description of the various graphs and reports generated during the Load test:

Graphs Description Thumbnail View How to Read Time Series Graphs

Server Response Time vs Elapsed Time

This graph shows Elapsed time Vs (time between Request sent to time of receiving First Byte, in seconds

-

Per URL Page Download Time

This graph shows the page response time on a per URL basis.

Bar graph showing the recorded pages on the X-axis and the response time (in milliseconds) on the Y-axis.

Page load time vs Elapsed Time

This graph shows Elapsed time Vs Page load time, in seconds.

Plots that stay close to the horizontal axis indicate better performance. This indicates the response time as seen by the user.

Request, Response Pending Details and Page Start and Complete Time

This graph shows the status of the number of pending requests to be sent and the pending responses to be received for the already sent requests. Also shows

Bar graph shows the business cases on the X-axis and Number of requests on the Y-axis. Appropriate tool tips are displayed on pointing the mouse over the bar graph, to indicate the number of requests and responses pending. Hyperlinks are also

Page 133: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 132

the Page Start Time and Complete Time.

provided to view the list of URLs for which the requests/responses are pending.

Active User Incrementation Vs Elapsed Time

This graph indicates the user addition interval over elapsed time.

Plots that stay close to the vertical axis to generate high loads in a short period

Hits/sec vs Elapsed Time

This graph shows Elapsed time vs Number of requests handled successfully, per unit time.

In ramp-up mode , plots that stay close to the horizontal axis indicate better performance as load increases over time.

Error Percentage over Elapsed Time

This graph shows the cumulative number of errors recorded during the test on the vertical axis, with time (load) on the horizontal axis. These errors are typically connection refused or unexpected socket closure errors.

Plots that rise later in the test indicate better robustness.

Throughput(bytes/sec) over Elapsed Time

This graph shows Elapsed time Vs Throughput in seconds

Plots that stay close to the vertical axis indicate better throughput.

Server Monitoring Graphs

Page 134: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 133

CPU % vs Time

This graph shows the cumulative CPU utilization over time

Plots that stay close to the horizontal axis indicate better performance.

Memory Usage vs Time

This graph shows the memory usage of the server over time

Plots that stay close to the horizontal axis indicate better performance.

Thread Count vs Time

Number threads in the process over time

Plots that stay close to the horizontal axis indicate better performance.

Transaction Related Graphs

Transaction Load Summary

This graph indicates the Percentage of users executing the Business Cases

Bar graph on business case basis

Transaction Response Summary

This graph indicates the response status of each request placed

Bar graph on business case basis

Page 135: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 134

Advanced Options

Web Performance Advanced Options Intro Following are the topics covered in this book:

• Web Performance Sequencing • Generate Business Case from Web scripts • Import/Export of Report Data

Page 136: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 135

Web Performance Sequencing Web Performance test sequencing is automatically done by Web Performance Test Engine whereever required, based on a predefined logic. This plays a major role for testing the web performance test scripts in Regression environment. The sequence information is stored in a file called WebLoadCasesSequence.xml present under the conf directory of the project (test suite). Sequencing happens automatically in the following scenario:

• Whenever you click on the Test Suite node (Project), Module node, and webperfcases node in the tree and select to "Execute", all the scripts under that are automatically sequenced and listed in WebLoadCasesSequence.xml.

• If you choose a particular business case in the tree and select to "Execute", then only that business case is listed in WebLoadCasesSequence.xml.

• If you have created a suite filter then during playback, the scripts that match the filter will be selected and only the selected ones will be sequenced. The same can be found listed in WebLoadCasesSequence.xml.

Thus execution of the test cases is based on the information present in WebLoadCasesSequence.xml. WebLoadCasesSequence.xml and Regression Regression testing of the performance test cases is also done by reading the sequence file, WebLoadCasesSequence.xml. Assume you have created n test cases and you want to sequence them to be run in regression, then you can sequence them via Studio as explained above or as below given steps:

1. Invoke the file sequencewebtest.bat/sh present under < QEngine Home >/bin directory. This will sequence the web scripts of the specified test suite and list them in WebScriptSequence.xml.

Usage SequenceWebPerfTest.bat/sh < Suite Name > Example SequenceWebPerfTest.bat/sh LoginAppJ2SESuite

2. Invoke the file CommandLineWebPerfTest.bat/sh present under <QEngine Home >/bin directory:

Usage CommandLineWebPerfTest.bat "< Suite Name 1, Suite Name 2,Suite Name n >" Example CommandLineWebPerfTest.bat/sh "LoginAppJ2SESuite"

Sequencing happens immediately as soon as test case execution is started in Studio. Hence, if your requirement is just to generate the sequence then you can terminate the test case execution at any point after you start.

Page 137: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 136

Generate Business Cases from Web Scripts You may want to reuse the recorded webscripts to generate the load scripts or business cases. In such case, change the port settings in the browser so that Load Tester listens to the browser at a particular port and records the URL changes as you playback the actions in Web Test Studio. The port to listen to is "8091". To change the port settings for the browser and the proxy settings, please refer to the sub-topic Configuring port settings in Creating Business Case. To generate a business case from webscript, follow the below given steps:

1. Invoke Web Functional Test Studio. 2. Invoke Web Performance Test Studio. 3. Start Recording in Load Test Studio 4. Select the tree node "webperfcases" and choose the menu option, "File --> New

Business Case". Enter a name for the business case in the dialog. For example, enter "view_acct_balance". You will see the new business case node added under the tree node labeled "businesscase".

5. Change the port settings in the web browser and proxy settings to enable the recording to be recognized by Load Test Studio.

6. Choose Record->Start Record menu item from Load Test Studio menu bar. 7. In Web Test Studio, choose the webscript from the tree node to be reused as business

case and then choose the menu "Play --> Execute Test". This will automatically launch the web browser and the actions are replayed in Web Test Studio for the selected script. LoadTest Studio simultaneously records the URLs in the business case, whenever the URL changes in the web browser of Web Test Studio and it is recorded as "submitURL" in Load test.

8. When you are done, choose the menu, "Record --> Stop Record" in Load test Studio. 9. In Load Test Studio, save the load script.

Page 138: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 137

Import Export of Report Data The report data generated for load test is saved as an html file named Summary.html. This file can be used to export the report data or image to Excel or Word. The html file contains the summary data for the load test. The details include Load Test Name, Load Test Start Time, Load Test End Time, Load Test Duration and a table listing the performance statistics for the load test such as Elapsed Time, Server Response Time, Page Download Time, Total Hits, Bytes per second and Active No of Users. The Summary.html file will be generated in <QEngineWebTest_Home>/projects/<Suite_Name>/webperfreports/summaryreport directory. The same file will also be placed in <QEngineWebTest_Home>/projects/<Suite_Name>/webperfreports/webperfreports_<Current_Date>_ <Current_Time> directory.

Page 139: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 138

Suite Creation and Configuration Introduction This section explains to you the test suite related settings and configurations that will be helpful in suite development and maintenance. Follow the below given links for the details:

• Suite Creation

• Suite Settings

• Suite Environment Settings

Page 140: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 139

Suite Creation • Definition • Need for a Suite • Suite Structure • Creating a Suite

Definition Suite is a collection of test scripts, test data, environment data and configuration data. Suite stores test information in an organized manner, thus supporting test design, test execution, test reporting and test debugging. Suite contains functional, performance, API , load test, web test and stability test scripts and data. Need for a Suite

• To organize tests hierarchically. • To share configuration and environment data amongst the different test types it contains. • To allow incremental test development.

Suite Structure Suite has the following structure in the QEngine package.

Here, LoginAppJ2SESuite The Suite name.

bin Directory to place executable files, of applications other than Application Under Test (AUT), you may need while testing.

conf Contains configuration files required to execute the Suite.

perfcases Contains performance test cases of this Suite. stabilitycases Contains stability test cases of this Suite. testcases Contains functional test cases of this Suite.

testing Contains the original and modified files of the AUT used for Application Initialization.

testlogs Contains the logs created while executing the Suite.

testreports Contains the reports generated on executing the Suite.

usersrc Contains the user defined custom classes.

webperfcases Contains profile data, workload data and test cases related to Load testing.

webscripts Contains scripts recorded for web testing.

Page 141: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 140

Creating a Suite • Invoking Suite Creation Screen

• Configuring the Screen

Invoking Suite Creation Screen 1. Invoke any of the Test Studios. 2. Choose the menu item New Suite under the File menu or choose the toolbar icon, <image to be

inserted>,. This displays the Suite Creation screen as shown below: 3. Configure name, version and location of the Application Under Test (AUT).

Configuring the Screen

1. Fill in details as shown below:

Field Name Value Example Suite Name Enter the desired Suite Name NMS Name Enter the name of the Application Under Test (AUT). WebNMS Version Enter the version of the Application Under Test. 4

Home Directory Enter the complete path to the Application Under Test's location.

E:/workshop/AdventNet/WebNMS

2. Click OK. 3. The suite would be added to the Suites Tree.

Note: If you want the logs of the Application Under Test to be stored by QEngine for test debugging, please refer to Configuring Application Logs.

Page 142: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 141

Suite Settings Suite Settings explains about the default settings provided for the test case ID, test case severity, test properties, test scripts, etc. The suite settings include the following:

• Test Case Structure

• Severity Scale

• Suite Initialization

• Configuring Application Logs

• Test Properties

• Test Scripts

• Test Result

• Test Reports

• Bug Tracking

• Test Debugging

Test Case Structure

Definition: Test cases defined in QEngine should have a globally unique identifier, with strings which are valid directory names, with or without level separators, and a number appended in the end. The expression of this identifier identifier is called Test Case Structure. Default Test Case Structure: The default Test Case Structure supported by QEngine is xx-xx-001. Severity Scale

Definition: QEngine prioritizes tests by allowing association of severity levels with test cases. QEngine allows definition of the severity scale ( A severity scale is a collection of severity levels. ) based on the levels of significance you would like to use to prioritize your test cases with. Generally severity scale is obtained from the test plans you refer to.

Default Severity Scale: QEngine's default severity scale contains the severity levels Showstopper, Critical, Major, and Minor in descending levels of significance. Colors red, orange, yellow and blue are associated for the above mentioned severity levels respectively and will appear in your test results. QEngine's severity scale defines a severity level as

• Showstopper when data loss, hardware damage, or mission related failure occurs.

• Critical when there is a loss of functionality without any reasonable workaround.

• Major when there is a loss of data or functionality with a reasonable workaround.

• Minor when there is partial loss of a function, feature set or if there exists a cosmetic or trivial error.

Warning: Modification of the severity scale after test creation will result in improper test result reporting.

Page 143: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 142

Suite Initialization Definition: While testing multiple Suites in immediate succession, there is usually a need to setup resources before the execution of each Suite. QEngine provides the facility to initialize the Suite resources by implementing com.adventnet.qengine.server.setupTestSuiteInitializer . For example, say you need to populate the MySQL database before executing a Suite. Use Suite Initialization to achieve this. Write a custom implementation and configure it in QEngine so as to populate the MySQL database before executing the Suite. Default Suite Initialization By default, Suite Initialization details are empty. Configuring Application Logs

• Invoking Suite Configurator

• Configuring Suite Initialization

Invoking Suite Configurator Application Logs can be stored after configuration procedures using the Suite Configurator. Follow the below steps to invoke the Suite Configurator.

1. Invoke any of the Test Studios. 2. Choose the menu item Suite Configurator under the Settings menu. This displays the Suite

Configurator.

Configuring Application Logs Directory 1. Choose the tab Suite Initialization. 2. In the Logging Details panel, browse and enter the location of the Application logs directory.

Note: To enter more than one logs directory give the location details comma separated.

Test Properties

Definition: Test case is a set of test inputs, execution conditions, and expected results developed to exercise a particular program path or to verify compliance with a specific requirement. In addition to these attributes, a test case has a set of default properties which include its identifier, severity, description and developer name. Default Test Properties: The standard test case properties defined by QEngine for its test cases are Emailid, Module, MaxTimeLimit, Developer, SetUp ID, Sequence Parameters and Severity. Test Scripts QEngine, by default, allows execution of batch/shell, Perl, TCL, and Jython scripts.

Warning: In Stability Testing, both Operation and Action scripts should be in Jython.

Page 144: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 143

Test Results The default test result parameters in QEngine are PASSED, FAILED, INCOMPLETE, DATA_ERROR, and ENVIRONMENT_ERROR.

• Test result PASSED indicates that the expected value defined in the test and actual value obtained on execution are equal.

• Test result FAILED indicates that the expected value defined in the test and the actual value obtained on execution are not equal or in other words the functionality does not behave as expected.

• Test result INCOMPLETE indicates that a test case did not succeed Pre-Validation Condition.

• Test result DATA_ERROR indicates that test data is erroneous.

Example

In a test that has been configured for initialization copy, if the file to be copied under the Application Under Test is absent then the test result is DATA_ERROR

• Test result ENVIRONMENT_ERROR indicates that the test environment is erroneous.

Example

In a test configured to check for existence of a table in a database, if the database is non existent, then the test result is ENVIRONMENT_ERROR.

Note : Stability reports show results as time taken for method execution and not as PASSED, FAILED, etc.

Test Reports QEngine generates validation and summary reports for both API and Functional Testing. A Suite can have only one validation report format and one summary report format. Bug Tracking Definition: QEngine tracks and informs tests failures identified during test execution, through mails and by filing failure details in any Bug Tracking system, for immediate tracking and fixing. Default Bug Tracking: This bug tracking system supported, by default, is GNATS.

Note: Bug Report can be filed for API and Functional Test Cases only.

Test Debugging Definition: QEngine facilitates preferential test debugging using debug values. Debug values are used to preferentially view log messages during test execution. They control as to which logs can be printed in the Output panel of the Test Studios. Default Debugging Configuration: By default, all QEngine logs appear in the Output panel of the Test Studios.

Page 145: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 144

Suite Environment Settings Test environment settings include configuring the environment variables, classpath settings, java home, JNDI settings and distributed performance test settings. The topics covered in this book are as follows:

• Configuring Environment Variables (OPTIONAL)

• Setting Classpath (MANDATORY)

• Configuring Test Setup (OPTIONAL)

• Configuring Java Home and Compiling User Classes (MANDATORY)

• Configuring JNDI Environment Settings (OPTIONAL)

Page 146: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 145

Suite Maintenance Suite Maintenance: Introduction Suite maintenance provides the options to export, import, modify and delete a suite. Supports concurrent version control system and allows integration of third-party version control systems to suit customer specific requirements. The topics covered in this book are as follows:

• Exporting a Suite

• Importing a Suite

• Modifying a Suite

• Deleting a Suite

• Suite Archiving

Page 147: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 146

Exporting a Suite Overview Export is a utility used to export test data, defined using QEngine, with ease. The exported Suite will be available as a .qed file under < QEngine Home >. QEngine Data File The .qed is a QEngine Data file, containing all test data files of an exported Suite. In addition to test data files this also contains Suite information files used by QEngine when the Data file is imported. QED files help

• Transfer test data across Operating Systems without data loss.

• Share test data between multiple installations of QEngine.

Exporting Suite A Suite can be exported by either of the following ways:

• Using Import Export Wizard

• Using Command Line Utility

Page 148: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 147

Importing a Suite Overview Import is a utility used to import test data into QEngine. After importing, the Suite is ready for further use on the Suite Tree. Importing a Suite A Suite can be imported by either of the following ways:

• Using Import Export Wizard

• Using Command Line Utility

Page 149: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 148

Modifying a Suite Overview Test data can be both viewed and modified. To modify a Suite, select the desired Suite from the tree, modify desired parameters and click the save icon, , on the toolbar of the respective Test Studio. Modifying a Suite To modify a Suite on the Suite Tree, follow the below given steps.

1. Select the Suite to be edited on the Suite Tree. 2. Make the desired changes in the right-hand side panel.

Page 150: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 149

Deleting a Suite To delete a Suite from the Suite Tree, follow the steps given below:

• Select the Suite you desire to delete, on the Suite Tree.

• Choose the menu item Delete Suite under the File menu or choose the delete icon, , from the toolbar.

• Confirm your desire to delete the Suite and proceed as per your confirmation.

Page 151: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 150

Suite Archiving QEngine allows you to maintain Suites in a Version Control System. Archiving is done through the Version Control tool. This tool is invoked through the menu item Version Control under the Tools menu of any of the Test Studios. To customize CVS, follow the below given steps:

• Invoke any of the Test Studios.

• Set the CVS Server details.

• Configure CVS details and proceed archiving. The topics covered in this book are as follows:

• Configuring CVS Server Options

• Adding Files to the CVS

• Checking In Files

• Checking Out Files

• Checking File Log

• Checking Files Diff

• Checking Status

• Updating Files in CVS

• Importing Files

Page 152: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 151

Suite Customization Customizing Test Results

• Overview • Customized Status from Custom Scripts • Customized Status from Validation Class

Overview QEngine allows customization to define test result status. In addition to result status passed, failed, error provided by QEngine, you can define custom statuses like Device Error or Unknown. This offers flexibility in using custom scripts / validations which return values representing customized error conditions. Customized Status from Custom Scripts When custom scripts are used the integer return values representing result status are configured as inputs to the file StatusConfig.xml under <QEngine Home>/projects/<project name>/conf directory. For example a script returns integer values that range from 200 to 250 when there is a device error. Add the entry to the StatusConfig.xml as

<Status name="DEVICE_ERROR"> <range min="200" max="250"/> </Status>

When script returns integer say 212 then the test case will be reported with status DEVICE_ERROR. Customized Status from Custom Classes In custom classes new statuses like DEVICE_CONNECTION_ERROR can be added and returned from the status instances obtained from the custom code as shown below:

Status DEVICE_CONN_ERROR = Status.create(212,"DEVICE_CONNECTION_ERROR"); Status DEVICE_PORT_ERROR = Status.create(213,"DEVICE_PORT_ERROR");

The status name of the results 212 has to be configured in the file StatusConfig.xml as

<Status name="DEVICE_CONNECTION_ERROR"> <range min="212" max="212"/> </Status>

When class returns integer say 212 then the test case will be reported with status DEVICE_CONNECTION_ERROR.

Warning: • Do not remove DATA ERROR / ENVIRONMENT ERROR / PASSED / FAILED ranges

configured. If these entries are removed or changed QEngine reporting will malfunction. • You can only add new status or new ranges to existing status. • User Defined test statuses should always be positioned without changing the priority of

PASSED and FAILED.

Please refer to com.adventnet.qengine.server.Status for details on adding new statuses in your custom class.

Page 153: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 152

Integrating Third Party VCS The topics covered in this book as follows:

• Integrating Third Party VCS

• Customizing Server Details UI

• Customizing Command Action

• Customizing Explorer

Page 154: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 153

Integrating Third Party Version Control System QEngine not only provides a VCS, Concurrent Version Control System by default but also allows integration of third-party Version Control Systems. As every VCS system has slightly different requirements, QEngine provides a customizable framework that will help enable a variety of Version Control Systems. Purpose of Version Control System

• Bugs introduced during software modification might not be detected until a long time after. With Version Control System, you can easily retrieve old versions to see exactly which change caused the bug.

• Every version of every file you have ever created can be stored. Version Control System stores all the versions of a file in a single file by storing only the differences between versions.

• Version Control System helps overwriting changes made by other group members when working as a group.

Example of Version control System • RCS : Revision Control System • CVS : Version Control System. • P4

VCS Server Details The User Interface shown below is the one provided by QEngine for Concurrent Version System (CVS) for obtaining CVS Server Details.

Page 155: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 154

This screen above is invoked through the Tools -->Version Control-->Server Settings menu item. Clicking OK on this screen, stores the CVS Server details in the userProfile.xml file in the < QEngine Home >/conf directory. The third party VCS you are in favour of integrating may obtain more or lesser number of server details from the user than obtained from the UI shown above. Hence QEngine allows customization of the UI and also the customization of how and where you store the obtained VCS Server details.

• To customize the Server Details UI, refer to Customizing Server Details UI.

• To customize the storing of Server Details refer to Customizing Server Details.

VCS Client Details The User Interface shown below is the one provided by QEngine for Concurrent Version System (CVS) for obtaining Command Details.

QEngine allows customization of the VCS Command Window, VCS Explorer and the VCS Output Window but does not allow customization of the VCS Command Bar. The VCS Command Bar, consists of all the common commands performed by a VCS. Based on the selection of command in the VCS Command Bar, the VCS Command Window is called and the action to be performed by the Execute button is also determined.

Page 156: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 155

To perform the functions like Add Files, Check-in, etc. on the VCS Command Bar, QEngine allows customization of what command action ( this is mandatory as command action varies from one VCS to the other) has to be performed by the Execute button.

• To customize the command action to be performed by Execute button refer to Customizing Command Action.

• To customize the VCS Explorer refer to Customizing Explorer.

Page 157: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 156

Customizing Server Details UI • Overview • Description • Packages Used • Code Snippet • Configuring Server Details

Overview The User Interface to obtain the VCS Server properties can be plugged into the QEngine by implementing the interface com.adventnet.qengine.client.versioning.VersioningServerDetailsUI . Description This example shows a sample implementation of this interface com.adventnet.qengine.client.versioning.VersioningServerDetailsUI. . Packages Used import java.util.Properties; import com.adventnet.qengine.versioning.client.VersioningServerDetailsUI; Code Snippet

public class PerforceServerDetailsUI implements VersioningServerDetailsUI { JDialog getDisplayPanel() { /** Custom Code, Returns server details UI. */ } void setProperties(Properties props) { //Set the properties that have to be passed for this class. These properties are read from versioning.conf in <QEngine Home>/conf directory. ........... ........... } }

• Place the java file under < QEngine home>/projects/ <suite name>/usersrc.

Note: You can use the Editor Tool to select the interface you want to implement and auto-generate implementation code snippet.

Configuring Server Details Specify the custom class name for the parameter SERVER CLASS_NAME in versioning.conf under <QEngine_Home>/conf directory.

Page 158: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 157

Customizing Command Action • Overview

• Description

• Packages Used

• Code Snippet

• Configuring Command Action

Overview While integrating your VCS into QEngine you may be satisfied with the UI provisions of Versioning Command Execution screen (which is shown below) but not with the command action performed by the Execute button for each action ( viz Add Files, Check In, Check Out, etc.) in the VCS Command Bar. To overcome this disadvantage in reusing our User Interface for your VCS, QEngine allows you to implement the interface com.adventnet.qengine.server.versioning.VersioningCommandExecution and customize the action performed by the Execute button for each Action of the Command Bar. Description This example shows the implementation of the interface com.adventnet.qengine.server.versioning.VersioningCommandExecution for the various actions in the VCS Command Bar. Packages Used import java.util.Properties; import com.adventnet.qengine.server.versioning.VersioningCommandExecution; Code Snippet

package com.adventnet.qengine.server.versioning; /** * Interface for Various Versioning Control Systems to execute * their commands from the UI. * */ public class Test implements VersioningCommandExecution { void add(String fileName, Properties props) { // * Executes the add Command . } void checkin(String fileName, Properties props) { // * Executes the checkin Command .

Page 159: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 158

} void checkout(String fileName, Properties props) { // * Executes the checkout Command . } void diff(String fileName, Properties props) { //* Executes the diff Command . } void log(String fileName, Properties props) { // * Executes the log Command . } void status(String fileName, Properties props) { // * Executes the status Command . } void update(String fileName, Properties props) { // * Executes the update Command . } void importFile(String fileName, Properties props) { // * Executes the importiFile Command . } } }

Configuring Command Action Specify the custom class name for the parameter COMMAND ACTION_CLASS in versioning.conf under <QEngine_Home>/conf directory.

Page 160: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 159

Customizing Explorer

• Overview

• Description

• Packages Used

• Code Snippet

• Configuring Explorer

Overview While integrating your VCS into QEngine you may not be satisfied with the UI provisions of the Explorer window. Your requirements for the test data package may be different. To overcome this disadvantage QEngine allows you to implement the interface com.adventnet.qengine.client.versioning.VCSExplorer . Description This example shows the implementation of the interface com.adventnet.qengine.client.versioning.VCSExplorer for the customization of VCS Explorer. Packages Used import javax.swing.JPanel; Code Snippet public class VCSExplorerpanel implements VCSExplorer { public String getFiles() { ................ ................ } public JPanel getVCSExplorerPanel() { ................ ................ } public void setProjectName(String projectName) { ................ ................ } }

• Place the Java file under < QEngine home>/projects/ <suite name>/usersrc.

Note: You can use the Editor Tool to select the interface you want to implement and auto-generate implementation code snippet.

Page 161: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 160

Configuring Explorer Specify the custom class name for the parameter EXPLORER_WINDOW in versioning.conf under <QEngine_Home>/conf directory.

Page 162: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 161

Suite Debugging Suite Debugging: Introduction Suite debugging tracks and informs tests failures identified during test execution by logging the information during a test run session. This information helps in debugging the failure of a test. The topics covered in this book are as follows:

• Suite Debugging

• Configuring Log Levels

Page 163: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 162

Suite Debugging • Overview

• Viewing Brief Debug Information

• Viewing Detailed Debug Information

Overview Debugging involves backwards reasoning to know what happened, and where. QEngine logs the information during a test run session and these informations helps in debugging the failure of a test. Debugging can be achieved by

• Viewing Brief Debug Information

• Viewing Detailed Debug Information

Viewing Brief Debug Information

Debug Information during Execution

Logs can be viewed in the Test Studios during test execution. The logs messages are displayed in the Output and Error panel of the Test Studios. Log levels are provided to control the log messages displayed during test execution. You may control QEngine logs based on severity of log messages. Please refer to Configuring Log Levels for further details.

Debug Information after Execution You may view the debug information through the interactive logs screen. Invoke this screen following the below given steps:

1. Choose the menu item Test Results under View menu. This displays the Logs & Reports panel.

2. Choose the Test Reports tab. 3. You may find details to debug the test case in the Debug Info column of the report

displayed.

Viewing Detailed Debug Information

From Summary Report

Detailed logs can be viewed in the Summary Report file summary.html under < QEngine Home>/projects/<Suite Name>/testreports/testreports_<month>_<date>_<hour>_<minutes>/summaryreport directory under the column Error. From Logs files Following folders can be referred under <Suite home> for the logs: testlogs - for Functional and API testing perflogs - for Performance testing weblogs - for Web Testing

Page 164: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 163

Configuring Log Levels • Invoking Debug Level Screen

• Configuring the Screen

Invoking Debug Level Screen 1. Invoke any of the Test Studios. 2. Choose the menu item Debug Level under the menu Settings. This displays a Debug Level

Screen.

Configuring Debug Values 1. In the screen, select one of below given debug values.

SUPPRESS ALL LOGS

Debug Level SUPPRESS ALL LOGS, prevents any message being printed in both the testerr.txt and testout.txt.

SUPPRESS QENGINE LOG

Debug Level SUPPRESS QENGINE LOGS, prevents all QEngine logs and prints only the Application logs in the testerr.txt of testout.txt based on their nature. SEVERE

Debug Level SEVERE, prints messages with the severity level 'SEVERE' in either the testerr.txt or the testout.txt based on their nature. WARNING Debug Level WARNING, prints messages with severity level 'WARNING', and messages with priority higher than WARNING in either the testerr.txt or the testout.txt based on their nature. CONFIG

Debug Level CONFIG, prints messages with severity level 'CONFIG', and messages with priority higher than CONFIG in either the testerr.txt or the testout.txt based on their nature. INFO

Debug Level INFO, prints messages with severity level 'INFO', and messages with priority higher than INFO in either the testerr.txt or the testout.txt based on their nature. INFO contains prints for information.

SHOW ALL LOGS

Debug Level ALL LOGS, prints all both QEngine's and the Application's messages in either the testerr.txt or the testout.txt based on their nature.

Page 165: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 164

Tutorials

Web Testing Tutorial Introduction Tutorials help you in learning a module much more easier. A tutorial has been developed to illustrate some of the important functions of Web Functional and Web Performance Test tools of AdventNet QEngine. Follow the below given link for the details:

• Adding/Executing Web Functional Test Case

• Adding/Executing Web Performance Test Case

Page 166: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 165

Adding/Executing Web Performance Tests Adding Web Performance Tests The topics covered in this book are as follows:

• Getting Started with Web Performance Tutorial • Illustrating Creating Business case • Illustrating Data Parameterization • Illustrating Load Test Configurations • Illustrating Load Test Execution

Page 167: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 166

Getting Started with Web Performance Tutorial In this section you will learn how to develop and execute Web Performance test cases using Web Performance test Studio using the sample application Employee Scheduler. The basic steps involved in Web Performance testing are as follows:

1. Recording the list of actions that a user performs on the web-site. 2. Parameterize the user data, URL and its parameters. 3. Configure the user profiles (group of business cases), workloads and load tests. 4. Execute the load test with the specified load conditions.

Step 1: Invoking Web Performance Studio Invoke the Web Performance Studio from QEngine launcher --> Web Performance Studio icon, or through the StartWebPerfStudio.bat/sh file in <QEngine Home>/bin directory. Step 2: Creating New Suite To create a new suite, click File -> New Suite menu. In the 'Suite Creation' dialog, specify the Suite Name, Application Name and version and click Ok to create the suite. The new suite would be created and added to the tree on the left side pane. Step 3: Configure the browser settings Browser settings involves configuring the port settings in the browser and configuring the proxy settings. Configuring Port Settings Change the port settings in the browser as shown below:

Internet Explorer

• Choose the menu "Tools--> Internet Options".

• Choose the tab, "Connections".

• Click on the button "LAN Settings".

• In the "Proxy server" section, select the checkbox labeled, "Use proxy server for your LAN...".

• Click the button labeled, "Advanced".

• For HTTP, Enter the proxy host name and enter the port as 8091. Check "Use the same proxy for all protocols".

• Click on "OK" button in the subsequent screens.

Mozilla • Choose the menu, "Edit --> Preferences".

• In the tree, choose "Advanced -- > Proxies".

• Click the radio button , "Manual Proxy Configuration".

• For the required protocols, enter the proxy host name and enter the port as "8091".

• Click "OK" to save the configuration.

Page 168: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 167

Configure Proxy Settings When you are connected to the Internet through your Local Area Network, all your HTTP requests are routed through the proxy server. Proxy settings UI serves the purpose of holding the proxy server information. Web Performance testing tool should know the Proxy Server Details so as to send and receive HTTP requests/response. To configure Proxy Settings, click Settings -> Proxy Settings. Select your type of connection to the internet. Users who connect to the web through Dial-up modem, should select the "Direct Connection to the Internet" option. User who connect to the web through their LAN should select the "Manual Proxy Configuration" option. Step 5: Create a Business case A business case is the set of user actions performed on the web site which are recorded as URLs. To create a business case,

1. Select the suite under which you want to create the businesscase. 2. Click File -> New Businesscase menu. Specify the name of the business case in the save dialog

and click on the Save button. The new business case will be created for the selected suite. After creating a bussiness case, you need to record the user actions on the web site. To start recording, select the business case and click Record -> Start Record menu or use the tool bar button. Step 6: Parameterizing the user specific data Parameterization lets you use a different login name and password for each virtual user (dynamic substitution of values). There’s no need for each User Scenario to contain a separate script that performs the task of logging in. Similarly, you can parameterize the cookies and other headers passed in the request header such as Scheme, Proxy-Connection, etc. You can also parameterize the parameters passed with the URL string. Step 7: Load Test Configuration A load test definition involves defining the user profiles (group of business cases), defining the workloads and associating the user profiles and workloads to the load test. User profile defines the % of users executing a business. A profile consists of one or more business cases with a certain percent of the users executing the business cases. Workload defines the number of users along with the rate or interval at which the users execute the business case. Step 8: Start Play To run the performance test or playback, select a businesscase, click on Play -> Start Play menu item or use the toolbar button. The Play Status UI should show up. The chosen businesscase will be selected in the Testcase combo box. To start play, click Start Play button. Web Application under test (Sample Suite - WebPerformanceDemo) To illustrate how one can test the performance of a web site, a sample test suite named WebPerformanceDemo for Employee Scheduler application has been already developed and bundled with the product and placed in <QEngine Home>/projects/WebPerformanceDemo folder. You can

Page 169: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 168

open it in Web Performance Test Studio using File --> Open Suite menu option. Execute the load tests one by one and get a feel of them. Employee Scheduler is an open source application available freely on the web. This application was developed to reduce the effort of employers in scheduling an appropriate work time for the employees. In this application, the employer or the supervisor can login and create user logins for the employees. The employees can then connect to the application, and specify their work schedules. Based on the work schedules specified by the employee, the supervisor can allocate appropriate work schedules. This application mainly caters to work scheduling for part time employees of a company. The sample suite WebPerformanceDemo has some default load tests. These load tests illustrate some of the important features of Web Performance Test Studio. Follow the below given links for the related documents:

• Illustrating Creating Business case • Illustrating Data Parameterization • Illustrating Load Test Configurations • Illustrating Load Test Execution

Page 170: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 169

Illustrating Creating Business Cases For the Employee Scheduler application, three business cases have been considered. They are:

1. Employee logging into the application, creating his work schedule and logging out. 2. Employee logging into the application, changing password and logging out. 3. Employee logging with a wrong password, and then logging-in with the correct password and

logging out. Start Recording

1. Configure Port Settings and Proxy Settings. 2. Invoke Web Performance Test Studio and click Start record button in the toolbar. 3. Launch the browser and key in the URL : http://demo.qachoice.com.

Recording businesscase "create_schedule"

1. Login into the application with the username and password as emp/emp. The schedule chart would be shown.

2. Click the edit button to edit the schedule. 3. Save the schedule and logout of the application

Recording businesscase "update_user_details"

1. Login into the application with the username and password as emp/emp. 2. Click on My Information on the left side panel. User information form would be shown. 3. Modify the password and click the update button. 4. Logout of the application.

Recording businesscase "validate_user_login"

1. Try logging into the system with incorrect username and password. An error message would be shown.

2. Login into the application with correct username and password. 3. Logout of the application

The above steps will create the business cases for the Employee Scheduler application.

Page 171: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 170

Illustrating Data Parameterization Parameterization is the process of substituting values for dynamic parameters from a CSV file or from the Database. For example, when testing a web application that contains a login page, "parameterization” lets you use a different login name and password for each virtual user (dynamic substitution of values). There’s no need for each User Scenario to contain a separate script that performs the task of logging in. Similarly, you can parameterize the cookies and other headers passed in the request header such as Scheme, Proxy-Connection, etc. You can also parameterize the parameters passed with the URL string. In this example suite, the user name and password are dynamically substituted from the csv file. For this purpose, a data.csv file is created and placed under <QEngine_Home>/projects/WebPerformanceDemo/usersrc folder. The csv file contains 100 usernames and password starting from emp1 to emp100. 100 logins should be populated in the application's database. This is done using the following steps:

1. Select a businesscase and click the Record -> View or Parameterize URL menu item. The recorded URLs will be loaded in a tree.

2. Select the URL used for logging into the application and expand the node. 3. Choose the parameters under the expanded URL node. The parameters for the URL should be

shown on the right side screen. 4. Select the parameter with the name as 'userpass', set the 'Type' as 'dataset'. 5. In the parameters table, the CSV Data Configuration UI will be shown by default. 6. Enter a datasource name (say emp_pass1), browse and select the csv file and specify the

column number as '0' . 7. Similarly, select the parameter 'username' and configure the data source for the same.

The above steps will use the same script with 100 different usernames and password to login-in and simulate the load of 100 virtual users.

Page 172: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 171

Illustrating Load Test Configurations To configure the load test, open the Load Test Configurator UI by clicking the Play -> Load Test Configurator menu item or the toolbar button. By default, the 'TestCase Configurator UI' will be shown. User Profiles, Workloads and TestCases can be configured using this UI. Profile Configuration

1. Choose the 'Profile Manager' tab. The Profile Manager UI will be shown on the right side panel. 2. Click the New Button and enter a profile name (say DemoProfile). 3. Select all the businesscases. 4. Configure the following load for the businesscases.

1. create_schedule - 60% 2. update_user_details - 20% 3. validate_user_login - 20%

5. Configure the host as http://demo.qachoice.com/ and the corresponding User Agent. 6. Save all the businesscases and create the profile by clicking the Update button.

WorkLoad Configuration

1. Choose the 'WorkLoad Configurator' tab. The WorkLoad Configurator UI will be shown on the right side panel.

2. Enter the WorkLoad Name (say DemoWorkLoad). 3. Select the type of test as 'normal' and enter the total number of users for the test, total test

duration and the sample period. Click the Update button. TestCase Configuration

1. Click the 'TestCase Configurator' tab. 2. The 'TestCase Configuration UI' will be shown on the right side panel. 3. Click the New button. The available profiles and workloads will be displayed in the corresponding

combo box. 4. Enter the TestCase name (say DemoCase). 5. Select the DemoProfile and DemoWorkLoad for Profile and WorkLoad. 6. Specify the Reporting Sample Period and click the Update button to save the testcase.

Page 173: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 172

Illustrating Load Test Execution You have the following choices to run the load tests:

• Executing Load Test from Studio • Executing Load Test from Command Line

Executing Load Test from Studio

1. Select the business case (create_schedule or update_user_details or validate_user_login) from the Suites Tree.

2. Choose the toolbar icon or choose Play->Start Play menu item. This displays the Execution Status UI as shown below.

3. From the TestCase field, select the load test to be executed and click the Start Test button.

4. This executes the selected load test. You can view the execution status such as Username, URL, Status and Response Code.

Executing Load Test from Command Line To execute the load test from command line, you need to sequence the load tests before execution. Refer "Web Performance Test Sequencing" for details on how to sequence the load tests and then execute them.

Page 174: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 173

Adding/Executing Web Functional Test cases Adding / Executing Web Test Test Cases Web Application Overview Web testing module of QEngine facilitates Record and Playback of actions on web pages. In addition, it supports features such as Checkpoints that help in verifying the data and properties of the web page. This tutorial uses a sample Payroll application developed by AdventNet to illustrate the various features of Web Test module. You can find the web pages of this sample application bundled in the product at <QEngine Home>/examples/payrollsystem folder. The sample Payroll system application is made up of 5 web pages:

1. Home page 2. Add Employee details form 3. Modify Employee details form 4. View Employee details form 5. Payroll reports page.

To view this application, open index.html present in <QEngine Home>/examples/payrollsystem folder. Menu options are available at the top of the page. Click on each menu item to view the pages mentioned above. The next step would be to learn how to use the WebTest Studio for developing test cases to test these pages.

Page 175: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 174

Getting Started with the Tutorial In this section, you will learn how to record and playback the actions on the sample Payroll application using the tool named Web Client Test Studio. Step 1: Invoking Web Test Studio

Invoke the Web Test Studio from QEngine launcher --> Web Test Studio icon, , or through the startwebteststudio.bat/sh file in <QEngine Home>/bin directory. Step 2: Selecting the Suite Settings (Browser Options and Execute Options)

• From the Suite tree, select the Suite for which you want to add the test case.

• Choose the menu item Preferences from the Settings menu.

• Select Browser enables you to choose the appropriate browser for record and playback of browser events. For details, please refer to Browser Options.

• Execute Options enables you to set

• the speed with which the recorded test cases will be played.

• the maximum time for which Web tester needs to wait for playing a recorded operation such as document loading in a window.

• For details please refer Execute Options. Step 3: Add New Script

Click File->New Script menu item from the menu bar or click the tool bar option . In the dialog, specify the name of the new script file and click the Save button. The script file is by default saved in <QEngine_Home>/webscripts/<script_name> directory. You can also save the script file in any other directory under <QEngine_Home>/webscripts/ directory (by creating a new directory). Step 4: Launch Browser

Click Control->Launch Browser menu item from the menu bar or click the tool bar option . IE browser will be launched. Enter the URL of the page index.html from the sample Payroll application. Step 5: Start Recording Web Page Events To record the events, click Control->Start Recording menu item from the menu bar or click the tool bar

option . Note that when you choose this option a new browser window will be launched. Hence, you can skip step 4 if not required. The list of actions performed in the web page are recorded in the newly created script file. The script file can be viewed in the script editor. Step 6: Stop Recording Events To stop recording events, click Control->Stop Recording menu item from the menu bar or click the tool

bar option .

Page 176: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 175

Step 6: Play Recorded Events To play the recorded events, click on the script name in the left tree and then either choose the toolbar

icon or choose Play->Execute Test menu item. You will see cursor highlight in the script editor window which indicates the line that is being executed. Also, you will see the actions performed in the launched window. You can notice the status of the test case execution at the bottom of the tool. Output and Error messages are also displayed. On completion of test case execution, you can click on the menu View --> Test Results or View --> Summary Report and view the outcome of the test case execution. Sample test suite A Web test suite for Payroll application has been already developed and bundled with the product <QEngine Home>/projects/AdventNetPayrollSystem folder. You can open it in Web Test Studio using File --> Open Suite menu option. Execute the scripts one by one and get a feel of them.

These sample scripts illustrate some of the important features of Web Client Test Studio. Follow the below given links for the related documents:

1. Map area testing 2. Form elements testing 3. GUI Checkpoint configuration - Element Checkpoint 4. GUI Checkpoint configuration - Table Checkpoint 5. Usage of for loop in scripts 6. Testing IFrame and Dialogs (Modal and Modeless)

Page 177: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 176

Testing GUI Objects Introduction A web page can be designed to have different types of elements such as text fields, check boxes, radio buttons, list boxes, images, hyperlinks etc. Web Studio facilitates recording actions on these elements. Find below explanation on the sample scripts provided to illustrate the same.

Testing Map area elements Testing Form elements

Testing Map area elements A Map area is a specific region on an image and the bounded region is identified by a rectangle. If you refer the html page index.html, you will see the map area definition as shown below: <map name="Map"> <area shape="rect" coords="134,164,167,195" href="javascript:callalertcalf();"> <area shape="rect" coords="506,216,533,248" href="javascript:callalertindia();"> <area shape="rect" coords="535,175,564,198" href="javascript:callalertchina();"> <area shape="rect" coords="601,164,633,194" href="javascript:callalertjapan();"> </map>

Web studio is capable of recording such map areas. The script named test-map-area does the same. The four map areas on the world map (identified by tiny red dots) are clicked and the resulting pop up shows the country name. Execute the script, test-map-area and you will see the results as explained above. On successful execution, you can view the test logs and reports via the menu View --> Test Results. The results will appear as shown below:

Page 178: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 177

Testing Form elements Refer the sample form, add.html. It is a form via which Employee details are added. This form contains most of the form elements that are commonly used. The script test-form-elements has recorded actions on these elements. Execute the script and you will see the recorded actions replayed. On successful execution, you can view the test logs and reports via the menu View --> Test Results. The results will appear as shown below:

Page 179: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 178

Page 180: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 179

Illustrating Checkpoint Configuration Introduction A checkpoint indicates verification of an action's result in a testing environment. Web Test Studio provides 2 type of checking:

• Single property checking ( Otherwise called as a "Checkpoint") • Multiple properties checking (Otherwise called as a "Test Case")

You can also retrieve the value of a property of the web element and display or verify it. Built-in functions have been provided for the same which you can insert in the webscript during runtime. In this tutorial, illustration has been provided all the above types of checks. Following script illustrate the same:

1. test-element-checkpoints 2. test-table-checkpoint 3. test-checkpoints-getdata 4. test-static-substitution

Element Checkpoint Configuration This has been illustrated in the script named "test-element-checkpoints" in the sample Payroll application. On expanding this webscript in the tree, you can see two checkpoint configurations named lang-check and comm-check. name-check checkpoint has been designed to check if the name of the employee is "Peter Patrick".

Page 181: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 180

lang-check checkpoint has been designed to check if the language French has been chosen in the web page.

During recording, these checkpoints were inserted as explained in Adding a GUI Checkpoint. On executing the scripts, you will see that name-check passes but lang-check fails as "French" is not chosen. To view the results, click on View --> Test Results. The results will appear as shown below:

Page 182: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 181

Table Checkpoint Configuration This has been illustrated in the script named "test-table-checkpoint" in the sample Payroll application. On expanding this webscript in the tree, you can see two checkpoint configurations named if-peter-present and if-mary-present. if-peter-present checkpoint has been designed to check if the value at the cell 3,2 in the displayed table contains the employee name Peter Warting.

Page 183: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 182

if-mary-present checkpoint has been designed to check if the value at the cell 4,2 in the displayed table contains the employee name Mary.

During recording, these checkpoints were inserted as explained in Adding a GUI Checkpoint. On executing the scripts, you will see that if-peter-present check passes but if-mary-present check fails as "Mary" is not found in the specified cell. To view the results, click on View --> Test Results. The results will appear as shown below:

Page 184: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 183

Testing Checkpoints and Retrieve Data functions This has been illustrated in the script named "test-checkpoints-getdata" in the sample Payroll application. Notice the functions editGetInfo(), buttonCheckInfo(), pageGetInfo() etc used. displayMessage() will display the result in the logs panel and log files. reportStatus() will show the result in web reports. Testing text in Alert Dialogs This has been illustrated in the script named "test-static-substitution" in the sample Payroll application. This checks if the entered date is before the current date.

Page 185: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 184

Illustrating For Construct Introduction This sample webscript named test-for-construct is an illustration of writing data driven test cases and usage of programming constructs such as for loop in the scripts. Assumption is that there exists a CSV (Comma Separated Value) file that stores details of the employees such as employee name, department. This data is going to drive the testing of the page view.html. 4 lines (records) exists in the CSV file. This file named test.csv is available in <QEngine Home>/examples/payrollsystem folder. On executing the script test-for-construct, you will see that each employee's data is displayed in view.html. This is achieved using a for loop in the script. Generating scripts with for loops You need to manually insert the programming constructs such as for, if, while etc after doing the bare minimal recording of the web page. In case of test-for-construct script,

1. the page view.html was launched in a browser 2. some dummy values were entered in the text fields 3. recording was stopped.

This generated the skeletal script where the web page elements were recorded. Then the statements for reading the CSV file, storing the values into variables and replacing them in setText statements were done. Find below a walk through of the script lines. Launch the browser and load the Payroll system home page.

useLocalMapFile() launchApplication("about:blank") changeURL("$APPHOME/index.html",2)

Move to view.html

setWindow( "AdventNet Payroll System",2) clickList("View",2) setWindow( "AdventNet Payroll System Package - Form to View Employee Details",2)

Specify the CSV file name to be read from

initCSV("$APPHOME\test.csv")

Using the for loop, read the the lines 0 to 4 from the CSV file. Copy the values from file to local variables name and dept. Set these in the text fields of the web page.

Page 186: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 185

for i in range(0,4): name=getCSVValueAt(i,1) dept=getCSVValueAt(i,2) setText("yourname",name,3) setText("dept",dept,3)

Jython scripting language is used in webscripts and hence you can refer its syntax manual for the syntax of various programming constructs such as if, for, while etc. On executing the script, you will see that the values are retrieved from the CSV file one by one and displayed in the form fields. To view the results of testing , click on View --> Test Results. The results will appear as shown below:

Page 187: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 186

Testing IFrame and Dialogs IFrame: Web Test Studio supports testing of IFrames which are "Inline Frame " which can be placed any where in a web page and which in turn can contain another web page. Dialogs: Dialogs can be Modal or Modeless.

A Modal dialog does not allow you to carry on operations with other open windows when it is open/active. You need to close it and only then can continue working with other windows. A Modeless dialog allows you to carry on operations with other open windows even when it is open/active.

Testing of web pages containing <iframe> has been illustrated in the scripts named "test-Iframes1" and "test-Iframes2"in the sample Payroll application. Testing of Modal Dialog has been illustrated in the script named "test-modal-dialog". Testing of Modeless Dialog has been illustrated in the script named "test-modeless-dialog".

Page 188: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 187

Migration Migration of your test suites is required when there are some changes at the API level. If migration is required with respect to the current release, then Release Notes will contain the required information. Detailed procedural steps are provided to guide the developers and administrators during the course of migration. Steps to be followed in general are as follows:

1. Identify the project (test suite) to be migrated and also identify the product version to which you want to move to.

2. Export the project "TestSuite" as explained in Exporting a Suite. 3. Install the latest product. Use Importing a Suite option to import the suite into the current working

version of the product. 4. Run the Migrator using migrator.bat/sh file present in <QEngine Home>/bin directory as per the

usage shown below:

Usage <QEngine_Home>/bin migrator.bat/sh <Suite_Name>

Example <QEngine_Home>/bin migrator.bat/sh TestSuite

Repeat each of these steps in sequence, to move to the next version of the product.

Page 189: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 188

FAQ FAQ: Introduction

• Web Functional Testing

• Web Performance Testing

Page 190: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 189

FAQ Web Functional Testing • Can I record a script in Mozilla and replay it in IE ?

• Can QEngine do Functional Testing of Application GUI?

• Can QEngine test Java applets ?

• What version of Mozilla and IE is supported for web testing ?

• Can recorded scripts be run in regression ?

• Does WebTest run on Solaris ?

• What category of testing does this tool do ? functionality entirely inside the browser or does it simulates HTTP requests?

• Is their a provision to synchronize if the server response is slower during playback than at the time of recording?

• Can I have checkpoints or test cases configured for element properties / javascript messages which would be dynamically formed ?

• Does this tool have a provision to capture unexpected pop-up windows screen shots?

• Can I invoke a system application from my webscript ?

• Can I call another webscript from the current webscript ?

• Do you have any list of commands / functions used in webscripts ?

• Do you test web pages containing Active X components ? Can I record a script in Mozilla and replay it in IE ? Yes. Vice versa is also possible. Can QEngine do Functional Testing of Application GUI? Yes. WebTest module of QEngine can be used to test web pages. Can QEngine test Java applets ? No. Currently, not supported. What version of Mozilla and IE is supported for web testing ? Internet Explorer 6.0 and Mozilla 1.5 and 1.6. Can recorded scripts be run in regression ? Yes. Does Web test run on Solaris ? No. Currently not supported.

Page 191: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 190

What category of testing does this tool do ? Functionality entirely inside the browser or does it simulates HTTP requests? This tool records from and plays entirely inside the browser. Is their a provision to synchronize if the server response is slower during playback than at the time of recording ? Yes. Use Settings->Preferences->Execute Options to set maximum time limit to wait for response. Can I have checkpoints or test cases configured for element properties / javascript messages which would be dynamically formed ? Yes. A provision to substitute data at runtime will allow this type of testing. Does this tool have a provision to capture unexpected pop-up windows screen shots? Yes. Refer Handling Exceptions. Can I invoke a system application from my webscript ? Yes. Use invokeApplication() or invokeApplicationInThread(). Can I call another webscript from the current webscript ? Yes. Use callScript() or callScriptUpto(). Do you have any list of the commands / functions used in webscripts ? Yes. Refer Commands Summary. Do you test web pages containing Active X components ? No. Currently not supported.

Page 192: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 191

FAQ Web Performance Testing

• Can Web Performance Test Tool record HTTPS requests using the recording proxy?

• Does Web Performance Test Tool implement Cache Handling ?

• Does the tool handle Cookies in play?

• What are the Web Browsers supported?

• What kind of hardware configuration do you recommend?

• What kind of support and services do you offer?

• What are the basic configurations to be done before start recording the URLs?

• How many virtual users can QEngine simulate? • How many concurrent threads would be active at any point of time of the test?

Can Web Performance Test Tool record HTTPS requests using the recording proxy? Yes, it can record HTTPS and play them back. Does Web Performance Test Tool implement Cache Handling ? No .All requests are treated as a first time request. Does the tool handle Cookies in play? Yes. What are the Web Browsers supported? Any web browser is supported (such as Internet Explorer, Netscape, Mozilla, Konqueror, Opera, etc). What kind of hardware configuration do you recommend? Please refer to the topic Hardware Requirements for details. What kind of support and services do you offer? For obtaining technical support, please send email to [email protected]. For fastest and most accurate response, please include the following information in your email:

• Your name and Company • Product Release Version • Product Registration Information • Your platform • OS version and • Your browser version, if appropriate.

If you are not a registered user, you can still send email to the above address; but please note that responses to non-registered users are on a best-effort basis.

Page 193: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 192

What are the basic configurations to be done before start recording the URLs? Please refer to Web Performance Tips for further details. How many virtual users can QEngine simulate? This depends on the hardware factors of the the system that generates load. System with 512 MB RAM and I Ghz CPU can easily generate 1000VU's. How many concurrent threads would be active at any point of time of the test? QEngine does not have 1 thread per virtual user type of architecture. Hence, for a system simulating 1000 VU's thread count will vary from 40 - 400.

Page 194: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 193

Web Functional Tips • Want to create new environment variables ?

• Can I call one script from another or control the order of execution of the webscripts that need to be replayed ?

• Want to move the test suite from one installation of AdventNet QEngine to another ?

• Can I set or get variable values globally from one script to another ?

• Want to test the correctness of the hyperlinks of a web page ?

• How do I handle server name changes in a recorded script such as clickImage() or clickLink() functions ?

• Error in opening the database connection ?

• Can I define my own custom functions and call the same from webscript ?

• How do I check the values of a html table with that of a database table column ?

• Can I configure any database in QEngine to check or get db values ?

• Problem in recording a https transaction ?

• Can I use python modules in the script? If yes, how?

Want to create new environment variables for your test suite ?

Description You can define variables as per your choice whose value can be substituted in the test case definition.

Availability All Testing Solution Choose the menu option "Settings --> Environment Settings" from the studio.

Refer Configuring Environment Variables for details.

Can I call one script from another or control the order of execution of the webscripts that need to be replayed ?

Description Assume, you have a login script and you have to call this login script from script1 wherein the user first logs in and then performs the operations recorded in script1.

Availability Web Functional Testing Solution You can use the callScript function to call one script from another script.

For more details, refer to Chaining the Scripts.

Want to move the test suite from one installation of AdventNet QEngine to another ?

Description Assume, you have created test suites in AdventNet QEngine version 3.1 and now want to upgrade to version 4.0 , but want to retain the test suites.

Availability All Testing Solution You can use the Import and Export utilities. For the above scenario, use Export

utility in version 3.1 and Import utility in version 4.0. For more details, refer Exporting a Suite and Importing a Suite.

Page 195: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 194

Want to check the correctness of the hyperlinks of a web page ?

Description You want to check if the hyperlinks of a page present in a web site are valid and working fine.

Availability Web Functional Testing Solution You can use the Link Check Tool.

How do I handle server name changes in a recorded script such as clickImage() or clickLink() functions ?

Description In recorded script, want to set variable such as $SERVER_NAME in clickImage() or clickLink(), so that the server_name change can be done in a single place rather than duplicating the same in all the recorded scripts. For example, clickImage("http://www.google.com/co/images/sports.gif",2) as clickImage("http://$SERVER_NAME/co/images/sports.gif",2).

Availability Web Functional Testing Solution You need to configure the SERVER_NAME variable using Settings->Environment

Settings option and provide the appropriate value. Change in server name need to be done only in Settings->Environment Settings option and need not be duplicated in all the recorded scripts.

Error in opening the database connection ?

Description The tool is unable to open the database connection. Cause This problem is due to missing classpath for the database driver. To

configure the classpath for the database driver, you need to edit the appropriate bat/sh file and configure the classpath.

Solution In <QEngine_HOME>/setcommonenv.bat/.sh - Edit the DB_CLASSPATH variable as: DB_CLASSPATH=.\mysql\MMMySQLDriver\mysql_comp.jar where you need to give the appropriate path of the database driver such as mysql or oracle driver which you are using for your application testing.

Can I set or get variable values globally from one script to another ?

Description I want to set or get values in a global variable from any of the recorded scripts or from one script to another while using the callScript().

Availability Web Functional Testing Solution You can use the setGlobal() and getGlobal() functions. You can refer to the usage

of the functions in the following document .

Page 196: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 195

Can I define my own custom functions and call the same from webscript ?

Description I want to define my own functions using the def statement and call the same from webscript.

Availability Web Functional Testing Solution 1. Create a python script <fileName>.py and save it under <QEngine Home>/jars/

directory, and define your functions in that file. Instead of saving the .py file under <QEngine_Home>/jars directory, you can also edit the file setcommonenv.bat/sh file and provide path to the ".py" file for the variable PY_PATH. 2. In your script, you can import the .py file using from "<filename>" import * This must be done in the first line of the script. 3. Now, you can use the functions defined in the .py file.

How do I check the values of a html table with that of a database table column ?

Description I want to check the values of html table column (color) with the database table column(color).

Availability Web Functional Testing Solution Can be achieved using the sample code given below:

result=getAllHTMLTableCells("Table1") initDB("1.1") result1=getDBValues("select color from diamonds") rowcnt=len(result1) check="" for i in range(0,rowcnt): dbVal=str(result1[i][0]) tableVal=str(result[i+1][1]) if dbVal!=tableVal:

check="false" break;

if check=="false": reportStatus("dbcheck",1,"DB and Table Values Check")

else: reportStatus("dbcheck",0,"DB and Table Values Check")

In the above example, result is the array values retrieved from html table and result1 is the array values retrieved from database by executing a query. In the for loop, the value at a specified index of the array is checked and the variable is initialized to "false", if the check fails. The report status is reported using the reportStatus() to view the status of the test in the reports.

Page 197: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 196

Can I configure any database in QEngine to check or get db values ?

Description Can I use any database such as Oracle, mysql, MS SQL Server or Sybase to check or get the db values using Database Checkpoint option or Control->Data Configuration->Database option.

Availability Web Functional Testing Solution Yes, QEngine supports any JDBC compliant database. To connect to the

database and to check or get values from database, perform the following steps:

• Add the new database by clicking the "Configure" button next to the Database field in "Insert Testcase->Database Checkpoint" screen or in "Control->Data Configuration->Database" screen.

• Place the appropriate database jars in <QEngine_Home>/jars directory. • Set the appropriate classpath for the database jars by editing the

DB_CLASSPATH variable in setcommonenv.bat/.sh file in <QEngine_Home> directory.

• If you have installed QEngine and you are starting the Web Functional Test Tool from Launcher, then in addition to editing setcommonenv.bat/.sh file, you also need to set the appropriate classpath for the database jars in the Launcher UI. In Launcher UI, choose 'Options->Settings' menu item. In the 'Settings' screen, from the Applications tree-node, choose the node 'Web Functional Test Studio' and in the right hand-side 'Settings' panel, click 'Add' and then click the 'Browse' button to browse and specify the appropriate classpath for the database jars required to run mysql, Oracle, MS SQL Server or Sybase.

Problem in recording a https transaction ?

Description While trying to record a https transaction, a popup screen is displayed which says the security certificate is expired.

Availability Web Functional Testing Solution For recording https session,QEngine will use a default https certificate bundled

with the product (which is certified to AdventNet QEngine). However it will validate the certificate provided by web-server and then only establish the connection to the remote server. This is harmless. You can accept the certificate and proceed with the recording.

Page 198: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 197

Can I use python modules in the script? If yes, how?

Description Want to use python modules in webscript. Availability Web Functional Testing Solution To use python modules in webscript, download the zip file from the following url:

http://forums.adventnet.com/download.php?id=386 Extract the downloaded file under <QEngine_Home> directory. Edit the file setcommonenv.bat/sh file and provide path to "<Python_installation directory>/lib folder (where the python modules are placed) for the variable PY_PATH. Then, use the import statement to import the required python modules as import "<python_module_name>" which should be the first line in the script. Now, you can include your python modules.

Page 199: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 198

Web Functional Troubleshooting Tips Trouble - Add-In Installation Error in Mozilla/FireFox Cause - Mozilla version may not be 1.7.3,1.6 or 1.5. FireFox version may not be 1.0, 1.01, 1.02 or

1.03. Tip - Check if installed mozilla is of the version 1.7.3,1.6 or 1.5 and not any other version.

Check if installed Firefox is of the version 1.0, 1.01,1.02 or 1.03.

Trouble - Add-In Installation Error in Linux platform Cause - Patch Mozilla libstdc++.so.5 library file is required in the path which is available in gcc

3.2.x version onwards. Tip - Install gcc 3.2.2 version or above.

Trouble - Add-In Installation Error - Permission Denied

cp: cannot create regular file `/usr/local/mozilla//components/libqecomp.so': Permission denied cp: cannot create regular file `/usr/local/mozilla//components/nsIQEngine.xpt': Permission denied

Cause - Mozilla is installed in the root directory Tip - Set user permissions for directory where Mozilla is installed.

Trouble - WebTest studio hangs (when selected browser is Mozilla/FireFox and it is launched during recording)

Cause - 1. Already an instance of Mozilla/FireFox is running. 2. Mozilla/FireFox component registration has failed.

Tip - 1. Close all Mozilla/FireFox instances 2. In Settings -->Preferences dialog, choose Mozilla/FireFox and click "Install

AddIn" button.

Trouble - "C is not a registered protocol" message is shown in a dialog when trying to play a webscript recorded using IE.

Cause - IE records the file locations as C:\ or D:\ etc. But Mozilla/FireFox understand this only when the prefix "file://" is appended to it.

Tip - Change the URL to "file://C:/....".

Page 200: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 199

Trouble - Unable to detect installed Mozilla/FireFox. Cause - "Locate" utility failed in locating the Mozilla/FireFox installations in your Linux system. Tip - In the displayed alert dialog, choose "Yes" button. A file chooser dialog will be displayed.

Choose the folder where Mozilla/FireFox is installed.

Trouble - No Script available for execution Cause - There can be two reasons:

• The test suite does not contain any web scripts. Check the "webscripts" node in the tree.

• A suite filter might have been created but no webscript would have matched the filter criteria. So Web Test Studio assumes that no script is available for execution.

Trouble - On web script execution, "invalid syntax" error is displayed in logs. Cause - The object ID may contain double quotes, for example window title may be "AdventNet

"QEngine" - Multi purpose tool " . If the window title had contained doubled quotes then the object ID formed based on that would also contain double quotes.

Tip - Insert an escape sequence ( \ ) before the double quotes in the web script.

"AdventNet \"QEngine\" - Multi purpose tool "

Page 201: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 200

Web Functional Known Issues • In Mozilla, File Chooser Dialog will not get recorded.

• In the Link Checker tool, if the specified depth includes very large number of links, occasionally Out of memory exception might be thrown.

• Network Password field value in security dialog alone will be recorded as none and user to edit this value manually.

• In Mozilla / Firefox, mouseOver event for an HTML element will be recorded only when there is a attribute onMouseOver in the element.

• Key events recorded such as TAB, Function keys, etc. will not be propogated to the window during playback. Hence, the script may fail.

Page 202: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 201

Web Functional Limitations

• Web Functional Test does not allow recording from the already opened browser instance.

• Web Functional does not test java applets.

• Web Functional does not work on Solaris platform.

• Web Functional does not support Analog recording or Location based recording.

• Web Functional does not have support for screen bitmap comparison.

• Only the first 260 characters of the window title are taken into account while recording and the rest are truncated.

• During recording, when a modeless window is open, do not close the parent window from which it originated. First close the modeless window and then the parent window. Otherwise, "Debug Assertion" error will occur.

Page 203: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 202

Web Performance Tips 1. Web Performance Recording does not happen ? 2. How to add route for configured virtual Ip ? 3. How do I estimate the number of Virtual Users for Load Testing my application? 4. How do I reuse the URL parameterization done for one URL for other similar URLs in a business

case ? 5. "Address in use exception" when running in windows? 6. I am getting an error "Too many Open Files" in Linux ? 7. I am getting an error "Connect Exception prints" in the logs ? 8. Not able to execute the Web Performance test case, play exited ? 9. I am getting "Connection refused" error in testout file in Windows ? 10. Reports are not generated for Linux Server Monitoring using SSH protocol ?

Web Performance Recording does not happen ?

Description Is there any pre-requisites, before start recording the URLs in Web Performance Test Studio.

Solution Yes, following configurations has to be done. 1. Set "Every time check the server" option in cache control. 2. Clear Browser Cache and Cookies. 3. Check whether proxy settings has been properly set. 4. Check whether you have configured the appropriate port settings in the

Web Browser, by clicking the "Record --> Start Record" button which displays the Proxy Setup UI.

5. In the Proxy Setup UI, configure the Server Port (if required). Default value is 8091. If you are changing the server port, ensure that you are changing the same in Recorder Settings screen.

6. The default browser name is displayed in the Default Browser field. 7. To setup the appropriate port settings in the Web Browser, click the Setup

button which automatically takes care of setting up the port details in the Web Browser.

8. Now, you can click the Launch & Start Record button to launch the browser and start recording the transactions (urls) in the Web application. If you have already launched the browser, you can click the Record button.

9. Check the Http protocol version supported in the server.

Page 204: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 203

How to add route for configured virtual Ip ?

Description For example, Virtual IP's configured in playback engine are in the range of 1.2.3.1 - 1.2.3.254 and your actual network has a range of 192.168.12.1 - 192.168.12.254, and your playback engine is on machine with ip 192.168.12.10. In order for the web server to route network packets to the playback machine which has the virtual ip configured you need to add route configuration in the web server machine.

Solution Execute the route add commands as indicated below: Windows System route add 1.2.3.0 mask 255.255.255.0 192.168.12.10 Run this command to add a route to the destination 1.2.3.0 with the subnet mask of 255.255.255.0 with a gateway address of 192.168.12.10 ** You should have administrator previleges to execute the above command. Linux System route add -net 1.2.3.0 gw 192.168.12.10 netmask 255.255.255.0 Run this command to add a route to the destination 1.2.3.0 with the subnet mask of 255.255.255.0 and gateway address of 192.168.12.10 ** You should login as super user to execute the above command.

How do I estimate the number of Virtual Users for Load Testing my application?

Description How do I determine the number of virtual users to be simulated for load testing a Web application

Solution Determine your web-site characteristics Transactions per month (TPM) Average User time per transaction (TPS) Step 1 :First, Determine the Transactions Per Second (TPS): TPS=TPM/((number of business days)* (number of hours a day)*(60*60)) STEP 2 :Determine the number of Virtual Users required: TPS X Avg User time Per Transaction = Number of VU's Example: 6,000,000 transactions per month The average user time per transaction is 60 seconds. 417 = (6,000,000*60)/(20*12*60*60*) Number of Virtual Users's = 417.

Page 205: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 204

"Address in use exception" when running in windows?

Description In Windows OS, the TCP-IP system has a parameter that controls the maximum port number used when an application requests any available user port from the system. Ports are allocated between the values of 1024 and 5000 inclusive. During a test, if we exceed this limit, we get the address in use exception.

Solution To change this, modify the following Registry values under the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters: MaxUserPort = dword:00004e20 (20,000 decimal) Set the MaxUserPort to a larger number and reboot once the setting is changed.

I am getting an error "Too many Open Files" in Linux ?

Description This may be due to the no. of files that can be opened concurrently.

Solution To increase the file descriptors in Linux, execute the following command in su mode. echo 65535 > /proc/sys/fs/file-max

I am getting an error "Connect Exception prints" in the logs ?

Description When the server monitor is not able to open a telnet session with the remote machine, Connect Exception would be printed in the logs. In this case, the data would not be collected.

Solution Ensure that the telnet server is running in the remote machine.

Not able to execute the Web Performance test case, play exited ?

Description When you delete a business case associated with a profile and if the profile is not updated, then you will not be able to execute the test case.

Solution When you delete a business case, update the profile in which the business case is associated. Then, execute the test case.

Page 206: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 205

I am getting "Connection refused" error in testout file in Windows ?

Description Connection refused" errors occur due to queuing limit of connection requests in Windows.

Solution Windows NT 4.0 Workstation and Windows 2000 Professional are limited to a 5 pending connection requests. Windows NT 4.0 Server and Windows 2000 Server can go up to 200 connections.

Reports are not generated for Linux Server Monitoring using SSH protocol

Description While using Linux Server Monitoring using SSH protocol, the reports are not generated. The reports page displays as "No data to display".

Solution While using Linux Server Monitoring through SSH Protocol, the file sshtools-j2ssh-0.0.4-alpha-bin.tar.gz has to be download from prdownloads.sourceforge.net and extracted under <QEngine-Home>/jars directory. After extraction, the following jars should be present under <QEngine-Home>/jars directory. 1.jaxb-rt-1.0-ea.jar 2.log4j-1.2.6.jar 3.sshtools-j2ssh-0.0.4-alpha.jar Now, run the Linux Server Monitoring using SSH protocol, the reports will be generated.

Page 207: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 206

Web Performance Testing Known Issues • Server Monitoring interval for Linux System cannot be lower than three seconds.

• Database will have only the report data of the test currently under execution.

• Image redirects not handled.

Page 208: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 207

Web Performance Testing Limitations • FTP/SMTP/POP protocols are not supported.

• SSL handshake / connect timing not reported.

• Load Balancing feature not supported in distributed playback.

• Viewing of reports in real-time is not supported.

Page 209: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 208

Javadocs Javadocs contains the classes and methods pertaining to various modules of AdventNet QEngine WebTest. To view the Javadocs please refer to <QEngine_Home>/help/javadocs directory.

Page 210: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 209

Glossary

A ACP: Application Control Parameters

API: A collection of functions and data defined to provide a common, standardized point of access to a specific process, hardware device, or operating system service. An API can be contrasted with a graphical user interface or a command interface (both of which are direct user interfaces) as interfaces to an operating system or a program.

API Test Studio: An automated testing tool specifically equipped to test the functionality and scalability of the APIs of your application.

API Testing: A testing technique by which methods of any given Java API can be tested for valid, invalid and inopportune inputs.

AUT: The Application Under Test.

Authentication: The process of verifying the user's identity is called authentication.

B Black-box Testing: The process of using the requirements and external design specifications, rather

than knowledge of the internal aspects of a program, when determining what to test.

Bug Tracking: Reporting failed test cases is called Bug Tracking.

Build: An operational version of a software product which includes a specified subset of the capabilities provided by the final product.

Burn-In: A timed test is often used for "burn in tests". Performing a burn-in URL testing, you will catch problems that would only arise after extended use of the URL by a large number of users.

C Comparison Reporter: Comparison Reporter is a tool used to generate comparison reports after

comparing application test results obtained from different operating systems or application test results generated on different days.

Cookie: A small amount (less than 1k usually) of text that a web server asks the web browser to store on the browser computer. This information is sent back to the server each time the browser makes a request for a URL on that server. This is the most common (and most preferred) method of session tracking. Contrary to popular opinion, cookies cannot be used by hackers to run harmful programs on your computer or steal account numbers from your QuickenTM files.

CVS: CVS is the Concurrent Versions System, the dominant open-source network-transparent version control system.

D Daemon: A UNIX process that lies in the background until it is called to perform its designated task.

Database: It is a location where data is stored and retrieved.

DataBase Query Tool: DataBase Query Tool is a simple and easy-to-understand tool used to perform complex database queries. It provides a simple and fast way of seeing the tables in your database ( both table definition and table content ) while developing test cases.

Page 211: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 210

Debugging: The activity associated with finding and correcting an error or defect - a lack of conformance to requirements found in the software after delivery to the customer

Defect Tracking: The set of procedures and tools designed to manage the removal of defects from a system.

Dynamic Testing: Testing software through executing it.

E Editor: This tool is a full featured Java ( tm ) editor for building custom Java files required for testing. It

helps write custom code as it generates the required code snippet to be implemented for custom requirements during testing.

EJB: EJB is the abbreviation for Enterprise JavaBeans specification, one of the primary technologies in J2EE. It defines an API that makes it easy for developers to create, deploy, and manage cross-platform, component-based enterprise applications that work within the framework of the systems currently in use.

Environment Variables: Variables used to develop test cases independent of the test environment. They are preceded with a $ sign.

Exception Message: A warning provided by an application when some rule governing the operation of that application has been broken.

F Functional Test Studio: A tool used to create, modify, replicate, run functional test cases and to view the

functional test reports and logs

Functional Testing: A software testing technique to check whether the application behaves according to the specifications.

G GNATS: GNATS is a set of tools for tracking bugs reported by users to a central site. It allows problem

report management and communication with users via various means. GNATS stores all the information about problem reports in its databases and provides tools for querying, editing, and maintenance of the databases.

H Handle: A handle is an abstraction of a network reference to an Remote object.

HTTP: HTTP stands for Hypertext Transfer Protocol, the protocol used to deliver all resources on the World Wide Web. HTTP defines how messages are formatted and transmitted and how browsers request information from Web servers and how the Web servers transfer the information to the clients.

HTTP Transaction: A request sent from the browser to the server and the corresponding response from the server to the browser, both sent using HTTP. This round-trip communication path allows the browser to request a resource (URL) and receive a response from the server. It may include content sent by the browser (data entered in form fields, uploaded files) and content returned from the server (web page, image, etc).

HTTPS: HTTPS or Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL is a Web protocol developed by Netscape and built into its browser that encrypts and decrypts user page

Page 212: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 211

requests as well as the pages that are returned by the Web server. HTTPS is really just the use of Netscape's Secure Socket Layer (SSL) as a sublayer under its regular HTTP application layering

I Initialization: Initialization defines the configuration in which the Application Under Test is to be started

for testing.

Interface: Entry point for a service on a component. The only way where external components can use the services.

IP Address: It is an identifier for any device on a TCP / IP network. A 32- bit address, written as four numbers separated by periods, is assigned to each host that participates in a TCP/IP internet. It helps in routing messages based on the IP address of the destination. IP addresses are the abstraction of physical hardware addresses just as an internet is an abstraction of physical networks. To make routing efficient, each IP address is divided into a network portion and a host portion.

J J2EE: The JavaTM 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multi-tier

enterprise applications. J2EE simplifies enterprise applications by basing them on standardized, modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming.

JAR: JAR (Java Archive) is a platform-independent file format that aggregates many files into one. Multiple Java applets and their requisite components (.class files, images, and sound files) can be bundled in a JAR file and subsequently downloaded to a browser in a single HTTP transaction, greatly improving the download speed. The JAR format also supports compression, which reduces the file size, further improving the download time. In addition, the applet author can digitally sign individual entries in a JAR file to authenticate their origin. It is fully backward-compatible with existing applet code and is fully extensible.

JDBC: JDBC technology is an API that lets you access virtually any tabular data source from the Java programming language. It provides cross - RDBMS connectivity to a wide range of SQL databases, and now, with the new JDBC API, it also provides access to other tabular data sources, such as spreadsheets or flat files.

JSP: Java Server Pages - A server-side technology and an extension to the Java servlet technology that was developed by Sun as an alternative to Microsoft's ASPs (Active Server Pages) JSP have dynamic scripting capability that works in tandem with HTML code, separating the page logic from the static elements - the actual design and display of the page. Embedded in the HTML page, the Java source code and its extensions help make the HTML more functional, being used in dynamic database queries, for example. JSPs are not restricted to any specific platform or server.

JVM: Java Virtual Machine (JVM) acts as an interpreter between the Java bytecode and a computer's operating system. JVM enables Java code to run on any number of different computer platforms. JVMs read and execute Java statements one at a time and hence are often slower than a just-in-time compiler.

L Latency Period Measurement: Latency Period Measurement is the process of measuring the

responsiveness of a method in an application's API which helps infer the stability of the application and tune the application's performance rate.

Page 213: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 212

Load Testing: A testing technique that determines how many users the URL can support and what actual response time users will experience.

M MIF: Method Input Files

N Network: Network is an interconnection of two or more computers, so that they share resources. In

information technology, a network is a series of points r nodes interconnected by communication paths. Networks can interconnect with other networks and can contain sub-networks.

O Operating System: A collection of software written to provide the fundamental instructions that a

computer needs to manage resources such as memory, the file system, and processes.

P Performance Test Studio: A tool used to create, modify, replicate, and run performance test cases for

URL, memory and API performance testing and to view the performance test reports and logs.

Performance Testing: Performance is a testing technique, which aims to ensure that the software performs in accordance with operational specifications for response time and residence time.

Port: A port is a logical connection place and specifically, using the Internet's protocol, TCP/IP/UDP, the way a client program specifies a particular server program on a computer in a network.

Pre-Validation Action: Pre-Validation actions are actions that are performed after the Pre-validation condition(s) are reached and before validation.

Pre-Validation Condition: Pre - validation condition, the next step to initialization, decides the point up to which the Application Under Test should run before the QEngine starts validating the test case.

Protocol: In information technology, a protocol is the special set of rules that end points in a telecommunication connection use when they communicate.

Proxy Server: A server, typically on a private network, that allows access to external network resources. In a common network configuration, the computers on a company network are separated from the Internet by a firewall (for security reasons). Since these computers cannot access the Internet directly to browse web pages, the browser must be configured to use a proxy server (which is allowed to access the Internet) to service requests for web pages from the Internet. All common browsers support this configuration, usually in a configuration section titled "Use a Proxy Server".

Q Quality: The totality of features and characteristics of a product or service that bears on its ability to

satisfy given needs or customer requirements.

Query: A structured language that enables you to get data from the database. It is a message used to inquire about the value of some variable or a set of variables.

Query Tool: DB Query Tool is a simple and easy-to-understand tool used to perform complex database queries quickly.

Page 214: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 213

R Regression Client: Regression client is a Web based tool that administers the entire regression process

and also allows test creation, selection, and execution.

Regression Testing: Regression testing is a testing technique in which previously tested components/functionality of the system are re-tested to ensure that they function properly even after a change has been made to parts of the system.

Residence Time: The time taken by a method to execute.

Resource Usage Meter: Resource Usage Meter is a tool used to monitor and record the CPU and Memory utilization of any application, at user-specified periodic intervals, on all Operating Systems.

Response Time: The elapsed time between the end of transmission of an inquiry message and the beginning of the receipt of a response message, measured at the inquiry terminal.

RMI: Remote Method Invocation (RMI) is a Java Technology wherein an object running in a Java Virtual Machine (JVM) could be invoked from another object running in a different JVM. This technology provides remote access of objects written in Java programming language.

Runtime: Runtime is when a program is running (or being executable). That is, when you start a program running in a computer, it is runtime for that program.

S Scalable: Scalable refers to the ability to increase the hardware specification to meet growing demand

and is reliant on advances in technology staying ahead of that demand. It also refers to the ability to increase the number of servers, thus supporting increasing capacity. This is reliant on good architecture design.

SDLC: SDLC or Software Development Life Cycle is that part of the software life cycle concerned with the development of an application to the point of product delivery and acceptance.

Session Tracking: HTTP is 'stateless'. This means that between the time your browser receives a web page and asks for the next page, the server has forgotten who you are - in other words, when your browser asks for the second page, it has no way to know that it was the same browser that asked for the first page. This is obviously a problem for any application that needs to remember who you are - such as an application that requires a login. The notion of a single, unique user browsing from one page to another is referred to as a 'session'. As the web has evolved, several techniques for session tracking have evolved. The most common are cookies and URL-rewriting.

Severity: Severity is a mechanism by which we associate the critical nature of any object handled by QEngine.

SQL: Structured Query Language is a specialized programming language for sending queries to databases. Most industrial-strength and many smaller database applications can be addressed using SQL. Each specific application will have its own version of SQL implementing features unique to that application, but all SQL-capable databases support a common subset of SQL.

SSL: The Secure Sockets Layer (SSL) is a commonly-used protocol for managing the security of a message transmission on the Internet.

Stability Test Studio: Stability Test Studio is a tool used to create, modify, replicate, and run stability test cases. It is a framework that supports incremental test case development, execution, and maintenance

Stability Testing: Stability Testing provides a way to judge application availability, scalability and responsiveness to meet out the service level agreements and performance requirements.

Page 215: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 214

Stability testing involves verifying Application Availability, Application Responsiveness, Application Functionality, and Application Performance, over time and over its full range of use.

Stress Testing: A testing technique conducted to evaluate a URL at or beyond at or beyond the limits of its specified requirements.

Suite: Project contains test data, control data, and configuration data of the Application Under Test.

System Testing: Testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements.

T TCP: TCP or Transmission Control Protocol is a network protocol that enables two hosts to establish a

connection and exchange streams of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent. TCP is a little like a phone call - there is an extended connection between two hosts during which either host can send data to the other.

Test Case: Automated Test Plan

Test Case Counter: Test Case Counter is a tool that gives both a module-level count and a overall count of all the test cases defined in a project. Separate files are obtained for functional, performance, unit and stability test cases. The tool lists each test case in the project, their severity and their description.

Test Case Structure: The structure opted for test case nomenclature. A test case should have a globally unique "Identifier", with strings which are valid directory names with / without level separators and a number appended in the end for its test case structure.

Test Creation: The process of adding, modifying and deleting test cases to or from a test suite.

Test Phase: The period of time in the software life cycle during which the components of a software product are evaluated and integrated, and the software product is evaluated to determine whether or not requirements have been satisfied.

Test Plan: Test Plan documents describe the objective of the test, test procedure, expected result, severity details, and ID for the test unit.

TFFB: TTFB stands for "Time to First Byte" and is the duration between the time the virtual user made an HTTP request, and the time the first byte of the response from the web server arrived. This value gives an idea of the responsiveness of the network and web server, and consists of the socket connection time, the time to send the HTTP request, and the time to receive the first byte of the HTTP response.

U UDP: UDP or User Datagram Protocol is a communications protocol that offers a limited amount of

service when messages are exchanged between computers in a network that uses the Internet Protocol (IP). UDP is an alternative to the Transmission Control Protocol (TCP) and, together with IP, is sometimes referred to as UDP/IP. Like

URL: URL or Uniform Resource Locator is a specially formatted string that describes a resource on the Internet. This is used by the browser to determine where on the network the resource is located. A typical URL looks like this: http://www.webperformanceinc.com/library/dictionary.html

Utility: A software tool designed to perform some frequently used support function.

Page 216: Document

AdventNet QEngine WebTest 5.3

AdventNet Inc. 215

V Validation: This defines the data, with which the result after execution of the test case is to be compared

, and the procedure for comparison. Determination of the correctness of the products of software development with respect to user's need and requirement.

Virtual User: A software entity, internal to Web Performance Trainer TM, that simulates a real user by repeatedly performing a Business Case during a load test.

W Web Browser: Browser is a GUI-based hypertext client application used to access hypertext documents

and other services located on innumerable remote servers throughout the WWW and Internet. Two most popular browsers are the Netscape Navigator and the Microsoft Internet Explorer.

Web Server: The web server provides a means of access and integration from remote, or local web browser clients. Every Web server has an IP address and possibly a domain name.

WebLogic: A multi-purpose Application Server, compliant to Sun's J2EE spec, which supports deployment of EJB components within its container for building server-side business logic.

White-box Testing: A test method where the tester views the internal behavior and structure of the program.

Wrap Up: Operations executed after completion of every test run.

WWW: World Wide Web. Large network of Internet servers providing hypertext and other services to terminals running client applications such as a browser.

X XML: Extensible Markup Language provides a foundation for creating documents and document

systems.

XSLT: XSL Transformations (XSLT) is a language for transforming XML documents into other XML documents.