2010-10-15 3 views
3

Я использую расширение Selenium PHPUnit для веб-тестирования. Я нахожу это очень медленным, принимая секунды за один метод тестирования. Отчасти проблема заключается в том, что она запускает новый сеанс Selenium между каждым тестовым методом (getNewBrowserSession) в составе runTest(). Это дорого. Я в порядке с запуском класса или даже целого набора методов тестирования в одном сеансе селена.Как заставить PHPUnit + Selenium работать быстрее?

Можно ли это сделать? Существуют ли другие советы по ускорению работы PHPUnit + Selenium?

Спасибо.

ответ

9

Вы пробовали использовать опцию browserSessionReuse? Например. начальный селен с

java -jar ./selenium-server.java -browserSessionReuse 
+0

Спасибо, что ускорили испытания очень! – Schwern

+0

@borrible - Этот переключатель, похоже, не работает для меня ... может быть, проблема Selenium 2? – Ben

1

Вам необходимо разделить экземпляр Selenium между вашими испытаниями. Я не знаком с PHPUnit, но в JUnit вы используете статический член (создайте базовый тестовый класс, содержащий экземпляр Selenium, и все тесты должны его расширить). В TestNG вы можете использовать тестовый контекст.

Также попытайтесь свести к минимуму использование XPath, если вы протестируете на IE - отсутствие родного XPath заставляет тесты работать медленнее.

Также Selenium 1 использует JavaScript для управления браузером, поэтому он несколько замедляется в IE. Selenium 2 (aka WebDriver) использует собственные методы для управления браузером, поэтому, по крайней мере, тесты IE быстрее.

+0

Спасибо, мы уже столкнулись с проблемой производительности XPath в IE и используем локаторы и JQuery. И мы используем Selenium 2. – Schwern

+0

Итак, вам нужно создать WebDriver в начале набора и вызвать WebDriver.quit() только на конце пакета –

0

Я предлагаю вам построить систему непрерывной интеграции для запуска теста в ночное время. Затем утром вы получите информацию о том, какие тесты подходят, а что нет. Проверьте Хадсон.

+0

Мы уже используем Hudson. Ночной тест слишком длинный, чтобы ждать, когда тесты будут полезны для непосредственной поддержки и ускорения разработки. Мы используем систему непрерывной интеграции для запуска тестов против полной батареи типов браузеров и версий и операционных систем. – Schwern