0
votes

When I'm using the original JMeter Thread Groups and set 10 threads (users), it fires 10 external HTTP calls.

When I changed it to Ultimate Thread Groups (UTG) and set the following attributes...

  • Start Threads Count = 10
  • Initial Delay = 0
  • Startup Time = 60
  • Hold Load For = 30
  • Shutdown Time = 10

...it fires thousands of external HTTP calls. Even the Stepping Thread Groups (STG) and Concurrency Thread Groups (CTG) also behave the same as UTG.

Why this happens when using non-original JMeter thread groups? I'm looking for ways to create 10 users that create 1 external HTTP call each (means 10 in total for the whole test plan) using UTG, STG or CTG but I don't really understand why this happens.

Screenshots when using original Thread Group

enter image description here

enter image description here

Screenshots when using original Ultimate Thread Group

enter image description here

enter image description here

1

1 Answers

0
votes

Your scenario results in:

  1. On 5th second of the test 1st virtual users starts
  2. Within next 55 seconds remaining 9 virtual users start
  3. 10 users are active for 30 seconds
  4. Then each 1 second each 1 virtual user is being shut down

You're seeing much more than 10 requests because once virtual user is kicked off it starts executing Samplers as fast as it can and the actual number of executed Samplers will mostly depend on your application response time. Check out What is the Relationship Between Users and Hits Per Second? for more comprehensive explanation.


If your goal is to execute 10 requests in 1 minute 40 seconds you need to use Constant Throughput Timer or Precise Throughput Timer or Throughput Shaping Timer in order to limit JMeter to send 1 request per each 10 seconds.