Use a dataset to simulate virtual users
Datasets are available on Postman Solo, Team, and Enterprise plans. For more information, see the pricing page.
When you configure a performance test, each virtual user (VU) executes the selected requests in a repeating loop. By default, every virtual user sends requests with the same data. You can use a dataset to give each virtual user its own data, simulating real-world traffic with unique logins, tokens, or payloads at scale.
Unlike a data file, which is a static CSV or JSON file uploaded per run, a dataset is a data source shared across your collections, mocks, and runs. You define the data once and shape it with views, so the same dataset can power your collection runs, mock servers, and performance tests without duplication. Datasets can be backed by local files or live external databases.
You can also run performance tests with a dataset from your CI/CD pipeline using the Postman CLI. The postman performance run command supports --dataset-id, --dataset-view-id, --dataset-distribution, and other dataset options. Learn more about the postman performance run command.
Access data in scripts
During the performance test, each virtual user’s assigned row is available in pre-request and post-response scripts using pm.iterationData. The keys you pass to pm.iterationData.get() correspond to the fields exposed by the view you selected. For example, if your view includes a token field, each virtual user can authenticate with a unique token:
Learn more about using iteration data variables in scripts.
Run a performance test with a dataset
Select a dataset and view to drive your performance test. Each virtual user is handed data from the dataset according to the iteration strategy you choose.
To run a performance test with a dataset, do the following:
-
Configure a performance test, specifying the number of Virtual users, the Test duration, and a Load profile.
-
Under Iteration data, select the Datasets tab.
-
Select a dataset and a view. The view controls which rows and columns are available to virtual users during the test.
-
Select an Iteration strategy to control how rows are mapped to virtual users. Learn more about iteration strategies.
-
Click Run to start the performance test.
Iteration strategies
Iteration strategies control how rows from the selected view are assigned to virtual users during the run.
-
Round-robin (default) — On each VU execution, the VU takes the next row, wrapping back to the first when all rows have been used. This gives even coverage across all rows. If you want each VU execution to use unique data, provide enough rows to cover the total number of VU executions for your test. This is determined by your virtual user count and the requests per second your test generates. If the number of rows is less than the total VU executions, rows will be reused.
-
Fixed — Each VU locks to one row and reuses it across all VU executions. VU N uses row N, wrapping past the last row. Use this when each virtual user should consistently represent a single identity throughout the test, such as load-testing real auth or per-user flows.
-
Random — On each VU execution, the VU picks a uniformly random row. This provides no coverage or uniqueness guarantee, but can help simulate unpredictable access patterns.