Как я могу заставить всех пользователей пройтись по моему сценарию? - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу в основном добавить некоторую нагрузку в некоторый пользовательский поток API-интерфейса.Что-то вроде ускорения до 20 пользователей, которые все время делают одно и то же в течение определенного периода времени, а затем замедления

  private val httpProtocol = http
    .baseUrl(baseUrl)
    .doNotTrackHeader("1")
    .header("Content-Type", "application/json")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Gatling load test")
    .disableFollowRedirect

  private val scn = scenario("User login")
    .exec(http("login successful")
    .post("/customer-service/api/login")
    .body(StringBody("""{ "username": "test@mail.com", "password": "12345" }"""))
    .check(status.is(200)))

  setUp(scn.inject(rampUsers(20) during (20 minutes))).maxDuration(10 minutes)

В данный момент я вижу, как пользователи набирают скорость, но умирают после запроса "сделать один",На графике активного пользователя я могу видеть пиковую гору, а не ожидаемое замедление нарастания, затем устойчивую линию, а затем наклонную линию до 0

ОБНОВЛЕНИЕ: Я обнаружил, чего не хватало:

  private val httpProtocol = http
    .baseUrl(baseUrl)
    .doNotTrackHeader("1")
    .header("Content-Type", "application/json")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Gatling load test")
    .disableFollowRedirect

  private val scn = scenario("User login")
    .during(3 minutes) {
        exec(http("login successful")
        .post("/customer-service/api/login")
        .body(StringBody("""{ "username": "test@mail.com", "password": "12345" }"""))
        .check(status.is(200)))
  }

  setUp(
    scn.inject(rampUsers(20) during (1 minutes)),
  ).protocols(httpProtocol)

Оборачивая его во время, вы повторяете поток снова и снова в течение некоторого времени.Таким образом, в моем коде требуется 1 минута, чтобы набрать пользователей, затем 3 минуты постоянной нагрузки и еще 1 минута, чтобы замедлить

1 Ответ

0 голосов
/ 12 апреля 2019

Хотя то, что у вас есть, работает, это не совсем модель гатлинга, предназначенная для использования.

Было бы более идиоматично иметь сценарий, который просто выполняет один вход, но использует профиль внедрения, такой какconstantConcurrentUsers для достижения желаемого уровня параллелизма

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