Editing Web Test

You can edit the recorded test using Editor UI. The Editor UI shows you a hierarchical list of the elements of your recorded test:

Project

On selecting the Project node in the Editor tree you can see following on the right hand side tab:

Host Settings

For each unique host used in the test there is a host setting entry in this table. Each browser and url in the test are linked to the host setting shown in this table. In case you need to execute recorded test against your application on some differnt host you just need to edit the host settings here. You dont need to worry about changing host for each recorded URL or browser. Just changing host settings here will result in replaying test against new host. You can edit the Host Name, the Port number and select the protocol between HTTP and HTTPS here. You can also parameterise the host settings to replay test against different hosts during multiple iterations.

Group Settings

Replay Linked projects/groups: For any Automated testing tool one of the important feature is the reusability of the existing scripts. AppPerfect provides the feature of linking exisiting scripts with the host script so that without re-recording common functionalites already implemented in existing scripts can be reused. Select this checkbox if you need to replay linked projects/groups. For more details refer to Link Projects chapter.

Groups Table: In a project the tasks are stored in logical groups. This enables users to better organize the test. A test can have one or more groups. All the groups in the test are shown in this table. You can :

Parameters

An important aspect of designing a good test is to define parameters correctly. Most modern applications use some kind of parameterization scheme to communicate data between the end user and the Web application. When a Web Test is recorded via a browser, all parameters that are encountered for the recorded URLs are stored in the test project. These recorded parameters can be managed via the "Parameters" tab in the Test Editor.

Additional information about parameterization can be found in the Parameters chapter.

Validations

Another important aspect of testing is to make sure that test is performing desired actions and response recived as result of those actions is correct. To confirm that response received are correct you can define validations. Validations for test can be managed via "Validations" tab/node in the Test Editor.

Additional information about validations can be found in the Validations chapter.

Groups

The recorded test consists of a number of "Groups". A Group is a logical unit for combining actions inside a test. After recording, all Browsers/URLs/Events are stored in the Group for which recording was done.

Behavior of the various groups can be configured by clicking the group node in the Editor tree and setting its properties on the right side of the window. Following properties can be set:

Group Details

Group Name: This is the unique identifier associated with a group. Each group in the test should have a unique name.

Starting URL: This is the starting URL which is used when recording tasks in this group. While recording application launches new browser with this starting URL.

Launch New Browser: Should be selected in case you want application to launch new browser when execution of this group begins. In case there are multiple groups recorded in the test, then you can reuse the Browsers created in earlier groups by keeping this option unchecked. In such cases you should use same Browser identifier across multiple groups.

Ignore Group: To decide whether the group should be ignored while executing test.

Set Proxy while replaying: Should be kept selected if test was recorded with Internet Explorer and there was simultaneous recording for Load Test done.

Session is managed using url-rewriting: Select this option in case your application maintains session using URL-rewriting. For ex. in case your application sends the session id as part of url path like http://www.abc.com/XY/SESSIONID/PQ then you need to select this option.

Authentication Settings:

In case your application requires Authentication then same should be configured here. Refer to Authentication Schemes for details on various authentication mechanisms that can be configured with AppPerfect.

Browser Settings

Browsers Table: Each group can have multiple browsers recorded in it. All the recorded browsers in the test are shown in this table. You can :

To move a Browser/URL/Event from one group to another, click right mouse button on that Browser/URL/Event, select Cut from the popup menu, click right mouse button on the new group where you wish to paste it, and select Paste from the popup menu. The default group that is recorded is called ActionGroup1. Right click it to access the following:

Browser

Within a Group, several browser instances may be recorded depending on if you have opened new browser windows while recording the test. Behavior of the various browsers can be configured by clicking the browser node in the Editor tree and setting its properties on the right side of the window. In the right hand side panel you can view the first page recorded in the browser and the following tabs:

Details

Browser title: This is the unique identifier associated with a browser. Each browser in the test should have a browser title associated with it. During execution application uses this title to check if new browser should be created or if there is already a browser open with given title and can be reused.

Timeout: This is the maximum time application waits before marking the browser task as timedout during execution.

Host Name: This is the host settings associated with the page loaded in the browser. While creating new browser application uses this host in the url to launch the browser.

Think Time: This is the time application waits before creating a new browser during execution. This think time is used only in case you have "Ignore think time during replaying" unchecked at Project -> Properties..

Path: This is the url path associated with the page loaded in the browser.

URL/Event

Here you can see the list of all the URLs/Events accessed within the browser while recording. You can ignore, delete or reorder URLs/Events here. Multiple urls/events can be selected at a time and can be deleted or reordered. You can set breakpoints at any of the URLs/Events. While replaying the test, these breakpoints will be taken into consideration and application will prompt you for action like if you need to Continue replaying or Stop test etc.. when this breakpoint is reached

Right click a browser node to access the following:

URL

Each browser will have several URLs recorded. In the right hand panel you can view the following tabs:

Details

Title: This is the title of the page as seen in the browser title bar.

Timeout: This is the maximum time application waits for page before marking the url task as timedout during execution.

Ignore parameter validation: By default application does not compare the URL parameters in recorded and replayed urls. In case you need to do this validation you should uncheck this option.

Set Breakpoint: You can set breakpoints at the selcted URL. While replaying the test, these breakpoints will be taken into consideration and application will prompt you for action like if you need to Continue replaying or Stop test etc.. when this breakpoint is reached.

Think Time: This is the time application waits before fetching the response from the browser. This think time is used only in case you have "Ignore think time during replaying" unchecked at Project -> Properties..

Host Name: This is the host settings associated with the url.

Fire URL: By default application does not fire the urls on its own. It assumes the events to navigate the pages in the browser. In case you need to fire any URL explicilty then you can select this option. In case this option is selcted application will fire the url in browser after constructing the same using the host name, path and url parameters.

Path: This is the url path associated with the page.

Ignore URL: To ignore the url during replaying.

Benchmark Page: This shows the path for the recorded page stored on the disk. The web page you see in the browser control at top is shown using this path. You can add validation to the URL only if there is a page stored for the url. In case your application page has changed since the test was recorded, you should set the benchmark page to new version of the page.

Parameters

If there are parameters associated with the selected URL, you can see them here. You can parameterize these parameters. For more details refer to the chapter on Parameters.

URL / Event

Here you can see the list of all the URLs/Events recorded within the selected URL. You can ignore, delete or reorder URLs/Events here. Multiple urls/events can be selected at a time and can be deleted or reordered. You can set breakpoints at any of the URLs/Events. While replaying the test, these breakpoints will be taken into consideration and application will prompt you for action like if you need to Continue replaying or Stop test etc.. when this breakpoint is reached

Validation

As a web application developer or tester, you will design (or test) your application based on a 'valid' set of responses expected from the application. You can set these validations for each web page after you have recorded the test. This feature is highly useful for regression testing.

You can add validations to URL page here. To add new validation right click the desired DOM tree node of the Standard DOM tree you can see above these tabs. It will show the following options :

For furthur details on each validation refer to Validations chapter.

You can right click the URL node to access the following features for URL:

Event

Each browser/URL will have several events recorded. In the right hand panel you can view the following tabs:

Details

Title: This is the title of the recorded event which is helpful in identifying the event.

Timeout: This is the maximum time application waits for event to reply successfully before marking the event as timedout during execution.

Search element using exact match of attribute values: While finding elements having href and src attributes, application does not match the complete string but just checks for the occurence of these attributes in the substring while doing comparision. This is done because href and src attributes generally are created dynamically or have parameters which changes dynamically. You can select this option in case you need exact comparision for these attributes while finding element during execution.

Set Breakpoint: You can set breakpoint for the selected event. While replaying the test, these breakpoints will be taken into consideration and application will prompt you for action like if you need to Continue replaying or Stop test etc.. when this breakpoint is reached.

Think Time: This is the time application waits before replaying this event. This think time is used only in case you have "Ignore think time during replaying" unchecked at Project -> Properties..

Element: This is the name of the element on which event was recorded. The element name is picked from the elements configured at Tools -> Options -> Web Test -> Web/Window elements.

Element Class: This is the tag name or native class of the element on which event was recorded.

Ignore Event: To ignore the event during replaying.

Event: Drop down showing all the events which are supported on this element. This drop down as the recorded event selected. In case you need to change the recorded event for the element you can change it here by selecting the required event. You can see the event arguments for the selected event in the table below. You can edit the event arguments or parameterize the same.

Object Spy: In case you need to update attributes for the element you can use Object Spy to do so,.

Attributes

You can see all the recorded attributes/properties for the element here. These attributes are used while searching the element during replaying. You can parameterize and edit attributes here.

You can right click the Event node to access the following features for Event: