I\'m using a CSV dataset config element, which is reading from a file like this:
abd
sds
ase
sdd
ssd
cvv
Which, basically, has a number of
CSV data set moves through file only when each thread iteration starts.
You can use Raw Data Source PreProcessor to move throuhg file with each request, that's your solution.
Update:
CSV Dataset does not seem to be a suitable too for this purpose.
I ended up creating some simple beanshell scripts that create a random 1, 2, or 3 letter word as needed, and also another one that reads a random words from a large set. This way, each time they are called they give a random value. They are called like this:
${__BeanShell(getRandomStr(3))}
or
${__BeanShell(getRandomWord())
CSV Data Set Config works fine for this. All of the values need to be in one column in the file and assign them to the variable as described.
Create a Thread Group that has as many threads for as many users as you want iterating over the file (i.e. acting on the HTTP Request). Assuming 1 user, set the number of threads to 1, loop count to 1.
Inside the thread group you will need to add a Loop Controller or a While Controller. You indicated that you want to loop through the whole data set. If you add a loop controller you will want to set the Loop Count to 6, since you have 6 values, one for each value. Alternately (and easier for processing the whole file) add a While Controller instead of a Loop Controller and set ${random_3} as the while condition.
It is important to set the CSV Data Set Recycle on EOF and Stop Thread on EOF values correctly. If you plan to iterate over the file more than once you must set "Recycle on EOF" to True (i.e. instruct jMeter to move back to the top of the CSV file). Set "Stop Thread on EOF" to False if you are using a loop controller, true if you are using a while controller and want to stop after reading the whole csv dataset.
Add the CSV Data Set Config as a child of the controller along with the HTTP Request. View the results using any listener you want to use.
Note that you need to have the values for a given variable name in the same column.
Doing: abd sds ase sdd ssd cvv
is very different from
abd
sds
ase
sdd
ssd
cvv
The first has 6 variables with one value each; the second has one variable with 6 values.