Building a Command Line Interface (CLI) Project

AppPerfect Load Test can be used to load test your applications started using command line scripts. AppPerfect Load Test can execute large number of command line scripts simultaneously through its virtual users simulation. This enables you to load test your command line applications and check their performance in case of simultaneous execution. AppPerfect also provides the feature to validate the console or file output generated by the command line applications during execution.

The overall process for creating a CLI test is as follows:

  1. Create a new project
  2. Create a new Action Group for CLI type tasks
  3. Add the necessary CLI tasks to the CLI ActionGroup manually via the editor view provided. Its fairly easy to add a CLI task, all it requires is a path for command line script and arguments if any.
  4. Specify command line script parameters/arguments if any as required by the script for execution
  5. Specify any validation criteria you wish to on the console/file output generated during execution of scripts

Project

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

Host Settings

These fields do not apply to a CLI project.

Link Project Settings

Please refer to Linking groups from multiple Projects section for more details on this feature.

Group Settings

In a project the tasks are stored in logical groups. This enables users to better organize the test. By default only ActionGroup for "HTTP tasks" is added to the project. To add CLI tasks you need to create a new ActionGroup with CLI type. To do so, right click on Project Node in the Editor tree and select Add Group... option from the popup menu. In the Add Group dialog you need to select the Group type as CLI for Command line interface group.

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 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.

This section lists the Action Groups of the project. You can :

Virtual Users

The amount of load to be exerted on your target application by AppPerfect depends on the number of virtual users you specify. In general, higher the number of virtual users, higher the work load. A good way to work with AppPerfect Load Test is to view your test from the point of view of each virtual user.

Additional information about virtual users can be found in the Virtual Users chapter.

Parameters

An important aspect of designing a good test is to define parameters correctly.

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

Groups

The 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 in a project: Starting Group, Action Group and Ending Group. But all these groups are for HTTP type tasks. For CLI tasks we need to create a new ActionGroup with type CLI

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 Task from one group to another, click right mouse button on the Task, 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

Arguments and Validation

Command line Arguments : You can specify command line arguments which should be passed to the script during execution. "Argument Value" is passed to the script as command line argument. "Argument Name" is required only for parameterization. You can parameterize values so that each virtual user runs script file using different value.

Validation feature is provided so that you can define what constitutes a Successful or a Failed execution. If this is not specified, then a basic validation will be performed to the effect that no error code was returned as a result of execution. You can validate both the console output as well as the file output from the script execution. You can perform a case sensitive or a case insensitive search for a specified text in the output. You can check both for existence or non existence of a text value in the output. You can also use Regular expression for text comparision.