- PVSM.RU - https://www.pvsm.ru -
Больше четырёх лет назад мы озаботились созданием удобной системы для автоматического выполнения Selenium-тестов наших продуктов на разных браузерах. Тогда ещё никто не слышал о Sauce Labs [1], и все придумывали что-то своё. Мы тоже придумали — сделали свою систему, которая умеет самостоятельно запускать тесты Selenium на выбранных браузерах и ОС по расписанию. Ну, и хранит результаты выполнения, конечно.
В какой-то момент мы решили, что система может пригодиться не только нам, и решили сделать сервис, доступный всем.
Не так давно этот сервис — Nerrvana [2] — открылся для всех желающих.
Для каждого выполнения тестов создаётся нужное количество Selenium RC/node в облаке, которые объединены в Selenium Grid'ы. В некотором роде сервис похож на Sauce Labs, но имеет ключевое отличие: он не просто предоставляет Selenium-ноды, а и сам выполняет пользовательские тесты на них. При этом, чтобы запустить тесты на разных браузерах, в коде тестов ничего менять не надо — надо лишь проставить галочки в веб-интерфейсе.
Работа с сервисом выглядит так: у вас есть тесты Selenium, которые вы по FTP загружаете в Nerrvana. Через web-интерфейс (или через API) вы выбираете (ставите галочки), на каких браузерах тесты должны выполняться, и выбираете, будет ли это разовый запуск или тесты надо будет запускать по расписанию.
Если ваши тесты умеют работать в несколько потоков — вы можете указать, сколько Selenium nodes вы хотите использовать для каждого из браузеров.
На этом ваша работа заканчивается, дальше всё делает Nerrvana.
Она будет запускать ваши тесты на выбранных браузерах по заданному расписанию, сохраняя результаты каждого выполнения, чтобы вы их могли позже просмотреть. Тесты будут работать одновременно для выбранных браузеров (но, конечно, независимо друг от друга).
При желании вы легко можете позволить своим тестам сообщать Nerrvana [3] об ошибках — тогда Nerrvana сможет уведомлять вас, например, по почте.
Также можно воспользоваться плагином для Jenkins [4], который сможет обновлять тесты и выполнять их в Nerrvana для каждого нового билда. Ещё можно добавить в Selenium IDE Nerrvana formatter [5], который будет создавать тесты, оптимизированные для работы с Nerrvana (подробнее [6]).
Как всё это происходит, вы можете посмотреть сами, если у вас есть минут пять свободного времени.
(по клику — картинки в полном разрешении)
О самих отчётах можно подробнее почитать тут [14] (пример [15], пример [16]), и, если хотите, вы можете использовать его для своих тестов.
В конце концов, вы можете посмотреть на код самого теста.
Вот какие скриншоты сделали тесты для разных браузеров: FF [17], Chrome [18], Safari [19], IE10 [20].
Если захотите ещё поиграть — можете по FTP [21] изменить код теста или положить другой тест. В тестах вы можете использовать как Selenium1, так и WD — в папке simple_test_java вы найдёте примеры.
На самом деле, мы не совсем представляем, куда нам двигаться дальше, и как использовать наши отличия от Sauce Labs. Для наших целей Nerrvana хватает за глаза, но, возможно, вы сумеете сказать, чем бы сервис мог быть полезен вам, стоит ли его развивать и как? Несколько наших мыслей по этому поводу:
В общем, сделать можно много, но пока не совсем понятно, что действительно будет интересно и востребовано.
Заранее прошу извинить, если таки случится хабраэффект и он вызовет какие-то проблемы у сервиса. Кроме нас [27], сейчас реальных пользователей почти нет, и потому мы используем всего один физический сервер. Если потребуется, в будущем мы добавим серверов.
Мы будем рады, если Nerrvana окажется полезной для кого-то из вас.
А я буду рад выслушать замечания и ответить на вопросы. Возможно, какие-то ответы уже есть здесь [28].
______
* Selenium1 в тесте использовал, чтобы заодно показать наш фреймворк для отчётов, мы его пока не успели переписать под WD. Обнаружил, что мой тест на Selenium1 почему-то плохо работает в Опере. На WD в Опере то же самое работает ок — если будете пробовать, имейте в виду. Да и вообще, по моим наблюдениям, WD уже работает стабильнее первого Selenium. Пример теста на WD лежит в simple_test_java.
Автор: BearOff
Источник [29]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/selenium/28847
Ссылки в тексте:
[1] Sauce Labs: https://saucelabs.com/
[2] Nerrvana: http://nerrvana.com/
[3] сообщать Nerrvana: http://www.nerrvana.com/docs/using-messages
[4] плагином для Jenkins: http://nerrvana.com/docs/jenkins-plugin
[5] Nerrvana formatter: https://github.com/deepshiftlabs/selenium-ide-formatter-for-nerrvana
[6] подробнее: http://www.deepshiftlabs.com/sel_blog/?p=2626&lang=ru
[7] Попадаете: https://cloud.nerrvana.com/user/register
[8] Image: http://g1.std3.ru/G/1/D7/15/16322-295e64da0a512932945524aa98f811b3.png
[9] Image: http://g1.std3.ru/G/1/52/8A/16322-4d39ee22935292d2fe6e573c45437c86.png
[10] Image: http://g3.std3.ru/G/1/12/67/16322-6c181ffe9d3433db25c9dfb823603277.png
[11] Image: http://g2.std3.ru/G/1/FE/DB/16322-df3c6f29e0fff999a96641c7169c1ae1.png
[12] Image: http://g3.std3.ru/G/1/43/17/16322-3aa7ba3bf4f70c487fae1e650e908cfc.png
[13] Image: http://g4.std3.ru/G/1/70/21/16322-9b546ce07a0050be292293415aff0b6f.png
[14] тут: http://www.deepshiftlabs.com/sel_blog/?p=1930&lang=ru#more-1930
[15] пример: http://deepshiftlabs.com/reports/logs_with_errors/index.html
[16] пример: http://deepshiftlabs.com/reports/logs_wo_errors/index.html
[17] FF: http://g2.std3.ru/G/1/00/40/16322-7fee10dbc62eb8b3bb553b341cbf23ba.png
[18] Chrome: http://g3.std3.ru/G/1/D2/D2/16322-952420ea8c856187f7d7a8d01c9b530f.png
[19] Safari: http://g4.std3.ru/G/1/27/56/16322-dc48637e1939f2c314fa4370e265d9c2.png
[20] IE10: http://g3.std3.ru/G/1/79/41/16322-61afb03477c708359031f57458b7392d.png
[21] по FTP: http://www.nerrvana.com/docs/get-started
[22] Сucumber: https://github.com/cucumber/cucumber/wiki/setting-up-selenium
[23] Robot Framework: http://code.google.com/p/robotframework/
[24] Thucydides: http://thucydides-webtests.com/about/
[25] Chef: http://habrahabr.ru/company/scalaxy/blog/87302/
[26] TravisCI: http://habrahabr.ru/post/140344/
[27] нас: http://www.deepshiftlabs.com/
[28] здесь: http://www.nerrvana.com/support
[29] Источник: http://habrahabr.ru/post/171733/
Нажмите здесь для печати.