我有1种情况要与不同的用户负载一起测试。
val reports1 = createScenario("rep1")
val reports2 = createScenario("rep2")
val reports3 = createScenario("rep3")
def createScenario(name: String) : ScenarioBuilder = {
val newScenario = scenario(name)
.exec(
sse("My Scenario")
.open("/endpoint")
.headers(config.header))
.exec(sse("close").close())
newScenario
}
setUp(
reports1.inject(
atOnceUsers(1),
nothingFor(2 minutes),
atOnceUsers(10),
nothingFor(5 minutes),
atOnceUsers(50)
),
reports2.inject(
atOnceUsers(1),
nothingFor(2 minutes),
atOnceUsers(10),
nothingFor(5 minutes),
rampUsers(50) over(50 seconds)
))
.protocols(http.baseURL(config.url))
运行此命令时,注入是并行进行的。
我可能可以将所有用户注入合并为1个块,并用pause()分隔,但这似乎不是一个很好的解决方案
答案 0 :(得分:1)
注入不是并行进行的,场景是并行进行的。这就是Gatling的工作方式-作为一个df
调用的参数传递的所有场景总是并行执行,如果您希望它们按顺序运行,则每个场景应在单独的模拟类中。同样,您的示例类型没有意义,因为您运行了两种名称不同的场景,如果您可以提供真实的示例,也许我会建议其他方法。