Selenium. Автоматизация тестирования веб-приложений - это просто.
Selenium – вещь абсолютно полезная, и даже необходима всем тем, кто занимается веб-разработкой. Что же это такое? Selenium - это инструмент, с помощью которого можно автоматизировать тестирование веб-приложений. Зачем нужно тестирование объяснять не надо, а вот зачем может понадобится автоматизация этого процесса?
В автоматизации много плюсов и минусов, давайте коротко их осмотрим. Из плюсов – все тесты прогоняются машиной, исключен человеческий фактор. Далее – экономия времени на тестировании, то что раньше делали двое в течении дня теперь делается автоматически ночью. Есть минусы – много времени необходимо потратить на автоматизацию, и постоянно сопровождать все тест-кейсы. Если требования к продукты не меняются кардинально от сборки к сборке, то это не так критично. И опять же – человеческий фактор, машина все делает согласно алгоритму и может многое не заметить. Решать, нужна автоматизация или нет, нужно очень тщательно, чтобы труд не оказался пустым.
Что позволяет автоматизировать Selenium? Почти все, что угодно – переходы по ссылкам, заполнения форм, проверки наличия элементов, все, что может сделать пользователь на вашем сайте.
Selenium – бесплатный инструмент, чтобы начать с ним работать его достаточно просто скачать с сайта, никаких регистраций, и приступать к работе. Мы рассмотрим следующую связку Selenium + Eclipse, писать, соответственно, будем на Java. Можно также выбрать С#, PHP, Perl, Python, Ruby – к чему душа лежит, принципиальных отличий нет.
Для начала работы нам понадобится Selenium IDE – плагин для FireFox, установленный FireFox, Selenium RC – собственно само ядро. Ну и, как уже говоили, Eclipse.
Отсюда можно скачать Selenium, остальное найти труда не составит.
http://release.seleniumhq.org/selenium-ide/1.0.12/selenium-ide-1.0.12.xpi
http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip
Для начала установим плагин в FF и запустим его. Вот что мы увидим на экране
Плагин представляет собой рекордер, и он поможет нам написать первые тесты не заморачиваясь. Раз уж мы на yvision, давайте сделаем тест, связанный с ним. Мы залогинимся и проверим, отображается ли наш логин на странице, в шагах это можно описать следующим образом:
- Открыть главную страницу yvi.kz
- По ссылке «Войти» перейти к странице входа
- Ввести логин и пароль, нажать на «Войти»
- Проверить, отобразился ли введенный логин на странице
Сразу после запуска рекордер по умолчанию запущен (красная кнопка в правом верхнем углу – начало записи), поэтому переходим в FF и руками выполняем все описанные действия. После входа на yvi правой кнопкой щелкнем на логине и в контекстном меню выберем команду assertTextPresent . После этого переключимся к Selenium IDE и увидим следующее:
Рекордер записал все наши действия, выполните логаут из yvi, и нажмите «Play». Мы увидим, как Selenium лихо логинится на yvi.
Давайте разберемся какие команды выполняются.
Open – открытие адреса, указанного в Target
ClickAndWait – клик по ссылке, следующий шаг выполняется, когда запрашиваемая страница полностью загрузится.
Type – в элемент Target печатается значение, указанное в Value
assertTextPresent – проверяет есть ли текст, представленный в Target
Как осуществляется поиск элементов на странице? Способов множество – самый простой по id, если id изменяется, то можно использовать xpath, зависит все от конкретной ситуации.
Таким образом мы записали наш тест, теперь настроим Eclipse. Распакуем архив с Selenium, нас пока интересует папка selenium-java-client-driver-1.0.1. Открываем Eclipse, создаем новый проект, откроем свойства проекта:
По кнопке «Add external JARs» добавим файл selenium-java-client-driver.jar из папки selenium-java-client-driver-1.0.1. Нажмем «Add Library» и добавим JUnit, выберем версию 3. Это необходимо, чтобы в дальнейшем можно было безболезненно перейти на другой фреймворк, например TestNG. Все, теперь наш проект готов принять в себя исходный код нашего теста.
В Selenium IDE в меню «Options-Format» , выберем JUnit 3, скопируем код в Eclipse (предварительно создав новый класс) должно получится вот так:
Опять вернемся к Selenium RC. В папке selenium-server-1.0.3 создадим bat-файл, который будет запускать сервер Selenium:
start java -jar selenium-server.jar
Запускаем bat-файл, в сохраненном проекте в Eclipse щелкаем правой клавишей на названии проекта – «Run as – JUnit». Теперь запуск теста происходит из Eclipse, это позволяет нам использовать в создании тестов возможности языка Java.
Таким образом, мы в самом первом приближении познакомились с возможностями Selenium, записали и запустили наш первый тест с помощью Eclipse.