我来自java背景,正在接管一个gatling项目,在这个项目中,我注意到在使用val或def方法时有点不一致。下面的图片说明了这一点,我想知道是否有任何指导,在加特林的情况下,这些最好的用法请。
这些是我不确定应该用什么的其他例子。我假设一个开关在一个方法中是有意义的,但不确定其他的?
private def teacherViewResources: ChainBuilder =
exec(viewResourcesFlow)
.randomSwitch(
70.0 -> pause(1,2).exec(teacherLaunchResource),
10.0 -> pause(1,2).exec(teacherAssignResource),
20.0 -> pause(1,2).exec(teacherResourcesNext)
)
private def teacherLaunchResource: ChainBuilder =
exec(launchResourcesFlow)
val rootTeacherScenario = scenario("Root Teacher Scenario " + currentScenario.toString)
.doIfOrElse(currentScenario == PossibleScenarios.BRANCH)(
feed(userFeederTeacher).during(EXECUTION_TIME_SEC) {
exec(teacherBranching)
}
//For use with atOnceUsers for debugging
//feed(userFeederTeacher).exec(simulationTeacherBranching)
)(
exec {
session =>
logger.debug("Invalid teacher scenario chosen")
session
}
)
val loginFlowWithExit = exec(loginFlow).exitHereIfFailed
val teacherBranching = group("teacherBranching") {
exec(loginFlow)
.exec(session => sessionSetSessionVariable(session))
.exec(execFlaggedScenario(teacherDashboard)) // First method to run for a teacher
.exec(logout())
}
非常感谢。
1条答案
按热度按时间fcg9iug31#
val
在def
每次通话都会进行评估。记住,gatlingdsl组件只是构建器,而不是测试运行时执行的组件。所有不带参数的都可能是val
,您只需确保最终不会使用前向引用,例如:破损:
对的: