Gatling loops not working

1.6k views Asked by At

This is probably something simple but I just can't find the reason why basic gatling loops are not working in any of my tests.

Regardless of how I try to define loops (repeat counter, duration) my simplistic scenario is always executed once per each user.

Test code:

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class RecordedSimulation extends Simulation {

  object Browse {

    val browse = exec(
      http("Getting category times")
        .get("http://localhost:8080/category/cat_1")
    )
  }

  val scn = scenario("My scenario").repeat(2000) {
    exec(Browse.browse)
  }

  setUp(
    scn.inject(atOnceUsers(10))
  )


}

instead of seeing 10x 2000 calls I am always seeing only 10 (equal to "atOnceUsers):

================================================================================
2016-12-19 17:10:18                                          25s elapsed
---- My scenario ---------------------------------------------------------------
[--------------------------------------------------------------------------]  0%
          waiting: 0      / active: 10     / done:0     
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=10     KO=0     )
> Getting category times                                   (OK=10     KO=0     )
================================================================================


================================================================================
2016-12-19 17:10:23                                          30s elapsed
---- My scenario ---------------------------------------------------------------
[--------------------------------------------------------------------------]  0%
          waiting: 0      / active: 10     / done:0     
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=10     KO=0     )
> Getting category times                                   (OK=10     KO=0     )
================================================================================


================================================================================
2016-12-19 17:10:24                                          31s elapsed
---- My scenario ---------------------------------------------------------------
[##########################################################################]100%
          waiting: 0      / active: 0      / done:10    
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=10     KO=0     )
> Getting category times                                   (OK=10     KO=0     )
================================================================================

Simulation com.RecordedSimulation completed in 30 seconds
Parsing log file(s)...
Parsing log file(s) done
Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                         10 (OK=10     KO=0     )
> min response time                                     10 (OK=10     KO=-     )
> max response time                                     43 (OK=43     KO=-     )
> mean response time                                    19 (OK=19     KO=-     )
> std deviation                                          9 (OK=9      KO=-     )
> response time 50th percentile                         16 (OK=16     KO=-     )
> response time 75th percentile                         21 (OK=21     KO=-     )
> response time 95th percentile                         35 (OK=35     KO=-     )
> response time 99th percentile                         41 (OK=41     KO=-     )
> mean requests/sec                                  0.323 (OK=0.323  KO=-     )
---- Response Time Distribution ------------------------------------------------
> t < 800 ms                                            10 (100%)
> 800 ms < t < 1200 ms                                   0 (  0%)
> t > 1200 ms                                            0 (  0%)
> failed                                                 0 (  0%)
================================================================================
2

There are 2 answers

0
user666 On

Please give a try to asLongAs

http://gatling.io/docs/1.5.6/user_documentation/tutorial/advanced_usage.html

asLongAs (session => session.getAttribute("username") != "user7") {exec}

Change the condition as you want.It is a session function and works...

0
rkarczmarczyk On

Could you please provide version of Gatling that you used. I use 2.2.1 and your code works for me (I've provide end of log - as you can see there is 20000 OK requests)

================================================================================
2017-02-06 23:00:38                                          30s elapsed
---- My scenario ---------------------------------------------------------------
[--------------------------------------------------------------------------]  0%
          waiting: 0      / active: 10     / done:0     
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=16582  KO=0     )
> Getting category times                                   (OK=16582  KO=0     )
================================================================================


================================================================================
2017-02-06 23:00:43                                          35s elapsed
---- My scenario ---------------------------------------------------------------
[##############------------------------------------------------------------] 20%
          waiting: 0      / active: 8      / done:2     
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=19566  KO=0     )
> Getting category times                                   (OK=19566  KO=0     )
================================================================================


================================================================================
2017-02-06 23:00:45                                          36s elapsed
---- My scenario ---------------------------------------------------------------
[##########################################################################]100%
          waiting: 0      / active: 0      / done:10    
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=20000  KO=0     )
> Getting category times                                   (OK=20000  KO=0     )
================================================================================

Simulation com.scenario.TestScenario completed in 36 seconds
Parsing log file(s)...
Parsing log file(s) done
Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                      20000 (OK=20000  KO=0     )
> min response time                                      8 (OK=8      KO=-     )
> max response time                                   1064 (OK=1064   KO=-     )
> mean response time                                    17 (OK=17     KO=-     )
> std deviation                                         22 (OK=22     KO=-     )
> response time 50th percentile                         13 (OK=14     KO=-     )
> response time 75th percentile                         17 (OK=17     KO=-     )
> response time 95th percentile                         30 (OK=30     KO=-     )
> response time 99th percentile                         53 (OK=53     KO=-     )
> mean requests/sec                                540.541 (OK=540.541 KO=-     )
---- Response Time Distribution ------------------------------------------------
> t < 500 ms                                         19989 (100%)
> 500 ms < t < 1000 ms                                   8 (  0%)
> t > 1000 ms                                            3 (  0%)
> failed                                                 0 (  0%)
================================================================================