Я прочитал и попробовал несколько решений, опубликованных здесь, показывающих, как использовать динамические данные в симуляции.Ни один из них не работает для меня
Очевидный способ, который имел бы смысл, не работает.
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чувствую, что я пытаюсь сделать, не слишком далеко от проторенного пути.Как я могу настроить симуляцию, которая повторяется так, что я могу применить уникальное значение для значений формы.В этом конкретном случае использование устройства подачи не является оптимальным.