Gatling - 按顺序执行场景
Gatling - execute scenarios sequentialy
当我 运行 代码如下:
setUp(
scenario1.inject(constantUsersPerSec(1) during (1 second)),
scenario2.inject(constantUsersPerSec(1) during (1 second))
).protocol()
两种场景同时启动。
有什么需要一一改成运行吗?
您可以使用 "nothingFor" 注入步骤开始第二种情况
setUp(
scenario1.inject(constantUsersPerSec(1) during (1 second)),
scenario2.inject(nothingFor(1 second) ,
constantUsersPerSec(1) during (1 second))
).protocol()
如果要保证顺序执行,就得把两个场景的链放到一个新的场景中。
var scn = scenario("combined scenario").
.exec(chain1)
.exec(chain2)
def chain1 = exec(...)...
def chain2 = exec(...)...
通常我将页面脚本(记录的、可变的)与用户场景序列(页面调用链)和加载模型(带有注入步骤的设置)分开,这样可以更容易地将链重新组合到创建新场景。
关键方法是andThen
在 Gatling 3.4+ 中,他们为其添加了新的 DSL,看起来像这样(摘自官方文档)
setUp(
parent.inject(injectionProfile)
// child1 and child2 will start at the same time when last parent user will terminate
.andThen(
child1.inject(injectionProfile)
// grandChild will start when last child1 user will terminate
.andThen(grandChild.inject(injectionProfile)),
child2.inject(injectionProfile)
)
)
文档https://gatling.io/docs/current/general/simulation_setup/#sequential-scenarios
当我 运行 代码如下:
setUp(
scenario1.inject(constantUsersPerSec(1) during (1 second)),
scenario2.inject(constantUsersPerSec(1) during (1 second))
).protocol()
两种场景同时启动。
有什么需要一一改成运行吗?
您可以使用 "nothingFor" 注入步骤开始第二种情况
setUp(
scenario1.inject(constantUsersPerSec(1) during (1 second)),
scenario2.inject(nothingFor(1 second) ,
constantUsersPerSec(1) during (1 second))
).protocol()
如果要保证顺序执行,就得把两个场景的链放到一个新的场景中。
var scn = scenario("combined scenario").
.exec(chain1)
.exec(chain2)
def chain1 = exec(...)...
def chain2 = exec(...)...
通常我将页面脚本(记录的、可变的)与用户场景序列(页面调用链)和加载模型(带有注入步骤的设置)分开,这样可以更容易地将链重新组合到创建新场景。
关键方法是andThen
在 Gatling 3.4+ 中,他们为其添加了新的 DSL,看起来像这样(摘自官方文档)
setUp(
parent.inject(injectionProfile)
// child1 and child2 will start at the same time when last parent user will terminate
.andThen(
child1.inject(injectionProfile)
// grandChild will start when last child1 user will terminate
.andThen(grandChild.inject(injectionProfile)),
child2.inject(injectionProfile)
)
)
文档https://gatling.io/docs/current/general/simulation_setup/#sequential-scenarios