scala - 如何在加特林持续时间规范中使用变量?
问题描述
我正在寻找一种使用变量设置场景持续时间的方法。从命令行开始测试时,我需要能够在此处使用不同的数字。
我可以将一个值从命令行传递给我的配置,它工作正常。我不知道如何描述这部分: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()采用 aFiniteDuration
而不是 anInt
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)
推荐阅读
- azure - 创建 Azure 应用服务时的 2 个订阅“Microsoft Azure”和“按需付费”,选择哪一个来托管共享点远程事件接收器
- html - 容器流体中的 d-flex 类,使其内部的 h1 更小
- code-composer - 无法运行任何 eclipse 命令从命令行导入或构建项目 Code Composer Studio v9.0.0
- c++ - CRTP接口:实现中的不同返回类型
- javascript - 无法访问 React js 组件的传递值
- apache-flink - MapState 不会在 Flink java 中使用 EventTimeSessionWindows 存储上一个会话
- python - 如何使我的 Label Tkinter 元素显示?
- python - 如何从网站下载多个 gif 并将其存储到我的目录中?
- c++ - Cpp:构造函数声明中的变量初始化语法
- java - Spring JPA Hibernate 无法自动生成 Id H2 表