2015-10-26 3 views
0

Существует проблема, с которой я сталкиваюсь с автоматизацией. Не то чтобы я не согласен с тем, что это абсолютно лучший способ протестировать приложение, но в том смысле, что достижение стабильности чрезвычайно сложно. Как вы, ребята, делаете ваши тесты стабильными? Конечно, я добавляю явные ожидания и случайные thread.sleep(), но они никогда не стабильны на 100%. Цель этой темы - опубликовать несколько советов и трюков, которые вы, ребята, обнаружили, оказали влияние на ваши автоматизированные тестыВыполнение тестов на селен Устойчивый

+0

Если «подождать», это ваша единственная проблема, пожалуйста, посетите http://stackoverflow.com/questions/12858972/how-can-i-ask-the-selenium-webdriver-to-wait-for-few-seconds- in-java – Amol

+0

wait не является моей единственной заботой. Существуют другие способы сделать тесты более стабильными, и именно это я пытаюсь выяснить. – Tree55Topz

+2

Что вы подразумеваете под стабильным? Что нарушает ваши тесты? – xyz

ответ

4

Вы должны стараться избегать использования thread.sleep(), поэтому, когда вы добираетесь до точки, имеющей большой набор тестов, вы будете тратить свое время на ожидание. Вместо этого узнайте, как использовать Explicit and Implicit Waits.

Эксперты сообщества рекомендуют чаще использовать явные ожидания, это позволит вам ждать конкретных действий, и, как только это произойдет, WebDriver продолжит работу, не теряя при этом больше времени.

Несмотря на то, есть еще некоторые предварительные советы и рекомендации, написанные Марком Коллина в Mastering Selenium WebDriver книге

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

+1

Вышеприведенная информация верна. Часто используйте явные ожидания. Try/catch чрезвычайно полезен при правильном использовании, но большая часть вашей проверки ожидаемого/фактического результата может и (по моему мнению) должна выполняться с помощью инструкций if/else и использования объявлений методом 'fail()'. – jagdpanzer

0

Я бы рекомендовал посмотреть на Selenide, потому что, если вы не хотите прикладывать усилия к тому, чтобы выяснить, как сделать свою собственную структуру стабильной, вы можете просто использовать структуру Selenide, чтобы начать работу, а затем вам не понадобится беспокоиться о ожиданиях больше.

Конечно, есть некоторая ценность при создании собственной структуры, особенно если вы выполняете разработку, основанную на тестах, и хотите, чтобы подразделение тестировало вашу инфраструктуру для покрытия кода сонара. Но, если ваш не на этом уровне, использование Selenide - это то, что я рекомендовал бы для самого большого влияния на ваш успех.

Смежные вопросы