Заставить Гатлинга генерировать случайные данные по запросу с помощью фидера - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь получить случайные данные для каждого запроса POST.Я следил за несколькими постами на stackoverflow и других местах.Я придумал этот сценарий -

def randomUuid = UUID.randomUUID().toString
val feeder = Iterator.continually(Map("user" -> randomUuid))

def createPostRequest = {
  http("createuser")
    .post("http://jsonplaceholder.typicode.com/posts")
    .body(StringBody("${user}"))
    .check(status.is(201))
}

val scn = scenario("some load test")
  .feed(feeder)
  .forever(exec(createPostRequest))

setUp(scn.inject(atOnceUsers(1)))
  .maxDuration(20 minutes)

Однако, когда я запускаю этот код, он просто вызывает мой фидер один раз, чтобы создать единый UUID, и просто повторно использует тот же UUID во время нагрузочного теста.

Я создал код выше после следующего этой темы .Я использую Гатлинг 2.2.5.Вот мой конфиг sbt -

import sbt._

object Dependencies {
  private val gatlingHighcharts = "io.gatling.highcharts" % "gatling- 
  charts-highcharts" % "2.2.5"                    % "test"
  private val gatlingTest =       "io.gatling"            % "gatling-test-framework"    % gatlingHighcharts.revision % "test"

  val gatlingDependencies = Seq(gatlingHighcharts, gatlingTest)
}

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Поскольку вы не вызываете feed внутри цикла, как правило, ваш forever, вы действительно сгенерируете только одно значение для каждого виртуального пользователя.Если вы хотите иметь уникальные значения для каждой итерации цикла, переместите вызов feed внутри цикла.

0 голосов
/ 19 декабря 2018

в вашем setUp вы создаете только одного пользователя - так что ваш сценарий выполняется только один раз, что означает, что «подача» происходит только один раз, прежде чем вы начнете зацикливать свой запрос.

измените сценарий набыть

val scn = scenario("some load test")
.feed(feeder)
.exec(createPostRequest)

и выполнить настройку (заменив 100 на любое количество пользователей)

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