Load Test provides a number of ways to customize load tests. This topic explains how to customize load tests and the available customization options. In this chapter: 

Customizing Test Suite Scenarios

You customize how a particular test is run by customizing the scenario you plan to use. You can use scenarios to customize the following parameters:

To customize an existing scenario or create a new scenario:

  1. Open or create the scenario you want to customize by performing one of the following steps from the Load Tests tab:
  2. Customize the scenario using the controls in the right GUI panel. The following table explains which controls correspond to particular customization goals.
To change this...Do this...
Scenario nameType a new name in the Name field.
Scenario type (determines whether you can specify the exact number of virtual users or hits per second for each test suite profile, or you express test suite profile distribution as a general ratio and let Load Test randomly assign test suite profiles according to the specified ratio)

Choose the appropriate value from the Scenario Type box (to the right of the Name field).

With Weighted Profiles, you specify the test suite profile distribution as a weight ratio; The virtual users are then distributed among profiles in a randomized weighted manner that allows an arbitrary total load graph and "statistical" following of the profile distribution.

With Direct Profiles, you specify the exact load (in virtual users or hits per second) for each test suite profile. You can specify the load for all of the machines, or for each individual machine. The total number of VU/HPS cannot be specified directly, but comes as a sum of all profiles for a machine.

Test durationType new values in the Duration fields. Days are limited to 30, hours are limited to 23, minutes are limited to 59, and seconds are limited to 59.
Controlled parameter (determines whether the test is controlled for number of virtual users or the number of hits per second [hit rate]) 

Choose the appropriate value in the Controlled Parameter box.

If you want Load Test to try to achieve the specified virtual user quantities (and possibly vary the number of hits per second in the process), choose Number of Users.

If you want Load Test to try to achieve the specified hit rates by varying the number of virtual users as needed, choose Hits per Second, Hits per Minute, Hits per Hour, or Hits per Day

Randomization (determines the ran-domization of the Controlled Parameters)

For the Number of Users parameter, the virtual user think time is randomized according to the following distributions:

Uniform: If the virtual user think time defined in the profile configuration is Tprof. then during load testing the actual virtual user think time will be a random value uniformly distributed in the interval from 0 to 2*Tprof. with the mean value of Tprof.

Poisson: If the virtual user think time defined in the profile configuration is Tprof. then during load testing the actual virtual user think time will be a random value with the bell shaped distribution and the mean value of Tprof.

None: No randomization is applied.

For the Hits per Second parameter, the inter-invocation time is randomized according to the following distributions:

Uniform: If the hit per second rate defined in the load test scenario is Nhps. then during load testing Load Test will generate a request sequence with a random inter-invocation time (the time between subsequent requests) uniformly distributed in the interval between 0 and 2* 1/Nhps. seconds and the mean value of 1/Nhps seconds.

Poisson: If the hit per second rate defined in the load test scenario is Nhps, then during load testing Load Test will generate a request sequence with a random inter-invocation time (the time between subsequent requests) with the bell shaped distribution and the mean value of 1/Nhps seconds.

Maximum number of users to be simulated during the test run.

Applies only to tests controlled for number of users

Choose the desired value from the Vertical scale box in the Users tab.

Important: The load that you apply is the sum of users and hits on all machines in the selected scenario. The maximum combined number of users on all machines that can be run in a scenario is determined by your license. To see license details, choose Help> About in the Load Test program that controls the tests and read the information in the About panel that opens. 

Maximum number of hits per second

Applies only to tests controlled for number of hits

Choose the desired value from the Vertical scale box in the Users tab.

Note that if you choose this option, profile delay options will be unavailable and any preexisting delay settings will be ignored. 

Important: The load that you apply is determined by the number of hits per second you implement for a given test as well as the number of machines running the tests. The number of machines and hits per second you can use is determined by your license. To see license details, choose Help> About in the Load Test program that controls the tests and read the information in the About panel that opens. To determine the number of hits per second you are licensed to execute, take the number of virtual users for which you are licensed, then divide it by 10. For example, if you are licensed to use 100 virtual users, you will be able to execute tests at 10 hits per second.

Distribution of number of users over time or the hit rate over time

Modify the Users tab graph as follows:

To apply the same settings to all test machines, check the Machine Independent check box (this option is available only if there is more than one machine under the Machines node). The graph will contain one line (All Machines); to control the settings for all machines, you modify the position and shape of this line.

To apply different settings to different test machines, clear the Machine Independent check box. Load Test will display one line for each machine; to control the settings for a particular machine, you modify the position and shape of the related line.

To scale a line’s shape for a different range of users or hit rates, right-click that line’s representation in the top right side of the panel, choose Scale Graph from the shortcut menu, then enter a scaling factor in the dialog box that opens.

To manually enter and edit point values on the graph, right-click that line’s representation in the top right side of the panel, choose Edit Graph from the shortcut menu. Points can be manually edited by entering the X and Y Values in the Edit Point dialog. 

To maintain a steady amount of virtual users or hit rate, ensure that the line is flat, then drag the line up or down until it corresponds to the number of users or hits per second you want for the entire test duration.

To have the number of virtual users or hit rate vary over time, create a "point" for each time interval for which you want to specify the precise number of virtual users or hits per second, then drag that point to the desired location. To create a point, right-click the appropriate machine line at the point that corresponds to the time interval for which you want to specify the exact number of users or hits per second, then choose Add point from the shortcut menu. Load Test will automatically determine the number of virtual users or hits per second for each time interval that does not have a specific point by plotting the slope between each of the points.

To automatically double the number of points you have created, click More points. The new points will be added at regular intervals between your existing points. To remove one point, right-click a particular point and choose Remove point. To remove points which are not points of inflection, click the Less points button. 

To display only specific machine graphs when many machines are of similar colors.

Applies only if multiple machines are available in the Load Tests tab

Modify the Users tab settings as follows:

Clear the Machine independent checkbox. Load Test will display one line for each machine:

To display all machine graphs, select the All check box.

To display specific machine graphs, select only the desired checkboxes of the necessary machines. 

To display only specific profile graphs when many profiles are of similar colors.

Applies only if multiple test suite profiles are available in the Load Tests tab

Modify the Profiles tab settings as follows:

To display all profile graphs, select the All check box.

To display specific profile graphs, select only the desired check boxes of the necessary profiles. 

To manually enter and edit point values on the graph rather than clicking and dragging graph points.

Modify the Profiles tab settings as follows:

Right-click the desired profile graph in the legend found beneath the  pie chart and choose Edit Graph from the shortcut menu. An Edit Point dialog displays. The name of the graph that is being edited is displayed in the Title bar of the Edit point dialog window, (i.e. Default User, or New User 3, etc.).

Points can be manually edited by entering the X and Y Values in the Edit Point dialog. The Previous and Next buttons cycle through the different points for the selected graph. You may also press Alt-Left Arrow on your keyboard as a Previous button shortcut, or Alt-Right Arrow as a Next button shortcut.

Chance that Load Test will select a particular profile at any point in the test duration. 

(The higher the ratio assigned to a profile, the more likely it is to be chosen).

Applies only if multiple test suite profiles are available in the Load Tests tab

Modify the Profiles tab settings as follows:

  • To change the maximum ratio of profiles, choose an item from the Vertical scale drop-down list on the right side of the Profiles tab. The higher the ratio you choose, the more different ratio intervals you will be able to use when determining how Load Test distributes user profiles over time. (The ratio of user profiles determines how likely Load Test is to select a particular profile at any point in the test duration.)
  • To scale a line’s shape for a different range of profile ratios, right-click that line’s representation in the top right side of the panel, choose Scale Graph from the shortcut menu, then enter a scaling factor in the dialog box that opens.
  • To maintain a steady ratio of user profiles, ensure that the line is flat, then drag the horizontal bar for each profile up or down until it corresponds to the profile weight you want for all time intervals.
  • To vary the ratio of user profiles, create a "point" for each time interval for which you want to specify the profile weight, then drag that point to the desired location. To create a point, right-click the appropriate profile line at the point that corresponds to the time interval for which you want to indicate a specific profile weight, then choose Add point from the shortcut menu. Load Test will automatically determine the profile weights for each time interval that does not have a specific point; it does this by plotting the slope between each of the points.
  • To automatically double the number of points you have created, click More points. The new points will be added at regular intervals between your existing points. To remove one point, right-click a particular point and choose Remove point. To remove points which are not points of inflection, click the Less points button.


You can save any scenario graph (configuration graphs as well as test progress graphs) as a GIF by right-clicking the graph that you want to save, then choosing Save Image from the shortcut menu.

Customizing QoS Metrics for Scenarios

The Load Test Quality of Service (QoS) analysis feature allows users to estimate the performance of a service/application by applying QoS metrics to Load Test results. Based on these metrics, Load Test can evaluate performance to determine the success or failure of the load test. QoS analysis is particularly important when a service/application is required to meet specific performance requirements before it can be considered ready for deployment.

Introducing QoS Metrics

QoS Metrics allow you to define a set of regression tests for a load test. On a succeeding load test, all metrics will pass successfully. Any metrics that fail are indications of a regression in the performance of their service/application. 

QoS functionality can be accessed from the load test tree. Under each of the Scenario nodes (Bell, Buffer Test, Linear Increase, Steady Load) is a corresponding QoS node. After selecting a QoS node, the Summary and Details tabs display in the right GUI panel.

 

 The Summary tab displays a global view of QoS metrics that have been configured within the Details tab. The Summary tab contains a list of metrics and their descriptions. There are five default metrics in the Summary tab Metric list: 

Each of the above metrics are grouped according to its type (e.g. Statistic, Count, Throughput, Loss). Any additional metrics you configure will also display in the Summary tab.

The Description list contains automatically generated descriptions of what each metric is verifying based on the parameters that have been specified for that metric.

 

 The Details tab displays the available metrics that have been configured for the selected scenario. The Details tab also displays the name, parameters, and notes for the metric selected from the Metric List.

Creating a New QoS Metric

To create a new QoS metric, complete the following:

  1. Click the New button beneath the Metric List. The Add Metric wizard displays.



  2. Select the desired QoS metric from the Add Metric wizard and click Finish.
    The QoS metric is added to the left panel while its parameters display in the right panel of the Details tab.

Each metric performs a different set of validation on completed load test results. After a load test is run, a QoS Report Summary will display in the Test Information report, while a separate and more detailed QoS Report will also be available.

The Effect of Filter Selections on QoS Metric calculation

The selections you make in the Test Tree Selection panel (described in Test Tree Selection Panel Navigation and Options) within QoS Metric Machines, Profiles and Tests filter panels affect the data sets that are used for calculation of the metric value. This will subsequently affect the success or failure outcome of the metric. You can preview the data used in calculation of the metric types listed below in the relevant sections of the load test report. 

Also, see the tool tip displayed in the Parameters panel of a QoS Metric view for further metric explanation based on current metric values.

 

 

Configuring QoS Metric Parameters

To make changes to any of the QoS metrics, select a metric from the list in the left pane of the Details tab and configure its parameters accordingly in the right pane of the Details tab. Depending on the metric selected, the options will vary. However, if you hold your cursor above the parameters in the right pane, a tool tip will display information about the parameter configuration.

You can also select one or multiple (CTRL-click) metrics from the list, then right-click your selection(s) and Cut, Copy, Paste, or Delete as needed from the shortcut menu. When right-clicking one or multiple (CTRL-click) metrics from the list, you can select Save Metrics As to save the selected metrics as a QoS metric set (.ms file), and you can also select Load Metrics to load previously saved metric sets. You can also change the order of the list by dragging and dropping the desired metrics into the desired order.

Customizing Scenarios that Contain a Large Number of Profiles

For scenarios that contain a large number of profiles, and/or a large number of graph points, it may become difficult to configure and keep track of the various options in each graph of the User and Profiles tab. In such cases, it may be easier to use the Summary Table and Details Table available for each scenario.

To view the Summary Table and Details Table, select the desired Scenario node and the Summary Table and Details Table tabs display in the right GUI panel.

Within the Summary Table and Details table views, you can edit the green fields such as the Number of Users for each machine and the Profile Weight of each profile. Changes you make in these green fields will reflect in the corresponding Users and Profiles tabs and vice versa. For example, if you change the Profile Weight of the Default User from 1 to 5, that change will reflect in the Profiles tab. Similarly, the same change in the Profiles tab will reflect in the Summary Table tab or Details Table tab.

Summary Table

The Summary Table view provides different information depending on whether Weighted Profiles or Direct Profiles are selected as the Scenario Type.


Detail Table

The Detail Table view provides different information depending on whether Weighted Profiles or Direct Profiles are selected as the Scenario Type.

Configuring Environments

An environment is a collection of variables that can be referenced in your Load Test configuration.  When running a test, Load Test will substitute the names of variables in your project configurations with the values of those variables in the active environment.  By changing which Environment is active, you can quickly and easily change which values Load Test uses.  

Creating and switching environments is done through the Environments tab. To access this tab:

  1. Select the Profiles node in the Load Test Configuration tree.
  2. Open the Environments tab.

The Environments tab is divided into two sections, the Environments List panel (left) and the Environment Details panel (right).

 

Configuring the Environments List

The environments list panel contains the following buttons to manage environments:

Configuring the Environment Details Panel

After creating and/or selecting an environment, the Environment Details panel will display a table and buttons for managing environment variables.

To edit an existing environment variable, either double-click on a value or simply click to highlight the value and type to overwrite it.

Configuring Asynchronous Tests

If the SOAtest project that you are using for load testing contains tests with Call Back tools and Asynchronous testing features—or Message Stub tools—you will need to start the SOAtest server inside Load Test in order to process the SOAtest project related asynchronous messaging. 

You can start the SOAtest Server in two ways:

 If you are running a load test with SOAtest asynchronous tools in command line mode or in Load Test server mode, you will need to enable the automatic SOAtest Server startup on each of these machines (because in command line mode, the SOAtest Server can only be started automatically).

Configuring Data Source Usage

If your SOAtest .tst file references data sources, you can configure how those data sources are used during load testing.

To configure data source options:

  1. Select the Profiles node in the Load Test Configuration tree.
  2. Open the Data Source Options tab. The available data sources will be listed in the left panel.
  3. To configure data source options that apply across the test suite, select the test suite you want to configure, then customize the following options as needed in the right panel:
  4. To configure options for a specific data source, select the data source whose options you want to configure, then customize the following options as needed in the right panel:

 

Configuring Setup/Teardown Test Execution

If your SOAtest .tst file uses setup or teardown tests, you can configure how those tests are used during load testing.

To configure setup/teardown options:

  1. Select the Profiles node in the Load Test Configuration tree.
  2. Open the Setup/Teardown Options tab.
  3. Choose the desired option. Available options are:

Customizing Profiles

Each time a virtual user is created, it is based on one of the available profiles. Virtual users are created at the beginning of a load test, and whenever a virtual user completes a test run and the specified load test duration has not yet been exceeded.

You can configure any number of profiles or machines, but the number of  virtual users or number of hits per second you use is limited by your license. For example, if you are only licensed to run 100 virtual users, you can configure any number of profiles, but only 100 virtual users based on those profiles can be active at any given time. If you have 20 profiles, but are only licensed to run one virtual user, all 20 profiles will eventually be used during the test (provided that the test has a sufficient duration), but only one profile will be active at any given time.

To customize the default profile or create a new profile:

  1. Open, disable, enable, or create the profile you want to customize by performing one of the fol-lowing steps:
  2. Customize profile options using the controls in the right GUI panel. Available options include:

Limiting Hits per Second in the Virtual User Mode

It is sometimes desirable to limit the Hit per Second rate in a load test scenario that has Virtual Users selected as a controlled parameter. There are two ways to limit the hit per second rate in the Virtual User mode:

The following image shows an example of configuring Hit per Second throttling in the Scenario Summary Table view:

 

Customizing the Data Recording Parameters

 The Report Settings tab of the Scenarios control panel lets you configure what data is recorded during the load test. 

 

 Available options are:

Note that the Record Individual Hit Details option can be used when the Record Individual Hits option is unchecked. In this case, the individual hit data (the scatter view section of the report) will not be recorded, but the test execution details will still be available via the Show Recorded Details right-click menu option of the load test report graph view. 

For information on viewing the Success and Error details in the load test report, see Detailed Reports.

Customizing the Load Test Stop Procedure

Customizing Load Test Stop Sequence

The Stop Settings> Stop Sequence area of the Scenarios control panel lets you configure how Load Test behaves after a load test Stop event has been generated and the actual stop of the load testing activities. (We will use the term "Load Test Stop time" to refer to the time between the moment a load test Stop event is generated and the actual stop of all load testing activities.) 

 
A load test Stop event is generated if:

After a Load Test Stop event is generated, Load Test stops creating Virtual Users and waits for the existing Virtual Users to exit. The Quick Stop and Formal Stop options control whether the Virtual Users exit after the completion of the current test or complete all their scheduled tests:

If the stop procedure is taking too long, use the Force Stop button in the Load Test stop progress dialog  (See Tip: Stopping a Test for more details).

Customizing Load Test Stop Actions

You can customize how a load test is stopped by utilizing Java, JavaScript, or Jython scripts. This feature is especially useful in automatically stopping load tests for specific circumstances that may cause undesirable results. For example, during nightly load test runs you may want to stop load testing if a certain amount of errors have been reached, or you may want to stop load testing if your CPU utilization reaches a specific threshold.

The script you define communicates with the Load Tester via the com.parasoft.api.loadtester API and receives LoadTestScriptArgs and Context as arguments, and can also return a LoadTestScriptAction. A returned LoadTestScriptAction.Action_Stop has the same effect as pressing the Stop button in the Load Test GUI during a load test.

You can find sample scripts available in the following directory on your machine:
[Load_Test/SOAtest_installation_dir]\[version number]\examples\loadtest\LoadTesterScripting.

To use scripts to customize Load Test stop actions:

  1. Select the Scenarios node in the Load Tests tab and choose the StopSettings tab in the configuration panel on the right.



  2. Select Java, JavaScript, or Jython from the Language drop-down list to indicate the language that your script is or will be written in.
  3. Define the script to be implemented in the Implementation box.
  4. Select the appropriate argument from the Method drop-down list. This list will be composed of any definitions contained in your script. Since a script can contain multiple arguments you can select the one that you want to use in this method.
  5. Run the load test.
    The script you define is called every three seconds (the frequency of load test output collection) during load testing.The load test will stop if any of the criteria you specify in your script is met. The user-defined description of the load test stop action will be reflected in the Load Test report if the script causes the load test to stop. Any script errors are reported in the Log tab of the Load Test Progress view.

Customizing Machine Options

Using High Throughput Mode

High Throughput Mode can be used to apply higher levels of load to the system under test—while minimizing the hardware required to generate such load.

Each Load Test machine participating in a load test can be configured to run in a High Throughput Mode. In this mode, the test response verification and non-critical attached tools are disabled. As a result, fewer system resources, such as CPU cycles, are required to run the load test. This allows machines in High Throughput Mode to run at a higher test per second execution rate.

To enable this mode,  select the appropriate machine from the Machines node in the Load Test Configuration tree, then enable the High Throughput Mode option.




Typically, users select some of the machines to run in a regular Verified and some in an Unverified – High Throughput mode. The machines that run in the Verified mode act as both load generators and Test result collectors, while the machines in the Unverified mode act only as load generators. Upon the completion of a load test, the results which were collected in the Verified mode are used to estimate the error count intervals for the machines in the Unverified mode and Total error count estimate intervals for the entire load test.

Below are several typical questions and answers that could help better understand how to apply the High Throughput Mode feature:

When should I use the High Throughput Mode?

You should use the High Throughput Mode if you do not have enough hardware to generate the desired load. For instance if your load generating machines are running at or above 75-80% CPU utilization.

What kind of throughput increase can I expect?

The throughput increase will vary depending on the structure of your functional tests. The more tools you have attached to the tests in the functional test configuration, the greater the performance gain in the High Throughput Mode.

How are the error estimates calculated? 

The calculation of the error estimates is based on the calculation of the "Binomial proportion confidence interval" using Wilson’s method. More on this subject can be found via the following links:

What should be the proportion of tests that are run in the Verified and Unverified modes? 

In general, the more tests you run in the Verified mode, the more narrow error estimate intervals you will get. As a rule of thumb, the number of runs for each Test in the Verified mode should be at least in the mid tens, such as 40-60.

Generating Network Traffic from Multiple IP Addresses

Parasoft Load Test can be configured to use multiple IP addresses for its Virtual Users. Configuring this ip spoofing involve two steps:

  1. Setting up IP aliases on the load test machine(s) as described in the appropriate section below:
  2. Configuring Virtual Users to use multiple IP addresses as described in Configuring Load Test Machines to use Multiple IP Addresses

Supported Parasoft SOAtest Components

The following SOAtest tools and transports support the multiple IP address functionality:

Windows Configuration

To set up IP aliases on a Windows machine:

  1. Use the ipconfig command to see the list of available network interfaces, their IP addresses, and masks.
  2. Use the netsh command in a DOS prompt window (DOS shell) or in a batch script to add or remove IP addresses.

Linux Configuration

To set up IP aliases on a Linux machine:

The example below adds an IP alias to eth0 interface:

The example below removes an IP alias.

Configuring Load Test Machines to use Multiple IP Addresses

To configuring Virtual Users to use multiple IP addresses: 

  1. Select the appropriate machine from the Machines node in the Load Test Configuration tree.
  2. In the Machine IP Configuration panel of the machine configuration view, select Custom and choose the network interface that you would like to use. You can either choose to use all IPs of the selected interface or select specific IP addresses.

The machine network interface and IP configuration view is shown below:



During the load test execution, each Virtual User on a machine will be assigned an IP address from the list of IP addresses for this machine. 

Virtual Users (VUs) will be assigned IP addresses in a round-robin manner. For instance, if the machine "localhost" was configured to use two IP addresses as shown in the image above, then the VUs would be assigned IP addresses in the following order:

Once an IP address is assigned to a Virtual User, it will be used in all the tests which that Virtual User has to execute.

Synchronizing Remote Machines

A SOAtest project that you use in Load Test can have external dependencies in the form of files that are used by the SOAtest tests while they are being executed by the Virtual Users of the load test. The correct functioning of the SOAtest project tests depends on the availability of these external resources on both the Load Test controller machine and remote machines running load generators. Load Test automates the process of transferring the external dependencies to remote machines.

For details on how to ensure that all external resources required by the project are available on the remote machine, see Transferring Project External Dependencies to Remote Machines.