#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:
Таймер синхронизации управляет временем запуска сэмплера (ов) в его области действия, вы не можете контролировать, когда запрос «попадет» на сервер из-за:
- Время подключения
- Накладные расходы Selenium (он также отправляет команды в браузер по сети), более того, браузеру требуется некоторое время, чтобы «отреагировать» на команду, поэтому WebDriver Sampler всегда будет медленнее, а фактор не является детерминированным
У меня также есть некоторые сомнения относительно вашего дизайна тестирования, запросы не должны выполняться в один и тот же момент, вам необходимо убедиться, что сэмплеры HTTP-запросов JMeter настроены так, чтобы вести себя точно так же, как настоящие браузеры, и что загрузка непрерывна, т. Е. Вы имитируете одновременный доступ X пользователей к вашему приложению длят.е. 30 минут, и во время этого теста в другой группе потоков у вас может быть один WebDriver Sampler, который будет проверять время рендеринга, когда система находится под нагрузкой
Комментарии:
1. Спасибо. Да, вы правы. Я буду переходить к статической загрузке в течение определенного периода времени, чтобы обеспечить согласованность загрузки.