I have currently joined this group and I have a specific question about active users concept.
Indeed, I’m trying o understand why sometimes number of requests per seconds is smaller than number of active users.
My scenario is very simple; I inject 8 users per seconds during 10 minutes and each user exectutes about 10 HTTP requests :
Scenario100.inject(constantUsersPerSec(8) during(10 minutes)).protocols(myHttpProtocol)
But if the target server is saturated, number of active users continue to increase.
So my question is : what is an active user ?
An user is active when it executes only one action as execute one HTTP request ?
Or an user is active during all the time it hasn’t finished to execute all its actions ?
How it could be possible that I have more active users in my report than number of requests ?
Thanks a lot for your help.
Gatling will continue to create the number of users per second specified in your injection profile no matter how long your response times are. High latency will then increase the number of active users. If there are a number of requests in a scenario, then
subsequents requests will wait until the previous request has completed. Each user is a single TCP connection that covers all requests made in your scenario.
On Linux you can use 'ss -s' to give you a summary of your connections.
Thanks Aidy, it’s verfy helpful.
Just to be sure, when you say “each user is a single TCP connection” you mean that a common HTTP session is opened during execution of this sequence of requests for this user ?
Or there is one session for each request ?
Gatling will implement the HTTP 1.1 spec which suggests keeping the same connection for multiple HTTP requests/responses.