Understanding execution time and feeders

Gatling version: 3.11.5 (must be up to date)
Gatling flavor: [X ] java kotlin scala javascript typescript
Gatling build tool: [X ] maven gradle sbt bundle npm

Hello,
Still trying to understand Gatling.
I the following with a feeder that has 20 users. It appears as if each user is performing the scenario once and then stops.

    FeederBuilder.Batchable<String> multiUserNames =
        csv(credentialsCsv).circular();

 scenario("scenario1")
            //*** FEEDER ***
            //.feed(singleUserName)
            .feed(multiUserNames)
            //*** ChainBuilder Groups ***
            .group("Logon").on(exec (XXXXX))
            .group("XXXXX").on(exec (XXXXX))
            .group("XXXXX").on(exec (XXXXX))
            .group("XXXXX").on(exec (XXXXX));
    {
        // 'setUp' method returns a "Setup" class instance
        setUp(scenario1
            .injectOpen(rampUsers(20)
            .during(Duration.ofMinutes(2))))
            .protocols(httpProtocol)
            .maxDuration(Duration.ofMinutes(20));
    }

I am expecting the scenario to run 20 minutes and reuse the users after the 20th user has finished the scenario. When I ran this script, it finished after about 5 minutes and 59 seconds.

Am I missing something about how to get the test to keep executing for the full 20 minutes?

Timmer

Hello,

Your expectations are wrong. If you got them from our official documentation, could you please give some pointers so we can improve it?

maxDuration stops the test after a given duration, even if some virtual users are still running.

If you want new users, just add new users in your injection profile.

reuse the users

Usually, it doesn’t make any sense. Do your real users go back to the beginning of their journey on your application after completing it?

Hello Slandelle,
No, although users could logout and then log back on.
What I am trying to do is I currently only have 20 usernames.
When each user logs on to the system it will take them about 3 - 4 minutes to finish the flow of backend calls to complete the process.
If I want to ramp up from1 to the 20 users, then run with the 20 users constantly for say, 1 hour.
This would require Gatling to go back to the feeder and start from the first record(users) to start the process flow again and when another user finishes the flow, it would grab the second record, and continue reusing the users in the file until the 1 hours is up. I realize that at that time, some users may be in the middle of the flow, but I will have load statistics for the full 1 hour duration.
Since I am running this in a test/uat environment, a single user could technically log in more than once. At some point I would like to run 60 - 75 users against the system, but may not have 75 unique user names.

At least for me, the documentation was a little hard to follow in terns of how to accomplish this.
I though that by making the feeder “circular” it would automatically keep cycling through the users whenever it needed a new one to logon to the system to start another flow.

Timmer

try put Forever loop and run again.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.