I am doing Jmeter testing. My setup is:
thread group: 1
threads in group: 10
loop count: 5
I also have a csv data config file that contains:
usr1, passwd1
usr2, passwd2
usr3, passwd3
usr4, passwd4
usr5, passwd5
'Recycle on EOF' set to true, 'Stop Thread on EOF' set to false.
Then I read some article online (JMeter CSV Dataset Config: how to move through variables in the same thread?)
A couple of doubts:
I think by setting 'Recycle on EOF' set to true, thread 1-5 will use username/passwd 1-5, thread 6-10 should reuse username/passwd 1-5. But I am wrong, thread 6-10 only get EOF as username/passwd and fail my test obviously, like the article suggest. But why?
Then I set 'threads in group' to 5, problem in 1) is gone, thread 1-5 use username/passwd 1-5 for loop 1. But because loop count>1, I do not know when thread 1-5 finish their 1st round, what username/passwd they will pick for loop 2? Should thread 1-5 still use username/passwd 1-5 in that order always? My observation is that it's like a first come, first served thing, whichever thread finish loop 1 first will get username/passwd 1. Is that the expected behavior?
For some reason, my test does not allow 2 threads to run using the same username/passwd at the same time. If what I describe in 2) is true, then I can have below timing situation:
a) thread 1 (use username/passwd 1)takes longest time
b) thread 5 (use username/passwd 5)takes shortest time
c) when thread 5 finish loop 1, it grab username/passwd 1 and run, at this moment, thread 1 loop 1 is still in progress, bad things happen...
So what configuration can I set to have all threads to wait for each other to finish the current loop, then start to run next loop together?