In LoadRunner, I can set up a test where I ramp up users to reach 500 concurrent users, then stay at that level for 20 minutes — running continuous iterations over that period. Each user only logs in one time, but continues to work over the 20 minute period.
The application being tested is a quite common design at Deere — A portal type application in which a Dealer logs into a system and stays logged in over long periods of time, performing various business activities.
Typically I would have a ramp up rate of 10 users every 15 seconds until I reached 500, so the total test run time would be 32 minutes and 30 seconds.
How can I set up this type of scenario in Gatling?
I thought I would do something like this:
First, I put a .repeat in the scn section of my script:
val scn = scenario("DealerPathUC1") .feed(csvSAMLResponseFeeder) .feed(csvDealerFeeder) .exec(Access_Site()) .pause(5 seconds) .exec(Login()) .pause(5 seconds) .repeat(10)( exec(BusinessAdmin()) .pause(5 seconds) .exec(SupplierDiscounts()) .pause(5 seconds) .exec(ShopAtJDIS()) .pause(5 seconds) .exec(MyDealerPath()) .pause(5 seconds) .exec(PartsAndAttachments()) .pause(5 seconds) .exec(BarCodeInformation()) .pause(5 seconds) .exec(ShowroomProcessOptimization()) .pause(5 seconds) .exec(MyDealerPath2()) .pause(5 seconds) .exec(ServiceAndSupport()) .pause(5 seconds) .exec(MyDealerPath3()) .pause(5 seconds) .exec(Sales()) .pause(5 seconds) .exec(PriceBooks()) .pause(5 seconds) .exec(MyDealerPath4()) .pause(5 seconds) .exec(MarketingAndAdvertising()) .pause(5 seconds) .exec(eLeader()) .pause(5 seconds) .exec(MyDealerPath5()) .pause(5 seconds) )
And then I set up the injection schedule:
setUp( scn.inject( constantConcurrentUsers(500) during (20 minutes), rampConcurrentUsers(10) to (500) during (13 minutes) ) ).protocols(httpProtocol)
But this does not behave as I would understand the syntax in Gatling.
I have tried to find others with similar scenario design questions, but apparently I am not getting a good understanding of things.
Thanks,
Randy