Execute as jar
Your can execute your load test in CLI, not using sbt.
Set up
First you define build.sbt
as this.
Define your simulation
Create main class in src/main/scala
, not src/test/scala
:
package simulation
import io.gatling.app.runner.GatlingRunner
import io.gatling.thrift.Predef._
object ThriftSimulationMain extends GatlingRunner
class ThriftSimulationExample extends ThriftSimulation {
...
}
sbt assembly
Add sbt assembly to project/plugins.sbt
:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")
And define sbt assembly settings as below:
lazy val root = (project in file(".")).
settings(assemblysettings).
settings(...)
lazy val assemblySettings = Seq(
assemblyMergeStrategy in assembly := {
case PathList("io", "netty", xs @ _ *) => MergeStrategy.first
case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard
case PathList("META-INF", "io.netty.versions.properties") => MergeStrategy.first
case PathList("META-INF", "services", _) => MergeStrategy.concat
case "BUILD" => MergeStrategy.discard
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
},
test in assembly := {},
assemblyJarName in assembly := "load-test.jar",
mainClass in assembly := Some("simulation.ThriftSimulationMain"),
)
Execute
Create fat jar as sbt assembly
and execute it:
$ sbt assembly
$ java -jar target/scala-2.12/load-test.jar --simulation simulation.ThriftSimulationExample
The source code for this page can be found here.