By adding a loop to a 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.
|
To add a loop to a schedule:
Procedure
- In the Test Navigator, browse to the schedule and double-click
it. The schedule opens.
- Click the item that you want to be the parent of the loop, and
then click .
- In the Schedule Element Details area, type the number of iterations
for the loop to repeat.
Option |
Description |
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. |
- To maintain a set transaction rate for all schedule items that
are children of this loop:
- Select Control the rate of iterations.
- In the Iteration rate field, type a number,
and select a time unit. This sets the actual rate.
- 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).
- 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.