Как получить доступ к значению, хранящемуся в сеансе, из фидера в Gatling

В моем сценарии Гатлинга значение сохраняется в сеансе для пользователя. Позже в том же сценарии канал вызывается и передается в пользовательский фидер. Пользовательский фидер должен сгенерировать свое следующее значение, используя сохраненное значение в сеансе.

val MyScenario = scenario("ScenerioName")
  .repeat(10, "repetition") {
    exitBlockOnFail {
      group("WorkflowGroupName") {
        exec(session => {
            // SETTING A VALUE INTO THE USER'S SESSION
            session.set("sessionVariable", 99)  // value that is stored changes for every run of the workflow (99 just for example purposes)
        })
        // CUSTOM FEEDER THAT GENERATES ITS NEXT VALUE USING THE SESSION VARIABLE 'sessionVariable' STORED ABOVE
        .feed(myFeeder)
        .group("RequestGroup1") {
          exec(httpPost1)
        }
      }
    }
  }

val myFeeder = Iterator.continually(Map("jsonFileValue" -> {

  // WANT TO RETRIEVE VALUE OF 'sessionVariable' STORED IN THE SESSION
  val returnValue = /* logic that generates its value based on value of 'sessionVariable' retrieved */
  returnValue

}
))

val httpPost1 = http("Request1")
  .post("http://IPAddress/service.svc")
  .headers(httpHeaders)
  .body(ELFileBody("MyJsonFile.json"))
  .check(status.is(200))
val httpHeaders = Map(
  "Content-Type" -> "application/json; charset=UTF-8",
  "X-Pod" -> ""
)

Как я могу передать это сохраненное значение сеанса фидеру или заставить фидер извлечь это значение из сеанса?

1 ответ

Как указано в документации:

Иногда вам может понадобиться отфильтровать введенные данные в зависимости от некоторой информации из сеанса.

Фидер не может этого достичь, потому что это просто итератор, поэтому он не знает контекста.

Если ваши значения не зависят от тестов, которые вы запускаете, возможно, хорошим способом может быть создание csv перед запуском тестов, а затем передача этого csv в ваши тесты.

Другие вопросы по тегам