Тест сценарий висит и ждёт пока очень долго подгружаютя некоторые скрипты

За годы работы с WebDriver заметил такую штуку, что иногда когда запусешь тесты они “подвисают” на старте, т.е. вызываешь стартовую страницу и она начинает грузиться в браузере. Ты видишь как она появилась, но тест дальше не идёт, висит и ждёт пока подгрузится какой-то скрипт или плагин. Обычно это какой-то фэйсбук или реклама или ещё чтото, что на тесты никак не влияет. Если в этот момент кликнуть в браузере на крест, то тест сразу поидёт дальше.

Вопрос: можно ли в таких случиях как-то форсировать тест дальше?

Блокируйте “паразитный” трафик через прокси или %windir%\system32\drivers\etc\hosts

1 лайк

Все пользователи ведь тоже будут его блокировать, да? :slight_smile:
И мы будем тестировать совершенно другой сайт, поведение которого будет отличаться от реального.

Не сходится - не так ли?

Я не понимаю, как оно не влияет на тесты, если тесты падают?

А с чего вы решили, что они “падают”?

тест не падает, он просто стоит минуту или более пока какойто плагин не завершит полную загрузку страницы

Та-же самая беда, иногда летит, а иногда тупит, связано с JS которые подтягивает инфу из соцсетей ВК, Мордокнига и т.д… Пока не решил, но задумка есть, все руки не дойдут реализовать.

Ну так у пользователей то он тоже не завершает в таком случае?) Т.е. пользователи аналогично испытывают проблему?

Пользователю несколько безразлично, если пару баннеров решили “подумать”, в отличие от ВебДрайвера.

Вот пользователи то как раз с этим проблем и не испытывают, даже не особо обращают внимания что страница не догрузилась (90% пользователей, хе сами же такие)

На всякий случай спрошу: а при тестировании руками такое тоже наблюдается? Что в этот момент показывает Network tab?

Я спрашиваю к тому, что порой дело не в самом сайте, а в железе и специфичных опциях браузера.
К примеру, недавно открыл для себя пагубное влияние следующего Chrome флага на процесс прогрузки первой страницы - Use hardware accelaration when available. Причем, он включен по дефолту. А у меня есть 2 VMки с расшаренными ресурсами. В итоге, 1 из них выдавала эффект зависания, подобный описанному выше. Решалось запуском тестов с опцией отключающей упомянутый флаг.

Зависания наблюдаются на тест машине, стоит:
Linux MINT 17.2
Selenium
Chrome, FF
Зависания наблюдаются в обоих браузерах, а вот на рабочей машине в мастдае таких подвисов не наблюдал, может связано с тем что мастдай для тестов не используется или не обращал внимания. А хард акселирацию сейчас отключу и проверю.

Как и было замечено - это поведение, которое видит конечный пользователь. Не нужно костылей, просто нужно ждать и все. Иначе это уже неполноценная проверка. А если ваш сервис крашится после загрузки рекламы? Вдруг?

На мануале иногда тоже долго загружается, я думаю что тут дедло в самом сервисе который в некоторые моменты тупит и не даёт странице полностью загрузиться. Реальный пользователь этого просто не замечает потамучто визуально всё работает и показывается как надо. Но для Драйвера этого не достаточно

Мало вероятно.

.

Конечный пользователь так-же, с легкостью, может “забанить” паразитный трафик.

Ждать пока прогрузится какой-нибудь информер погоды/курсов/etc и терять на этом минуты? Полноценная проверка чего - сторонних ресурсов?

Самый простой вариант - отсутствие интернета на тестовом стенде - но это не всегда возможно.

Если есть такие подозрения - никто не мешает сделать отдельные тесты на интеграцию со внешними ресурсами.

1 лайк

Вот здесь я рассказал, как бороться с длительной загрузкой страниц:

2 лайка

воо то что нужно. Огромное спасибо!

У меня настроено eager уже больше месяца, но к сожалению монописуально :frowning:

driver.manage().timeouts().pageLoadTimeout()
А вот это уже спорно - так как распространяется на весь контент.

pageLoadStrategy
Ранее было уделом “избранных” браузеров. Вижу что Джим прикрутил это к ИЕ только в августе апреле сего года. И насколько эта фича стабильна - наверняка мало кому известно (например iedriverserver до сих пор шарашит css локаторы через Sizzle). А как дела у остальных?