I have thread=100 and my ramp up time is = 500 sec, which should mean that JMeter will stop in 100*500 = 5000 seconds. Is this the correct way to calculate when my JMeter stops?
3 Answers
Nope. Ramp up time is the time JMeter will take to start all your threads. More info here. So with your case, JMeter will try to start each thread on a 5 seconds (500/100).
Now, when it will stop cannot be calculated easily and with accuracy before any measurements. It depends how many Requests you have, how many will take one request to get a response, do you have timers, or any other component which need time to process. And at the end, test duration will not be the same almost ever.
Your math is incorrect. This does not tell you when your test will stop. It will tell you "in how much time all the threads will be in the system".
Here is the catch. If you want to simulate concurrency of 100 users, with aforementioned details, you need to pick proper iteration value as well. Otherwise, user will come in the system, complete the workflow and if the workflow is takes less than 500 seconds to finish they will exit and there will never be 100 concurrent users in your system.
You need to understand how threads and ramp-up work in case of JMeter. When you mention 100 threads with ramp-up time 500 seconds, it means all the threads will enter the system in 500 seconds. But the does not necessarily mean they will remain in the system until all threads have come in. So, in your case the test will end in ~(500 seconds + time taken to execute entire workflow by last thread) if your iteration value is 1.
As already explained by Racnha and Ivan, Ramp Up time doesn't tell you when your JMeter tests will stop. Instead they tell you the delay between start time of 2 consecutive threads.
BUT, you can know when your JMeter tests stop (not with the ramp up.). In the Thread Group dialog you will see an option called "Scheduler" (see the image below). Select the check-box to enable "Scheduler". Select that and then configure the duration for which you want your test to run. That is the time it will take JMeter to stop your test.
If you do not configure the scheduler (Leave it all empty), then your JMeter tests will stop once all the Threads have completed their work!