Enabling a test to use a datapool

Before a test can use variable data from a datapool, you must update the test to include a reference to that datapool.


  1. In the Test Navigator, browse to the test and double-click it. The test opens.
  2. Right-click the test name, and click Add > Datapool. The Import Datapool window opens, listing the datapools available to the test. If a test is already using a datapool, it does not appear in the list.
  3. In the Existing Datapool in workspace list, click the name of the datapool that your test will use.
  4. Select the Open mode for the datapool. This mode determines the view that virtual users have of the datapool. This option is useful when you do a parallel test run.
    Option Description
    Shared (per machine) (default)

    Virtual users on each computer draw from a shared view of the datapool with datapool rows apportioned to them collectively in sequential order and on a first-come-first-served basis.

    This option makes it likely that the virtual users or loop iterations will use data from different rows and that the server will see variable data. The exact row access order among all virtual users or iterations cannot be predicted, because this order depends on the test execution order and the duration of the test on each computer.


    Virtual users draw from a private view of the datapool, with datapool rows apportioned to each user in sequential order.

    This option ensures that each virtual user gets the same data from the datapool in the same order. However, because each user starts with the first row of the datapool and accesses the rows in order, different virtual users will use the same row. The next row of the datapool is used only if you add the test that is using the datapool in a loop with more than one iteration.

    Segmented (per machine)

    Virtual users on each computer draw from a segmented view of the datapool, with data apportioned to them collectively from their segment in sequential order and, on a first-come-first-served basis. The segments are computed based on how a schedule apportions virtual users among computers. For example, if a schedule assigns 25% of users to group 1 and 75% to group 2, and assigns these groups to computer 1 and computer 2, the computer 1 view consists of the first 25% of datapool rows and the computer 2 view consists of the remaining 75% of rows.

    This option prevents virtual users from selecting duplicate values (for example, account IDs). If you disable wrapping, no row can be used more than once.

  5. Select the Access mode for the datapool:
    • Sequential: Rows in the datapool are accessed in the order in which they are physically stored in the datapool file, beginning with the first row and ending with the last.
    • Random: Rows in the datapool are accessed in any order, and any given row can be accessed multiple times or not at all. Each row has an equal chance of being selected each time.
    • Shuffled: Before each datapool access, the order of the rows is changed, and a different sequence results. Rows are accessed randomly but all rows must be selected once before a row is selected again.
  6. Select whether the test will reuse data when it reaches the end of the datapool.

    By default, when a test reaches the end of a datapool or datapool segment, it reuses the data from the beginning. To force a test to stop at the end of a datapool or segment, clear the check box beside Wrap when the last row is reached. Forcing a stop might be useful if, for example, a datapool contains 15 records, you run a test with 20 virtual users, and you do not want the last five users to reuse information. Although the test is marked as "Fail" because of the forced stop, the performance data in the test is still valid. However, if it does not matter to your application if data is reused, the default of wrapping is more convenient. With wrapping, you need not ensure that your datapool is large enough when you change the workload by adding more users or increasing the iteration count in a loop.

  7. Select whether the test will make the data in the datapool record permanent for each virtual user.

    By default, one row is retrieved from the datapool for each execution of a test, and the data in the datapool row is available to the test only for the duration of the test. Select Fetch only once per user to specify that every access of the datapool from any test being run by a particular virtual user will always return the same row.

    To illustrate how these options affect the rows that are returned, assume that a test contains a loop which accesses a datapool. The loop has two iterations. The following table shows the row that is accessed in each iteration:
    Datapool option Iteration 1 Iteration 2
    Sequential and Private row 1 row 2
    Shared and Shuffled row x row y
    Fetch only once per user row x row x
  8. Click Finish. A reference to the datapool is added to the test, and the Test Details area is updated with the datapool information.
  9. Save the test.

What to do next

Now that you have created a reference between the test and the datapool, the next step is to associate a value in the test with a column in the datapool.