Repeating tests in a schedule

By adding a loop to a schedule, in this context, is used to refer to both VU Schedule and Rate Schedule, you can repeat a test for a number of iterations and set the rate for running a test. If the loop contains a synchronization point, the synchronization point is released after the first iteration of the loop and stays released for all further iterations.

About this task

A schedule that contains only user groups and tests runs each test in a user group sequentially. Loops provide more sophisticated control than running a simple sequence of consecutive tests.

You can set a loop within a schedule or a test. The following table shows the advantages of both methods:
Loop location Results
Schedule Loops in schedules are easy to locate and modify.

Loops in schedules close the server connection at the end of each iteration and reopen it at the beginning of the next iteration. This action models the behavior of a user closing and reopening a browser.

Use this method to run a test at a set rate. For more information, see Running tests at a set rate.

Test Loops in tests can be more granular, and thus provide a higher level of control.

Loops in tests reuse the server connection during each loop iteration.

Use this method, with loops that have high iteration counts, to stress test a server.

Procedure

To add a loop to a schedule:

  1. In the Test Navigator, browse to the schedule and double-click it.
    The schedule opens.
  2. Click the item that you want to be the parent of the loop, and then click Add > Loop.
  3. In the Schedule Element Details area, type the number of iterations for the loop to repeat.
    OptionDescription
    Count-based Runs for the number of iterations that you select.
    Time-based Runs at least for the time that you specify. The loop always finishes the iteration. For example, if you select a time of 1 second and a loop takes 10 seconds to run, the loop finishes one iteration, and then checks the time.
    Infinite Runs until the schedule duration ends. Use this option to gather performance data over time: set an infinite loop, and then set the schedule to stop after a specific time.
  4. To maintain a set transaction rate for all schedule items that are children of this loop:
    1. Select Control the rate of iterations.
    2. In the Iteration rate field, type a number, and select a time unit.
      This sets the actual rate.
    3. Select or clear the Randomly vary the delay between iterations check box. Selecting this check box causes the delay to vary slightly. This option models users more accurately, because the iterations are spread out randomly over a certain period of time.
      Note: Statistically, the Randomly vary the delay between iterations option sets delay amounts at random from a negative exponential distribution with the same mean as the fixed delay value. The negative exponential distribution has a long "tail," which means that a very small number of delays will have very large values. Therefore, make sure that the application you are testing is not negatively affected by long periods of inactivity (such as a timeout that disconnects the user).
    4. Select or clear the Delay before the first iteration of the loop check box. Selecting this check box staggers the first delay in each iteration so that you get a realistic mix at the first iteration.

Example

The following schedule contains two loops. Note that the Browse and Bid tests, which are controlled by the loop, must be children of the loop.
schedule containing two loops