0
votes

I am doing a performance test for a upload function with JMeter and I am still a little bit confused about the combination between number of users, ramp-up and loop count, and I am undecided which is the most feasible way to simulate 100 users to upload at the same time. Here are what I have tried so far:

Scenario 1 : Thread Count = 100, Ramp Up Time (Seconds) = 1 & Loop Count = 1

It means every 0.01 seconds (1/100) one Thread/Request will hit the server. Execution will start with one request at a time. This way, 100 users hit the server almost at the same time, I suppose.

Scenario 2 : Thread Count = 100, Ramp Up Time (Seconds) = 500 & Loop Count = 1

It means every 5 seconds (500/100) one Thread/Request will hit the server. Execution will start with one request at a time.

Scenario 3 : Thread Count = 100, Ramp Up Time (Seconds) = 500 & Loop Count = 100

Every 5 seconds (500/100) 100 Thread / Requests will hit the server. Once the first thread completes the first round of execution, it will start 2nd loop by executing same HTTP request. Execution lasts until all 100 threads executes all HTTP requests 100 times.

Am I doing correctly or do I misunderstand something? And which is more feasible?

1

1 Answers

1
votes

JMeter acts as follows:

  1. It starts the number of threads defined in Number of Threads (users) input during ramp-up period. Both are defined in Thread Group
  2. Each thread (virtual user) starts executing samplers upside down (or according to Logic Controllers). JMeter executes samplers as fast as it can so response time matters.
  3. When there are no samplers to execute or loops to iterate - thread is being shut down.

So if you don't have enough loops it might be the case that some samplers have already finished and the others have not been yet started. You can check how many threads were active using i.e. Active Threads Over Time listener.

The only way to ensure that JMeter will execute certain request with 100 users at exactly the same moment is using Synchronizing Timer