如何在 Gatling 持续时间规范中使用变量?
How to use variables in Gatling duration specifications?
我正在寻找一种使用变量设置场景持续时间的方法。从命令行开始测试时,我需要能够在这里使用不同的数字。
我可以从命令行向我的配置传递一个值,它工作正常。我想不通的是如何描述这部分:during (10 minutes)
使用变量而不是幻数 10
。据我所知,有两个导入与这部分代码相关:scala.concurrent.duration.DurationInt
和 scala.language.postfixOps
.
下面是我的代码示例:
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)
这就是我想要的:
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)
感谢您的帮助。
如您所见,during() 采用 FiniteDuration
而不是 Int
case class ConstantRateBuilder(rate: Double) {
def during(d: FiniteDuration) = ConstantRateOpenInjection(rate, d)
}
因此,您可以这样做:
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)
我正在寻找一种使用变量设置场景持续时间的方法。从命令行开始测试时,我需要能够在这里使用不同的数字。
我可以从命令行向我的配置传递一个值,它工作正常。我想不通的是如何描述这部分:during (10 minutes)
使用变量而不是幻数 10
。据我所知,有两个导入与这部分代码相关:scala.concurrent.duration.DurationInt
和 scala.language.postfixOps
.
下面是我的代码示例:
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)
这就是我想要的:
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)
感谢您的帮助。
如您所见,during() 采用 FiniteDuration
而不是 Int
case class ConstantRateBuilder(rate: Double) {
def during(d: FiniteDuration) = ConstantRateOpenInjection(rate, d)
}
因此,您可以这样做:
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)