8

I would like to run Gatling test from code. How to do it? Tutorials says only about command line and sbt.

Context: I would like to extend tests. In background I have custom socket communication which I need to simulate. From that simulation I need to pass some generated Ids to Gatling test. I could do it by running it from my simulation app with parameters (but I don't know yet how). Other solution would be also a good answer.

I could do some passing through file and http://gatling.io/docs/2.1.6/cookbook/passing_parameters.html , but it is ugly..

Maybe there is way to run sbt task from scala code?

Waldemar Wosiński
  • 1,490
  • 17
  • 28

2 Answers2

8
import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder

object Engine extends App {

  val props = new GatlingPropertiesBuilder
  props.simulationClass("your.simulation.class.goes.here")
  props.dataDirectory("path.to.data.directory") //optional
  props.resultsDirectory("path.to.results.directory") //optional
  props.bodiesDirectory("path.to.template.directory") //optional
  props.binariesDirectory("path.to.binaries.directory") //optional

  Gatling.fromMap(props.build)
}

Hope this will help.

vkadam
  • 211
  • 2
  • 6
  • 1
    Important to note that data and bodies have to be real directories, not URLs for directories in jars. This makes running Gatling programmatically from a jar rather tricky (need to copy to a temporary directory). – Luke Maurer Aug 11 '17 at 20:26
1

I agree that the documentation on the Gatling website doesn't explain that well (I looked for it the other day) however Gatling has provided an excellent sample with some documentation on how to achieve this:

https://github.com/gatling/gatling-sbt-plugin-demo

bjfletcher
  • 11,168
  • 4
  • 52
  • 67