Переход с RC на WebDriver

всем привет, 

имеется проект из 600 тестов на TestNG+Maven+Jenkins, есть желание перейти на WebDriver, и нужно обосновать это перед заказчиком 

пока из аргументов в пользу перехода вижу следующее:

- для заказчика: увеличение скорости тестов, обещание разработчиков перестать поддерживать RC с выходом 3й версии

- для команды автотестеров: увеличение стабильности и упрощение работы с приложением

 

в связи с этим - возможно есть здесь люди которые смогут ответить на вопросы:

 

- когда перестанет поддерживаться SeleniumRC? (читал что после 3 версии, но ориентировочную дату не нашёл)

- насколько реально увеличивается скорость тестов?

- возможно ктото может дать совет как посчитать примерный эстимейт или просто озвучит собственный опыт по переходу? используем page object

- дополнительные аргументы в пользу перехода?

- ...

 

буду благодарен за толковую инфу по теме :)

когда точно закончиться поддержка? даты точной нет, но к этому надо быть готовым

скорость? все имхо относительно. Я не думаю, что кто-то в процентном соотношении скажет, насколько выростет производительность.Можно только сказать, что это быстрее. Вы можете просто взять свой примерочный тест и замерять его на Selenium RC и на WedDriver, и показать эти цифры.

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

Также, сюда еще можно включить в аргументы скорость и степень поддержки кода.

Самым весомым аргументом думаю у вас будет прекращение официальной поддержки, что потенциально сразу увеличат расходы.

 

- когда перестанет поддерживаться SeleniumRC? (читал что после 3 версии, но ориентировочную дату не нашёл)

Де-факто RC уже год не поддерживается -- баги не исправляются, фичи не добавляются. Если Вас это не беспкоит -- на таком уровне "поддержка" будет вечно :)

В третьей версии RC будет исключена из дистрибутива. Но это совершенно неважно, ведь всегда можно скачать старую версию.

- насколько реально увеличивается скорость тестов?

Неизвестно. Иногда даже уменьшается. Надо измерять.

Если грубо -- скорость операции sendKeys в WebDriver на порядок ниже, чем скорость операции type в RC. Другие операции в среднем быстрее, но не так уж сильно.

Существенный выигрыш в скорости можно получить, если использовать непосредственно интерфейс WebDriver. Например, вы получили ссылку на элемент (объект типа WebElement), а потом десять раз вызываете в нём метод getAttribute. Если то же самое делать в RC -- поиск элемента будет выполняться десять раз, и это реальный проигрыш в скорости. То есть дело не в скорости операций (они могут быть даже медленнее), а в общем архитектурном устройстве, и как следствие -- в дизайне кода тестов. И пока вы тесты не перепишете -- выигрыша в скорости не будет.

- дополнительные аргументы в пользу перехода?

Если тесты стабильны и вы не тратите много времени на поддержку и особенно на борьбу с косяками RC -- не переходите вообще. Поддерживайте как есть. А вот новые тесты уже разрабатывайте с использованием WebDriver API. Либо если в старых тестах существенные переделки -- тоже переписывайте. Фактически реализуйте заново.