Каковы ограничения ресурсов gatling inferHtmlResources?

Проблема

Сценарий Gatling в настоящее время останавливается на 14 запросах и не продолжает повторяться в сценарии. Не могу понять почему ...

Предыстория // Установка

У меня был набор страниц, который успешно тестировался в Gatling, пока мне не понадобилось переместить статические ресурсы в новый поддомен.

На первом этапе и для оценки пропускной способности новых серверов первый шаг при выполнении этого перехода был сделан с помощью перенаправления (301) на новый домен - назовем его assets.testdomain.com (и да, мы знаем, что это не так. Это был идеальный подход - это было сделано для того, чтобы работа могла продолжаться без изменения внутреннего кода).

После применения вышеупомянутых изменений большинство наших страниц перестали повторять нагрузочный тест и останавливались на 14 запросах (HTML-запрос + 13 css, js и изображения).

Мы заметили, что Gatling следует за перенаправлениями, как и ожидалось, и что если на странице есть небольшое количество ресурсов, никаких проблем не наблюдалось (сценарий выполняется, как задумано).

Скрипт Гатлинга

Вот общий план моего сценария:

  val httpProtocol = http
    .baseURL("https://www.testdomain.com")
    .inferHtmlResources(BlackList(), WhiteList("https://.*.testdomain.com.*."))
    .acceptHeader("image/webp,image/apng,image/*,*/*;q=0.8")
    .acceptEncodingHeader("gzip, deflate")
    .acceptLanguageHeader("en-US,en;q=0.9")
    .userAgentHeader("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")

  val SamplePage_0 = Map(
    "Accept" -> "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Upgrade-Insecure-Requests" -> "1")

  val test_duration = 4 minute
  val pacing = 0 second
  val think_time = 10 second

  val SamplePage = scenario("SamplePage")

    .during(test_duration) {
      pause(pacing)
        .repeat(28) {
          pause(think_time)
            .exec(flushHttpCache)
            .group("SamplePage") {
              exec(http("request_0")
                .get("/samplepage")
                .headers(SamplePage_0))
            }
        }
    }

  setUp(
    SamplePage.inject(rampUsers(1) over (1 minute)),
  ).protocols(httpProtocol)

person bayetovsky    schedule 29.10.2018    source источник


Ответы (1)


Известная проблема, исправленная в Gatling 3: https://github.com/gatling/gatling/issues/3449

person Stéphane LANDELLE    schedule 29.10.2018
comment
Я много искал, но не столкнулся с этой проблемой. Думаю, это было моим плохим. Спасибо, что поделился (принято как ответ) - person bayetovsky; 29.10.2018