How many rows must be in the json data?

I am building a chatbot, I want to load test it. I want to test for 10 concurrent users for 5 minutes each users asking 5 questions repeatedly. If that is the case do I need to have 5 rows or 50 rows in the data file I am importing. Also I read that postman is not generally used for concurrency or it tests concurrency consecutively. I do not understand what it means. I would love some explanation and how it differs in this topic from k6.

Thank you

Hi @mission-astronomer-7 :waving_hand:. Welcome to the Postman Community :postman:

The number of rows you have has no real impact on the number of virtual users. Once you set the number of virtual users in the runner, each iteration will be running against one row in your data file for every user. My recommendation will be to include all the questions you want to be asked in your data file, and each virtual user will run against each question per iteration.

Sorry I don’t understand. What do you mean by when you say each iteration will be running against one row in your data file for every user? When I tried 5 queries for 10 VUs it said 5 rows were not enough. So what does that mean in the explanation that you gave.

Can you share a screenshot of the error that indicates that five rows were not enough? The number of rows in your data file ideally can be lower than 5.

You are using a data file to pass multiple variables to the collection runner. Each row is a variable set. The collection runner runs each request against each variable set or row.

This behaviour is consistent when running a performance test with a data file. However, this behaviour now happens for each virtual user running the collection.

Hi @mission-astronomer-7 ,
that data file should contain all questions that should be asked against each user (if 5 questions then five rows). The requests will be one after another for postman. You can use Newman running five requests for 10 users.

this is what I meant, I set the VUs to 10 and test duration to 1m

When asked about the limitations of POSTMAN in my situation to ChatGPT this is what it said. Please clarify if its true

:globe_with_meridians: How Postman Iterations and Virtual Users Work

:small_orange_diamond: Postman Collection Runner uses iterations, which means running the entire collection once per data row or iteration.
:small_orange_diamond: Iterations are not the same as concurrent virtual users (VUs). Postman does not run requests or iterations simultaneously — it runs them sequentially, one after another.


:rocket: Goal

:white_check_mark: You want 10 virtual users (VUs), each sending 5 concurrent POST requests with different questions (from a dataset with 5 rows).


:light_bulb: Options in Postman

:one: Multiple Requests Approach

  • Create a collection with 5 requests (one for each question).
  • Run 10 iterations to simulate 10 VUs × 5 requests each (total 50 requests).
  • However, Postman runs all requests in each iteration sequentially, not simultaneously.

:two: Pre-request Script for Concurrent Requests

  • Create a single request in Postman.
  • Use pm.sendRequest in the Pre-request Script to fire all 5 POST requests concurrently.
  • Run 10 iterations to approximate 10 VUs × 5 concurrent requests.

:fire: For True Load Testing

Postman is not ideal for real concurrent virtual users.
Use tools like:

  • k6 (JavaScript-based load testing)
  • JMeter
  • Locust

:memo: Summary

:small_orange_diamond: Postman iterations ≠ virtual users × data rows.
:small_orange_diamond: The Collection Runner runs requests sequentially, not in parallel.
:small_orange_diamond: To send 5 concurrent requests per iteration, use pm.sendRequest inside a pre-request script.
:small_orange_diamond: For real concurrency and load testing, switch to tools like k6.

Also this

Your Goal

You want to measure:
:white_check_mark: How long one VU (virtual user) takes to send 5 queries and get their responses.
:white_check_mark: 10 VUs run concurrently, each sending the same 5 queries (total 50).
:white_check_mark: You don’t want the test to repeat beyond these 50 requests.


:puzzle_piece: How k6 Works

  • Duration (--duration) sets a time limit. VUs will repeat iterations (queries) until that time runs out.
  • Iterations (--iterations) sets the total number of iterations (queries) across all VUs.
  • If you specify both --vus 10 --iterations 50, k6 will distribute the 50 queries across 10 VUs. Each VU might do 5 queries, but some might do 4 or 6, depending on how fast they run.
  • You can’t easily control each VU to do exactly 5 queries unless you code it in the script.

:memo: In Postman

Postman doesn’t directly manage concurrent VUs. You might simulate concurrency with a Collection Runner or Newman, but it won’t be as precise. Postman is best for sequential requests.