代码之家  ›  专栏  ›  技术社区  ›  Shorn

如果测试系统没有处于正确的状态,如何中止Gatling模拟?

  •  1
  • Shorn  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前