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%)
================================================================================
Please give a try to asLongAs
http://gatling.io/docs/1.5.6/user_documentation/tutorial/advanced_usage.html
Change the condition as you want.It is a session function and works...