0

Here is the Scenario:

I am testing a Restful web service. I am simulating JMeter as an endpoint. In actual there are 13000 End points that communicate with the Web services.

I am simulating same 13000 endpoints as threads. I am unable to determine the ramp up time. I feel that keeping lest ramp up time will make my computer unstable as the individual threads use some amount of RAM so collectively 13000 threads will use lots of memory. I am reading data for each thread from .csv (unique data for each endpoint) file.

I don't have separate machines for performing testing. I will run these tests on my machine with 8 GB of RAM.

Please suggest your valuable inputs. Will the ramp up time impact my test results..? How will it impact and its adverse impact when the time is less or more.

2

See 13000 threads is a huge amount, which can cause your machine to get hang and other issues like "Memory Out of Index", High CPU usage etc. and that depends upon your script too i.e.

  1. How many requests are there in your script? -- Generally REST requests are not that heavy and I am considering that you have only 1 REST request in your script.
  2. How many listeners and what type of listeners you have used? -- Use light lisenters like 'Data Writer', 'Aggregate Report'.
  3. Don't use any Assertion.

    Best possible way would be to use distributed environment but it is not possible in your case (as you mentioned). So you must specify the Ramp Up time in your script to avoid loss of your machine and time.

Now the question is how much Ramp Up you need to specify. The best way is to go by Hit and Trial method. You first need to execute your script for 1000 or 2000 threads load, and then see if it works fine or not. If it is not working fine then add some Ramp Up as this will provide some time to JMeter to have some rest and get back its breath. Start with Ramp Up of 10 secs for 2000 threads and see the result.

  • If this works fine then it indicates that you can load upto 200 threads per second, so set your Ramp Up for 13000 threads accordingly. But if you think 2000 threads is easy target then go for 5000 threads.
  • If this doesn't work fine then increase your Ramp Up time in such a way that you get that threshold value (i.e. Ramp Up = X) at which your script works fine for 2000 threads and decide you Ramp Up for 13000 threads accordingly.

There are no hard and fast rules for setting up Ramp Up time, it all depends on your machine, its configuration, JMeter heap size, your script, its size and elements being used in your script.

  • Actually i am testing how load testing the Rest service. There is only 1 sample in the script. Only 1 listener is being used to write to file. Is this the approach correct for load testing...? – Fazaikh Aug 11 '15 at 16:27
  • Yes, this approach is correct and fine for REST service. – Dhiman Aug 11 '15 at 21:02
0

Not knowing use case of your application is quite hard to tell exact ramp-up value, in my view virtual users arrival rate should be something like 25-50 users per second.

In regards to JMeter side of things performance, first of all:

  1. Run your test in command-line non-GUI mode
  2. Disable all the Listeners (if any)
  3. Depending on your operating system, locate HEAP=-Xms512m -Xmx512m line in either jmeter or jmeter.bat file and increase -Xmx parameter to 6G or 7G

See JMeter Performance and Tuning Tips guide for more recommendations on JMeter configuring tips and tricks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.