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

Selenium IDE vs Selenium WebDriver != TIMEOUT


(Viktor Sorokolet) #1

Доброго времени суток!

Столкнулся с такой проблемой.

Тест-сюиты созданы в Selenium IDE, работают нормально, но вот при запуске с помощью Selenium Web Driver (из командной строки) все тесты проваливаются из-за превышения тайм-аута (типа свыше 30 сек).
Запуск провожу из командной строки такой командой:

java -jar selenium-server-standalone-2.42.2.jar -port 4444 -htmlsuite *firefox <base URL> tss_st1.html log_tss.html

так-же запускаю из Дженкинса (Дженкинс запускаю тож из консоли)
В самих кейсах я устанавливаю setTimeout > 60 но тесты проваливаются (см. скрин).

Такое ощущение, что он не реагирует.

Подскажите пожалуйста, как можно победить данную проблему.


(AzotKzn) #2

Возможно в IDE первое действие /open, из-за этого иногда бывает


(Александр Таранков) #3

Что значит тесты проваливаются? Как из этого глубокомысленного умозаключения мы здесь должны понять в чём ошибка?

Лог приложи в общем, с текстом ошибки


(Viktor Sorokolet) #4

Проблема заключается в следующем, для запуска тест-сюитов (созданных в Selenium IDE) я применяю selenium-server-standalone-2.42.2 (запускаю из командной строки). В нем, по-умолчанию установлено значение тайм-аута (для ожидания загрузки страницы например) 30000 мс (30 сек). В некоторых случаях этого значения мало (есть “тяжелые” странички) и для уверенного прохождения тестов надо 45000мс. В самом Selenium IDE с этим проблем нет, установив setTimeout = 80000 все тесты проходят нормально, но, к примеру, после запуска в командной строке тех-же тестов, с использованием selenium-server-standalone-2.42.2 они “проваливаются” буквально на первой строке (на скрине видно) с указанием Timed out after 30000ms. Все предварительные установки игнорятся (на скрине “1”).



(Natasha Muzyka) #5

Команда setTimeout предназначена для того, что бы установить максимальное время ожидания для команд WaitFor… . Для команды Open уже установлено свое время ожидания.
И вряд ли Вы сможете изменить данный параметр с помощью Selenium IDE.
В самой библиотеке Selenium WebDriver существуют различные настройки (httpTimeout, seleniumTimeout, setTimeout и т.д.). Можна “поиграться” с ними и добиться ожидаемого результата.

Но, что бы сильно не напрягаться и обеспечить работоспособность тестов при любом времени загрузки страницы - используйте чаще команды WaitFor
Например, судя по Вашему первому скрину: после команды - open ($varUrl) , я бы использовала WaitForElementPresent (id=tormostMenu) и потом Verify (‘id=tormostMenu’ , ‘Ru En Cn …’)

Ответ не судите строго, с Селениумом я недавно))). Но вчера просто столкнулась с такой же проблемой.


(Viktor Sorokolet) #6

Когда использовать тест-сюиты, в HTML-коде (полученные из IDE и без всяких трансформаций, а просто для запуска в других браузерах) эта проблема не решается. Крашится по ТаймАуту свыше 30 сек. и все…
Крашит именно строчка open. Следующая за ней Wait… (там кстати стоит ожидание 80 сек) как говорится уже до “фени”… на скрине это видно.
Все тесты запускались в Дженкинс, из командной строки, без всяких сборок и т.п. так-как задание было, максимально просто запускать тесты, в штате не было программистов для обслуги. И соответственно, Дженкинс выдает краш, хотя все остальные шаги “зеленые”.
Месяц убил на всяческие поиски и вышел таким путем, все тест-сюиты перевел в TestNG(Java), там установил тайм-аут 80с и собрал все это Мавеном. Теперь проблем нет.

…сорри, за задержку с ответом