Building a Web Project

AppPerfect Load Test can effectively test your web applications using the HTTP or HTTPS protocols. The steps to create a Web project are as under:

  1. Create a new project
  2. You can then record the project by clicking Project -> Record test... from the menu bar. Browse through the web application and perform a set of tasks. Then click Project -> Stop or the Stop Recording button on the Record Using Proxy dialog box. (Please see Recording a LoadTest for more details.)
  3. Now you have the URLs and tasks recorded which you can view and edit in the Editor tab.
  4. The Editor shows you a hierarchical list of the elements of your recorded test which you can further edit:

Project

You can see the following groups on the right hand side after you click the project name in the Editor:

Host Settings

For each unique host used in the test there is a host setting entry in this table. Each task 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 task. 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 Execution Settings

In a project the tasks are stored in logical groups. This enables users to better organize the test. Further,certain special tasks can be placed in special groups called "Starting Group" and "Ending Group" as needed as they are only run once for the test. However, rest of the tasks are placed in regular groups called "Action Groups".

Run Groups: A test can have one or more action groups. If you have more than one action group, you can specify if you want a virtual user to run these groups sequentially or simultaneously. In sequential execution, a virtual user executes every task/url in every group. In simultaneous execution, virtual users are assigned individual groups to execute. This assignment is based on a percentage distribution that you can specify from the "Groups table" shown for project node view in Editor tab.

Execution Behavior: In addition, you need to specify how Starting and Ending Groups should be handled.

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 existing 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: This table lists all the Groups of the project. 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 LoadTest is recorded via a browser, all parameters that are encountered for the recorded tasks 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.

Groups

The recorded test consists of a number of "Groups". A Group is a logical unit for combining actions inside a test. By default, three Groups are created: Starting Group, Action Group and Ending Group. After recording, all URLs are stored in the "ActionGroup".

Depending on your desired behavior, you may wish to move certain URLs into the Starting Group (eg. login URLs) and move other URLs into the Ending Group (e.g. logout URLs).

Behavior of the various groups can be configured by clicking the group in the Editor and setting its properties on the right side of the window. To move a URL from one group to another, click right mouse button on the URL, 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. More details are available in the Task Groups chapter.

Task Details

Click any task in the Editor and you get access to the Task Editing features of AppPerfect Load Test.

Task Details

Think time

Here you can configure think time for the task. You can specify different think time for each VU.

Parameters

You will see a list of parameters, if any have been encountered for the selected task. You can select any of the parameters and parameterize it to fetch different value during replaying. Additional information about parameterization can be found in the Parameters chapter.

Request Headers

You can review all the request headers sent along with http/https task here.

Request Entity

Request Entity is data sent to server as request body in case of HTTP request. It could be simple text or could be XML data like in case of XMLHTTPRequest (AJAX request). You can parameterize this data by specifying parameter name between '@'..'@'. For example lets say request entity is 'model=A' and we want to parameterize value 'A', to achieve that add parameter to request entity as 'model=@PARAM_A@' and add parameter PARAM_A in the parameters. If you wish to parameterize entire content then change content as '@PARAM_REQUEST@' and add parameter PARAM_REQUEST in the parameters.

Sub Tasks

In case the task has images/css/js etc. then same are shown as subtasks in this table.

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.

For furthur details on each validation refer to Validations chapter.