Generally, we set the the amount of concurrent users, ensure we have timer(s) to better simulate the user behavior and then press start.
Selecting the correct number of concurrent users is pretty easy. But!, when we want a certain amount of Hits/s (Hits per second), the ease of use can change.
So, we need to ask:
- Where and how do I get started?
- If I have 1K concurrent users, what does that say about my Hits/s?
- Can we control the number of Hit/s?
It's actually pretty simple.First of all, what does Hits/s stand for? Hits per second are the average number of samples initiated per second.So when reviewing BlazeMeter's 'Load Report' tab and viewing the Hits/s value - because you are on a value representing 1 minute, the value therefore represents the average Hits/s value for that minute.>In the instance that we have a simple test with a single thread, we will execute an http request and then wait for 1 second over and over. That means for each thread we will get 1 hit/s (if everything goes off without a hitch). Formula for Hit/s Calculation:
1 sample, 1 thread, 1 second delay + (assume for) a 2 second response time to load the page = 3 seconds total delay between requests = thread will execute 20 times per 1 minute = 0.33 Hits/s
*E.g.of 1 sample, 1 thread, 1 second delay and a very short response time of the server (between 0.25ms to 0ms).
Now that we know what hits/s means - how many Hits/s will a 1k concurrent user test provide ?You won't know until you try, but what you can do is run a free test with low concurrency (sign up for our free-tier) in order to better understand the amount of hits/s after initiated and then simply multiply it to achieve the number of desired Hits/s.
NOTE: Increasing the load to the server also increases the requests that must be handled per second -> and raises the chance for bottlenecks -> this then raises response times -> Result: Hits/s ratio decreases.
1 sample, 60 threads, 25 second timer between each sample and 5 seconds response time = each thread runs twice per minute so (2X60X1)/60 = Value of 2 Hits/s *See Formula for Hit/s Calculation Above
The good news is JMeter let you control the throughput via 2 controllers:
1. Constant Throughput Timer - set the amount of throughput (samples per minute) by adding a timer after the request to slowdown the script so it fits the throughput value.
2.Throughput Controller> - set the max number of executions OR the percentage of executions of the sample (i.e. either execute this 100 times OR 30% of the time).And with a little extra configuration, you can control the values of the Constant Throughput Timer and the Throughput Controller while the test is running.
Learn how with BlazeMeter's fantastic feature- Real Time Test Control
Now you know what Hits/s is and how to control it - Happy Testing!