如果测试系统的状态不正确,如何终止加特林模拟?

时间:2019-01-05 00:29:37

标签: 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)
)

我看到的问题:

  • 为了简单地检查被测系统是否适合测试而显得有些复杂。
  • 它将实际并行运行方案,因此,如果检查花费了一段时间,它仍将对处于错误模式的系统产生负载。
  • 如果模式检查不正确,需要考虑并测试会发生什么情况

有更好的方法吗?

是否存在某种“可以在模拟开始之前”阶段进行检查的地方?

0 个答案:

没有答案