Suggestions:
* For single JMeter instance, distribute your transaction data in files
numbered by user thread number (from 1 to 10, in your case)
#1
Test Plan (if users have to run sequentially)
- CSV Dataset Config (userDs.csv)
- Counter (start: 1, end: 10, increment: 1, referenceName: counter)
- Threads Group (threads: 1, loop: 10)
- Loop Controller (loop: 100)
- Samplers -> Use __CSVRead to a variable using ${counter} as
part of it, like: __CSVRead(per-user-csv-file-${counter}.csv,0)
#2
Test Plan (if users will run simultaneously)
- CSV Dataset Config (userDs.csv)
- Threads Group (threads: 10, loop: 1)
- Loop Controller (loop: 100)
- Samplers -> Use __CSVRead to a variable using __threadNum as
part of it, like: __CSVRead(per-user-csv-file-${__threadNum()}.csv,0)
* For distributed environment with 10 JMeter slaves, each slave will have
to have two CSV files (userDs.csv and per-user-csv-file.csv) with the data
to use for the specific user
each JMeter slave will have a userDs.csv file with only one line inside it,
the one with the specific user data (ex: in JMeter slave 1, userDs.csv will
have only one line: user1,password1)
#3
Test Plan (add Test Plan variables relative to user.properties keys. ex:
user: ${__P(user,NOT_DEFINED)} / password : ${__P()}
- CSV DatasetConfig (userDs.csv)
- CSV DatasetConfig (per-user-csv-file.csv)
- Thread Group (threads: 1, loopCount 100)
- Samplers (no specific advice here. since every per-user data is
distributed in distinct JMeter slaves, just use the field names as normal)
Hope it helps