Как я могу прервать симуляцию Гатлинга, если тестовая система не в нужном состоянии? - PullRequest
0 голосов
/ 05 января 2019

Целевая система, которую я тестирую при нагрузке, имеет 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)
)

Проблемы, которые я вижу с этим:

  • Кажется немного сложным для простой проверки того, что тестируемая система подходит для тестирования.
  • На самом деле он будет запускать сценарии параллельно, поэтому, если проверка займет некоторое время, она все равно будет генерировать нагрузку на систему, которая находится в неправильном режиме.
  • Необходимо учесть и проверить, что происходит, если проверка режима работает неправильно

Есть ли лучший способ?

Есть ли какая-то фаза "до начала симуляции", где я могу поставить эту проверку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...