Jmeter webdriver sampler: запросы Webdriver sampler и http sampler не попадают в одно и то же время

#selenium #jmeter

#selenium #jmeter

Вопрос:

У меня есть проект jmeter, в котором я пытаюсь протестировать пользовательский интерфейс, и я использую webdriver sampler для того же (мой первый проект с webdriver sampler)

Для создания надлежащей нагрузки на сервер я использую группу потоков http sampler, где я обычно предоставляю большое количество пользователей (для генерации нагрузки) и использую 1 поток для webdriver sampler для измерения показателей рендеринга пользователей. Выполнение выполняется таким образом, что потоки выполняются каждые 10 секунд. Я попытался использовать «Таймер синхронизации» в jmeter, чтобы гарантировать, что группы потоков выполняются одновременно.

Я сталкиваюсь с проблемой, поскольку потоки http sampler и webdriver sampler не запускаются одновременно. Разница составляет 1-5 секунд. Я также вижу в журналах моего сервера, что попадание из пользовательского интерфейса произошло в другое время.

Вот время начала потока из jmeter (столбец «Время начала» в прослушивателе «Просмотр результатов в таблице»)

 http Sampler thread: 00:02:47.846
Webdriver sampler thread: 00:02:51.902
 

Вот журналы из журналов сервера:

 Windows Server 2016 2020-12-26T00:02:51,245 ################## this may be call from http sampler
Windows Server 2016 2020-12-26T00:02:52,399 ################## this may be call from webdriver sampler
 

Как мы можем видеть, хотя потоки были инициированы в разное время в jmeter, но из-за таймера синхронизации вызовы должны были выполняться примерно в одно и то же время. Но по-прежнему существует несоответствие ~ 1 сек (как видно из журналов сервера).

Из-за этого несоответствия время рендеринга вычисляется неточно, поскольку сервер не находится под нагрузкой, когда поступает вызов webdriver sampler. Я пытался использовать время синхронизации, задержки запуска потока, но они не решают проблему. Я не уверен, связано ли это с какими-либо дополнительными накладными расходами, которые может иметь webdriver sampler.

Является ли это распространенным вариантом использования при использовании webdriver sampler и есть ли способ исправить это, чтобы оба потока одновременно попадали на сервер?

Дополнительная информация о настройке: jmeter и AUT находятся на одном сервере.

Ответ №1:

Таймер синхронизации управляет временем запуска сэмплера (ов) в его области действия, вы не можете контролировать, когда запрос «попадет» на сервер из-за:

  1. Время подключения
  2. Накладные расходы Selenium (он также отправляет команды в браузер по сети), более того, браузеру требуется некоторое время, чтобы «отреагировать» на команду, поэтому WebDriver Sampler всегда будет медленнее, а фактор не является детерминированным

У меня также есть некоторые сомнения относительно вашего дизайна тестирования, запросы не должны выполняться в один и тот же момент, вам необходимо убедиться, что сэмплеры HTTP-запросов JMeter настроены так, чтобы вести себя точно так же, как настоящие браузеры, и что загрузка непрерывна, т. Е. Вы имитируете одновременный доступ X пользователей к вашему приложению длят.е. 30 минут, и во время этого теста в другой группе потоков у вас может быть один WebDriver Sampler, который будет проверять время рендеринга, когда система находится под нагрузкой

Комментарии:

1. Спасибо. Да, вы правы. Я буду переходить к статической загрузке в течение определенного периода времени, чтобы обеспечить согласованность загрузки.