I'm looking for a way to set the duration of a scenario using a variable. I need to be able to use different numbers here when starting the test from the command line.
I can pass a value from command line to my configuration, it works fine. What I can't figure out is how to describe this part: during (10 minutes)
using a variable instead of the magic number 10
. As far as I can tell, two imports are related to this part of the code: scala.concurrent.duration.DurationInt
and scala.language.postfixOps
.
So here is a sample of my code:
val usersPerSec: Double = 5
val pingScenario: ScenarioBuilder = {
scenario("Ping")
.exec(http("Ping").get(myUrl).check(status.is(200)))
}
setUp(
pingScenario.inject(
constantUsersPerSec(usersPerSec) during (10 minutes)
).protocols(myHttpProtocol)
And this is what I'd like to have:
val usersPerSec: Double = 5
val duration = 10
val pingScenario: ScenarioBuilder = {
scenario("Ping")
.exec(http("Ping").get(myUrl).check(status.is(200)))
}
setUp(
pingScenario.inject(
constantUsersPerSec(usersPerSec) during (duration minutes)
).protocols(myHttpProtocol)
Thanks for any help.
As you can see, during() takes a FiniteDuration
as opposed to an Int
case class ConstantRateBuilder(rate: Double) {
def during(d: FiniteDuration) = ConstantRateOpenInjection(rate, d)
}
Therefore, you can do something like:
import scala.concurrent.duration._
val usersPerSec: Double = 5
val duration = FiniteDuration(10, MINUTES)
val pingScenario: ScenarioBuilder = {
scenario("Ping")
.exec(http("Ping").get("test").check(status.is(200)))
}
setUp(
pingScenario.inject(
constantUsersPerSec(usersPerSec) during (duration)
).protocols(myHttpProtocol)