At times in Eggplant Performance, you might find it useful to adjust the number of virtual users (VUs) in a test while the test is running. For example, if you find that the current test isn't putting enough stress on the system under test (SUT), you could choose to add VUs to the test.
To add VUs to a running test, click the Add extra virtual users button on the Test Controller toolbar to open the Add virtual users dialog box:
In addition to choosing how many VUs to add to the test, you can specify how to distribute them among any VU groups in the test. Your options here are:
- Automatic: If you choose this option, you enter the total number of VUs that you want to add to the test in the box to the right, and Test Controller splits them between the VU groups in the test in the same proportion as the original group size. For example, if Group A has twice as many VUs as Group B, then Group A gets twice as many of the additional VUs as Group B.
- Manual: Use this option if you want to assign new VUs to specific VU groups. Add the number of additional VUs you want in each group in the Add VUs column in the table.
In both cases, the extra VUs are distributed evenly among the injector machines on which that group is running.
When you've selected the options you want, click OK. The new VUs are added to the running test.
New VUs begin with the same runtime settings as the original VUs, including ramp-up settings and pauses.
If a Data Table is bound to a VU group into which new virtual users are being added, the new VUs use the same Data Source Binding policy as the other VUs in the group. This situation could cause problems if:
- More VUs are added than there are rows in the Data Table and the Each row in the table can be used by more than one virtual user option is not set; the new VUs will run out of data.
- Other VU groups are configured to use different rows in the same Data Table, but the new VUs are allocated rows that overlap the Data Source Binding of the other group(s); some of the new VUs will end up with the same data rows as VUs in other groups.
If the total number of VUs of a particular type will exceed the maximum number allowed by the Eggplant Performance Node Locked Expiring or Floating Expiring license(s) currently available, the dialog will prevent the VUs from being added to the test in progress. For more information, see Understanding Eggplant Performance license types.
The following problems all relate to settings defined in Eggplant Performance Studio. However, changes made in Studio don't take effect in Test Controller until after the test has finished.
Note that you might not be able to add extra VUs to the test in progress if:
- A VU group has a data source assigned but the number of rows in the data table is less than the number of VUs that the group will contain. (Note that an error is reported only if Row advancement is set to Automatically advance to the next row at the end of each iteration. If you move to next row under user control, there's no way to automatically decide whether the data source contains enough rows.)
- There are not enough engine ports available. Every time extra VUs are added, at least one new engine process is started. Every injector defines a range of TCP/IP ports on which to communicate with the engine processes. If more engine processes are created than there are ports available, communication with the engine fails and the extra VUs won't start (although the test continues with its existing VUs). To edit the engine port range in Studio, select the appropriate injector family in the workspace tree, then adjust the range in Engine TCP ports on the Basic settings tab.