Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Медленность тестов на Selenium через RemoteDriver


(Дмитрий Жарий) #1

Для запуска у себя локально, на использую свою физическую машину и виртуальную c Internet Eplorer’ами разных версий с http://www.modern.ie

Физическую машину использую, как сервер приложения + запускаю на ней тесты. Тесты работают с браузером на виртуалке через RemoteDriver.

Средство виртуализации – VirtualBox

Плюс такого подхода: веб браузер не мешает работе на моей машине и тесты спокойно работают себе на фоне.

Минус: Очень медленная скорость работы, по сравнению с локальным запуском. Субъективно, раз в 5 некоторые тесты идут медленнее.

Если кто оптимизировал работу RemoteDriver в такой конфигурации, можете ли поделиться советом, как ускорить выполнения операций с браузером?


(Kolesnik Nickolay) #2

А виртуалка запущена на вашей же физической машине? Возможно сама виртуалка работает медленно. Чтобы это проверить, можно сделать локальный запуск на виртуальной машине. Если скорость будет такой же, то проблема там. Если нет, то, возможно проблемы со скоростью сетевой передачи данных.
А вообще, если приложение работает медленно, то наиболее универсальным способом является уменьшение количества обращений к браузеру до минимально возможного. Но это универсальный, но не факт, что самый эффективный


(Дмитрий Жарий) #3

Внутри гостевой машины, тесты работают значительно быстрее.
Да, верно подмечено на счет обращений к браузеру. Я тут подумал, и действительно много, но без них никак: они обеспечивают автоматические ожидания и отлов JavaScript ошибок. Можно оптимизировать, но на это потребуется время.

Попробую поиграться с настройками сети. Сейчас я использую Bridged-коннекшен. Попробую с HostOnly, он может оказаться быстрее.

Спасибо за идею.


(vmaximv) #4

Можно еще попробовать использовать ip вместо имен хостов - может медленно резолвит.


(Pnevmoslon) #5

А почему медленней работает? Именно страницы медленно открываются или взаимодействие с элементами медленное? Если второе, то можно попробовать везде использовать 32 битную java и 32 битный IEDriverServer(ну или 64битные вместо них). Когда-то решил подобную проблему именно таким способом. Сейчас, к слову, имеем точно такую же, но кастомеры не дают прав доступа на удалённый сервер и не могу сам ничего попробовать :slight_smile:


(Дмитрий Жарий) #6

При помощи LanBench, удалось
измерить скорость работы сети в разных сетевых конфигурациях Virtual Box.
Интересно, что с Guest на Host, скорость передачи всегда выше, чем наоборот.

Если измерять в попугаях, то при Bridget Connection – скорость приема и отдачи с Guest 2 Host: примерно 500/400. Наоборот – Host 2 Guest 23/500.

Попробовал настроить HostOnly соединение. Но, проблема в том, что Guest может достучатся до Host, а наоборот – нет. Скорость в таком случае довольно высокая: 500/500, но требует навыков настройки сети, которых мне так не хватает. Просто это – не сделать.


(Дмитрий Жарий) #7

Первое правило бойцовского клуба – отключи Firewall
В общем, после отключения Фаервола, удалось подключиться к гостевой машине.

Скорость сети достаточно приличная, прием/отдача 490/400.
К Selenium серверу обращаюсь по IP.

Субъективно, скорость прохождения тестов возросла в раза 3. Не замерял отдельно, что делает такой подход с запуском на виртуалке вполне приемлемым.