Gatling - execute scenarios sequentialy
Asked Answered
S

2

6

When I run code like:

setUp(
     scenario1.inject(constantUsersPerSec(1) during (1 second)),
     scenario2.inject(constantUsersPerSec(1) during (1 second))
).protocol()

Both scenarios are started at once.
What need to be changed to run it one by one?

Serrato answered 26/1, 2017 at 13:54 Comment(0)
S
12

You could start the second scenario with a "nothingFor" injection step

setUp(
   scenario1.inject(constantUsersPerSec(1) during (1 second)),
   scenario2.inject(nothingFor(1 second) ,
                    constantUsersPerSec(1) during (1 second))
).protocol()

If you want to have a guaranteed sequential execution, you have to put the chains of both scenarios into a new scenario.

var scn = scenario("combined scenario").
           .exec(chain1)
           .exec(chain2)

def chain1 = exec(...)...
def chain2 = exec(...)...

Usually I separate the scripts for a page (recorded, volatile) from the user scenario sequences (chains of page calls) and the load model (the setup with the injection steps), which makes it easier to recombine chains to create new scenarios.

Schramke answered 26/1, 2017 at 14:3 Comment(1)
inject(nothingFor(1 second) is a kind of pause here. instead of this do we have anything else? If I dont want to use any pause or nothingFor(1 second) my question is here, #44066045Akkadian
L
6

The key method is andThen

In Gatling 3.4+ they have added new DSL for it which looks something like this (taken from official documentation)

setUp(
  parent.inject(injectionProfile)
    // child1 and child2 will start at the same time when last parent user will terminate
    .andThen(
      child1.inject(injectionProfile)
        // grandChild will start when last child1 user will terminate
        .andThen(grandChild.inject(injectionProfile)),
      child2.inject(injectionProfile)
    )
)

Docs https://docs.gatling.io/reference/script/core/injection/#sequential-scenarios

Louanneloucks answered 22/12, 2020 at 10:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.