The way BlazeMeter does rounding.
Release : SAAS
Component : BLOCKMASTER
This test was set up to run 75VU with 20 min ramp-up with 5 steps, running in 3 google dedicated IP’s (Iowa, Virginia, Oregon).
The test ran 90VU with 2 steps to 90VU running on 3 google dedicated IP’s. I’m not sure why this test ran 90VU when during setup it showed that 75 VU’s were set up for the test across the 3 IPs.
Each of your thread groups was configured for 1.
You specified 75 users for 15 thread groups.
Each thread group will run 5 users.
You specified 3 engines.
Then since you have 15 thread groups and 3 engines, multiply 5 × 18 and will get 90.
I used this for reference:
For test 2:
The test is configured to run in 4 locations for 75 users.
That broke down to 3 locations using 19 users and 1 location using 18 users.
As with the other test, in jmx file, contains 15 Thread Groups.
This is similar to your other case except in that this time the number of users is < the configured number.
In this case BlazeMeter rounded down instead of up in order to be able to approximate the configured number of users over the configured number of locations (75 users over 4 locations) within the constraints of the JMeter script (15 Thread Groups). 15 users are allocated to each location - one for each Thread Group - so over 4 locations, that would be 60 users.
These are suggestions from R&D for performance tests: