0

I am looking into using JMeter for load testing.
I am planning to create a moderate amount of threads ~300 as I read from various posts that JMeter does not scale well and I don't have some really special hardware.
So I am planning to loop for ~20 times to simulate 6000 users.

If I use a CSV data set with 6000 entries will JMeter provide each thread with an individual entry of the CSV file so in the end of the 20 loops all entries will have been send to the server as part of the request or in the start of each loop, the data set from the csv file will be read from the start?

Andrei Botalov
  • 20,686
  • 11
  • 89
  • 123
Cratylus
  • 52,998
  • 69
  • 209
  • 339

2 Answers2

1

It depends on Sharing mode set in CSV Data Set Config. If Sharing mode=All threads, then each time when CSV Data Set is executed, new row from CSV will be read. It seems to be what you want.

Notes:

  • if you'll set number of threads to 300, you'll get only 300 simultaneous "users" regardless of counter in loop.
  • you can't say beforehand how many simultaneous users your testing machine can give. Depending on test plan, SUT, network this number may be higher or lower than 300. If you want to make high load on your site, follow official best practices on reducing resource usage, think about distributed testing and, finally, consider using HTTP Raw Request from Jmeter-plugins.
Andrei Botalov
  • 20,686
  • 11
  • 89
  • 123
  • But if I loop 20 times from the server's perspective it will be as if 6000 users visited over `X` period of time, right? – Cratylus Nov 18 '12 at 21:59
  • Also you are saying experiment?What would you say the limit could be? – Cratylus Nov 18 '12 at 22:00
  • 1
    @Cratylus your server may sustain 300 simultaneous users but it's less likely that it will sustain 6000 simultaneous users. You should decide whether you want users to be simultaneous or not. – Andrei Botalov Nov 18 '12 at 22:03
  • Nobody can say how much load your testing machine can give. Experiment, but please follow guidelines – Andrei Botalov Nov 18 '12 at 22:04
  • Good point.So for example to test for 6000 concurrent users, would I be able to do it if I used a **really** good machine?Or would I need to do distributed testing? – Cratylus Nov 18 '12 at 22:08
  • @Cratylus It depends. See [What is the highest number of threads that is reasonable to simultaneously run in Jmeter?](http://stackoverflow.com/questions/765101/what-is-the-highest-number-of-threads-that-is-reasonable-to-simultaneously-run-i) – Andrei Botalov Nov 18 '12 at 22:11
1

I agree with Andrey on csv but you don't need raw Request, standard http sampler is enough.

Regarding JMeter scalability, it scales very well provided you follow best practices. Read:

Finally 6000 simultaneous users does not mean 6000 threads. Read this:

UBIK LOAD PACK
  • 33,980
  • 5
  • 71
  • 116
  • Why do you think HTTP Raw Request isn't needed? I agree that it's not likely to be needed in most situations. But it may be needed in case if very high load should be generated as it uses less resources. Disclaimer: I haven't used it – Andrei Botalov Nov 18 '12 at 23:25