Гатлинг использует динамические данные для http имен и переменных - PullRequest
0 голосов
/ 01 февраля 2019

Я прочитал и попробовал несколько решений, опубликованных здесь, показывающих, как использовать динамические данные в симуляции.Ни один из них не работает для меня

Очевидный способ, который имел бы смысл, не работает.

 val number = new AtomicInteger()
    val someScenario = scenario("Create a widget").repeat(5)(
      exec(http(s"test ${number.incrementAndGet()}")
        .post("/widgetcorp/widgetMaker.do")
        .headers(headers_0)
        .formParam("widgetName", s"test ${number.incrementAndGet()}")
        .formParam("cost", "3.50"))
    )

Несколько постов исключают необходимость сеанса в большинстве случаев с чем-то вроде

      exec{session =>
        session.set("temp", s"aaatest ${number.getAndIncrement()}")
      }.
     // elsewhere in code
     .formParam("widgetName", session("temp"))

, который даже не скомпилируется, так как сеанс не разрешается.Другие предоставили другие разновидности кода, который даже не будет компилироваться с использованием StringBody

val someScenario = scenario("A scenario name")
    .exec {
        session => session.set("someVariable", Random.alphanumeric.take(20).mkString
    }
    .exec(http("Create a resource")
        .post("/v1/resource/")
        .body(StringBody("{
            "name": ${someVariable}
        }")).asJSON)

. Я попытался просмотреть документацию по адресу https://gatling.io/docs/2.3/session/session_api/, но это не помогло.

Iчувствую, что я пытаюсь сделать, не слишком далеко от проторенного пути.Как я могу настроить симуляцию, которая повторяется так, что я могу применить уникальное значение для значений формы.В этом конкретном случае использование устройства подачи не является оптимальным.

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