I have a weird behavior when launching Gatling in Docker.
I am using docker compose and when I try to use the image denvazh/gatling to launch gatling with the command command: ["-sf", “/gatling-demo/src/test/scala”]
The error that displays is :
gatling_1 | perfAdvisor.PerfAdvisorSimulation is the only simulation, executing it.
gatling_1 | Select run description (optional)
gatling_1 | 14:05:10.069 [ERROR] i.g.a.Gatling$ - Run crashed
gatling_1 | java.lang.NullPointerException: null
gatling_1 | at io.gatling.app.Selection$Selector.askRunDescription(Selection.scala:133)
gatling_1 | at io.gatling.app.Selection$Selector.$anonfun$selection$5(Selection.scala:59)
gatling_1 | at scala.Option.getOrElse(Option.scala:121)
gatling_1 | at io.gatling.app.Selection$Selector.selection(Selection.scala:59)
gatling_1 | at io.gatling.app.Selection$.apply(Selection.scala:36)
gatling_1 | at io.gatling.app.Runner.run0(Runner.scala:74)
gatling_1 | at io.gatling.app.Runner.run(Runner.scala:61)
gatling_1 | at io.gatling.app.Gatling$.start(Gatling.scala:74)
gatling_1 | at io.gatling.app.Gatling$.fromArgs(Gatling.scala:47)
gatling_1 | at io.gatling.app.Gatling$.main(Gatling.scala:39)
gatling_1 | at io.gatling.app.Gatling.main(Gatling.scala)
gatling_1 | Exception in thread “main” java.lang.NullPointerException
gatling_1 | at io.gatling.app.Selection$Selector.askRunDescription(Selection.scala:133)
gatling_1 | at io.gatling.app.Selection$Selector.$anonfun$selection$5(Selection.scala:59)
gatling_1 | at scala.Option.getOrElse(Option.scala:121)
gatling_1 | at io.gatling.app.Selection$Selector.selection(Selection.scala:59)
gatling_1 | at io.gatling.app.Selection$.apply(Selection.scala:36)
gatling_1 | at io.gatling.app.Runner.run0(Runner.scala:74)
gatling_1 | at io.gatling.app.Runner.run(Runner.scala:61)
gatling_1 | at io.gatling.app.Gatling$.start(Gatling.scala:74)
gatling_1 | at io.gatling.app.Gatling$.fromArgs(Gatling.scala:47)
gatling_1 | at io.gatling.app.Gatling$.main(Gatling.scala:39)
gatling_1 | at io.gatling.app.Gatling.main(Gatling.scala)
gatling-perfadvisor_gatling_1 exited with code 1
However when I launch gatling on my machine with ./gatling.sh -sf ./my-project/src/test/scala, it displays :
gatling_1 | perfAdvisor.PerfAdvisorSimulation is the only simulation, executing it.
gatling_1 | Select run description (optional)
and I have to press enter to start the simulations.
When I try to launch the simulations by providing the full path of the class name : ./gatling.sh -s /my-project/src/test/scala/my-package/MySimulation.scala :
java.lang.ClassNotFoundException: src/test/scala/my-package/MySimulation.scala
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$2(Selection.scala:70)
at scala.util.Try$.apply(Try.scala:213)
at io.gatling.app.Selection$Selector.findUserDefinedSimulationInClassloader$1(Selection.scala:70)
… 15 common frames omitted
Wrapped by: java.lang.IllegalArgumentException: User defined Simulation class src/test/scala/my-package/MySimulation.scala could not be loaded
at io.gatling.app.Selection$Selector.findUserDefinedSimulationInClassloader$1(Selection.scala:79)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$4(Selection.scala:84)
at scala.Option.orElse(Option.scala:306)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$3(Selection.scala:84)
at scala.Option.flatMap(Option.scala:188)
at io.gatling.app.Selection$Selector.singleSimulationFromConfig(Selection.scala:82)
at io.gatling.app.Selection$Selector.$anonfun$selection$1(Selection.scala:52)
at scala.Option.getOrElse(Option.scala:138)
at io.gatling.app.Selection$Selector.selection(Selection.scala:44)
at io.gatling.app.Selection$.apply(Selection.scala:36)
at io.gatling.app.Runner.run0(Runner.scala:73)
at io.gatling.app.Runner.run(Runner.scala:60)
at io.gatling.app.Gatling$.start(Gatling.scala:73)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
at io.gatling.app.Gatling$.main(Gatling.scala:38)
at io.gatling.app.Gatling.main(Gatling.scala)
Exception in thread “main” java.lang.IllegalArgumentException: User defined Simulation class src/test/scala/my-package/MySimulation.scala could not be loaded
at io.gatling.app.Selection$Selector.findUserDefinedSimulationInClassloader$1(Selection.scala:79)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$4(Selection.scala:84)
at scala.Option.orElse(Option.scala:306)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$3(Selection.scala:84)
at scala.Option.flatMap(Option.scala:188)
at io.gatling.app.Selection$Selector.singleSimulationFromConfig(Selection.scala:82)
at io.gatling.app.Selection$Selector.$anonfun$selection$1(Selection.scala:52)
at scala.Option.getOrElse(Option.scala:138)
at io.gatling.app.Selection$Selector.selection(Selection.scala:44)
at io.gatling.app.Selection$.apply(Selection.scala:36)
at io.gatling.app.Runner.run0(Runner.scala:73)
at io.gatling.app.Runner.run(Runner.scala:60)
at io.gatling.app.Gatling$.start(Gatling.scala:73)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
at io.gatling.app.Gatling$.main(Gatling.scala:38)
at io.gatling.app.Gatling.main(Gatling.scala)
Caused by: java.lang.ClassNotFoundException: src/test/scala/my-package/MySimulation.scala
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at io.gatling.app.Selection$Selector.$anonfun$singleSimulationFromConfig$2(Selection.scala:70)
at scala.util.Try$.apply(Try.scala:213)
at io.gatling.app.Selection$Selector.findUserDefinedSimulationInClassloader$1(Selection.scala:70)
… 15 more
Is there an equivalent of “-y” option like in apt-get so we can launch the simulations automatically.
Thx for your response
Clarence