0
votes

I am trying to see if I can simulate a burst mode in JMeter (2.x -- that's the only version I have access in this particular environment and cannot upgrade) with a sustain load, and a fixed duration/flight-time at certain intervals.

For instance, I would like to flood the target with 4 separate thread groups of 80 users, every 30 minutes for around 5 continuous minutes. This is in addition to the existing main thread group that is making 200 simultaneous requests forever (24 hours+).

I tried this answer, however, I am not seeing the desire effect. My JMeter setup is as following:

- A main thread user group (200 users, 5 secs ramp-up, forever loop)
   - It contains 4 separate HTTP Requests as its children (they get called as long as the script is not shutdown)
- 1st separate thread group with 80 threads, 5 secs ramp-up, forever loop; as its children:
   - "Constant Timer" for interval invocation, e.g. every 30 mins
   - "Runtime Controller" for duration/flight-time configuration, e.g. 5 mins continuously
   - "Loop Controller" to iteratively executing the requests, set to forever loop (I even tried fixed numbers, e.g. 10)
   - An actual `HTTP Request`
- 2nd separate thread group with identical setup except different HTTP Request
- 3rd separate thread group with identical setup except different HTTP Request
- 4th separate thread group with identical setup except different HTTP Request

I tried to play with Ultimate Thread Group but seems like it doesn't create a surge mode, but it does execute it for the set duration. The requests are uniformly distributed in that time period rather than being sent in burst mode to the target server. So it appears that it only subscribes to sending a number of requests equal to the number of thread counts for that duration.

What I want for those threads in these surge thread groups to continuously send requests for the entire configured duration, non-stop, similar to the main load thread group, rather than just sending X amount of requests (equal to the number of threads) once.

Is this achievable with

2

2 Answers

0
votes

You might need to switch to a SaaS offering to support that many requests in parallel, such as https://rungutan.com

0
votes

I don't think Constant Timer is the right option as it creates 30 minutes delay before each HTTP Request sampler in its scope.

If you want to wait for 30 minutes and then release all 80 threads at exactly the same moment:

  1. Add Test Action sampler and configure it to "sleep" for 30 minutes
  2. Add Synchronizing Timer so all 80 threads will "sleep" together as the child of this Test Action sampler
  3. Add HTTP Request sampler which does the real job
  4. Add the same Synchronizing Timer as the child of the HTTP Request sampler

This way you will get 80 users hitting your server each 30 minutes