首页 > 解决方案 > 如果测试系统未处于正确状态,我如何中止 Gatling 模拟?

问题描述

我正在负载测试的目标系统有一个mode指示它是否适合运行负载测试的目标系统。

我只想在模拟开始时检查一次该模式(即我不想为模拟中的每个用户一遍又一遍地检查)。

这是我想出的,但System.exit()似乎很苛刻。

我定义了一个执行链来检查模式是否是我想要的值:

def getInfoCheckNotRealMode:ChainBuilder = exec(
  http("mode check").get("/modeUrl").
    check( jsonPath("$.mode").saveAs("mode") )
).exec { sess =>
  val mode = sess("mode").as[String]
  println(s"sengingMode $mode")

  if( mode == "REAL"){
    log.error("cannot allow simulation to run against system in REAL mode")
    System.exit(1)
  }

  sess
}

然后我将“检查”场景与真实场景并行运行,如下所示:

val sim = setUp(
  newUserScene.inject(loadProfile).
    protocols(mySvcHttp),
  scenario("Check Sending mode").exec(getInfoCheckNotRealMode).
    inject(atOnceUsers(1)).
    protocols(mySvcHttp)
)

我看到的问题:

有没有更好的办法?

是否有某种“模拟开始之前”阶段我可以进行此检查?

标签: gatling

解决方案


推荐阅读