object Web {
var rnd = new scala.util.Random(System.currentTimeMillis)
val scn = exec(_.set("urlSeq",Properties.executeSeq))
.exec(_.set("random", rnd.nextInt(Properties.total.toInt)))
.foreach("${urlSeq}", "currentTuple", "counter") {
doIf(session => session("counter").as[Int] == 0) {
exec(session => {
println("random: "+session("random").as[Int])
session.set("lower", 0)
.set("upper", 0)
})
}
.exec(session => {
val tuple = session("currentTuple").as[Tuple2[Double,String]]
println("lower: "+session("upper").as[Int])
println("upper: "+(session("upper").as[Int]+tuple._1.toInt))
session.set("lower", session("upper").as[Int])
.set("upper", session("upper").as[Int]+tuple._1.toInt)
.set("percent", tuple._1)
.set("exeUrl", tuple._2)
})
.doIf(session => (session("upper").as[Int] >= session("random").as[Int] && session("random").as[Int] > session("lower").as[Int])){
exec(session => {
println("Inside IF LOOP\n")
session.set("", "")
})
.exec(http("${exeUrl}-${percent}%").get("${exeUrl}"))
}
}
}
it could run for first 10 seconds, then memory kept going up and there was no Gatling summary table. I added some extra print to find out which part might be wrong but then i found it actually went into the final if loop but just the last http exec didnt get executed. A potential Gatling bug?
console output is lengthy but this is part of that. Clearly it went into the random number check but it didnt execute the http request. Ideas?
random: 88
lower: 0
upper: 30
lower: 30
upper: 50
lower: 50
upper: 60
lower: 60
upper: 80
lower: 80
upper: 100
Inside IF LOOP
random: 95
lower: 0
upper: 30
lower: 30
upper: 50
lower: 50
upper: 60
lower: 60
upper: 80
lower: 80
upper: 100
Inside IF LOOP