按顺序加特林用户注入
Gatling user injection in sequence
我有 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))
当我运行这个时,注入是并行完成的。
我可能可以将所有用户注入合并到一个块中并用 pause() 分开,但这似乎不是一个好的解决方案
注入不是并行完成的,场景是并行完成的。这就是 Gatling 的工作方式 - 所有作为一个 setUp()
调用参数传递的场景总是并行执行,如果你希望它们按顺序 运行 而不是每个场景应该在单独的模拟 class 中。此外,您的示例也没有任何意义,因为您 运行 2 个场景只是名称不同,如果您能提供真实生活中的示例,我可能会推荐其他东西。
我有 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))
当我运行这个时,注入是并行完成的。
我可能可以将所有用户注入合并到一个块中并用 pause() 分开,但这似乎不是一个好的解决方案
注入不是并行完成的,场景是并行完成的。这就是 Gatling 的工作方式 - 所有作为一个 setUp()
调用参数传递的场景总是并行执行,如果你希望它们按顺序 运行 而不是每个场景应该在单独的模拟 class 中。此外,您的示例也没有任何意义,因为您 运行 2 个场景只是名称不同,如果您能提供真实生活中的示例,我可能会推荐其他东西。