В этом году я познакомился с фреймворком Selenide, который позволяет писать более компактные и читаемые тесты на языке Java с использование технологии Selenium Web Driver. Доклады на эту и другие темы автора фреймворка Андрея Солнцева показывают, что разработчики глубоко понимают проблемы UI тестирования и успешно работают над их решениями. Давайте же пользоваться!
Все хорошо, но есть проблема. Если посетить на сайте проекта раздел "Быстрый старт", то вам предложат воспользоваться одним из продвинутых тулов для разработчиков (maven, gradle, ivy). Необходимо ли это? Вовсе нет. Начать писать тесты и эффективно использоваться Selenide можно и владея только самым базисом тест-автоматизации - Java, Eclipse, основы Selenium. У вас есть 5-10 минут? Этого достаточно, убедитесь сами.
Нам понадобится:
- Java SDK 1.6+
- Eclipse for Java (практически любая версия) http://www.eclipse.org/downloads/
- Браузер Firefox (с ним по умолчанию работают Selenium и Selenide)
- Скачаем свежую версию Selenium Client for Java (http://www.seleniumhq.org/download/ ) и selenide.jar ( ищем последнюю версию http://search.maven.org/#search%7Cga%7C1%7Cselenide и скачиваем .jar).
Update (можно еще чуть быстрее): вместо Selenium Client for Java скачайте Selenium Server - selenium-server-standalone-x.y.z.jar ~35Mb - Стартуем Eclipse и создаем новый Java Project (File->New->Java Project). Задаем имя, например SelenideQuickStart. Нажимаем на Finish
- Распаковываем selenium-java-x.y.z.zip и добавляем все jar-файлы (selenium-java-x.y.z.jar, и содержимое папки lib), а также selenide-x.y.jar в проект (Project Properties -> Java Build Path -> Libraries).
Update. Если вы скачали selenium-server-standalone-x.y.z.jar, добавьте его вместо содержимого Selenium Client for Java, тогда список будет короче:
Серверная версии Selenium-а (.jar) содержит полностью распакованные jar-файлы из клиентской версии, а также дополнительные классы и пакеты, с ней сложнее разрешать конфликты сторонних библиотек, если ваш тестовый проект будет в них нуждаться. К счастью, дополнительные сторонние библиотеки будут нужны вам для автоматизации тестов сравнительно редко. - Создадим JUnit тест (File->New>JUnit Test Case). Выберем JUnit Test 4, впишем package, например com.selenide.quickstart и название тест-класса, например GoogleTest. Нажмём на Finish.
Согласимся с добавлением JUnit 4 к проекту. - Заменим стандартный код текста на следующий. Данный код вводит строку "selenide" в поиск гугла и сравнивает результат.
1234567891011121314151617181920212223242526272829package com.selenide.quickstart;// импортируем библиотеки Selenideimport static com.codeborne.selenide.Condition.*;import static com.codeborne.selenide.Selenide.*;import org.junit.Test;import org.openqa.selenium.By;public class GoogleTest{@Testpublic void searchGoogle(){// откроем страницу поиска в Googleopen("http://google.com");// в поле запроса (CSS Selector q) - введем "selenide"// и нажмем Enter$(By.name("q")).val("selenide").pressEnter();// первый элемент списка поиска должен быть видимым// и содержать указанный текст$("#ires li.g").shouldBe(visible).shouldHave(text("Selenide: concise UI tests in Java"));// сделаем скриншот результатаscreenshot("google_results");}} - Готово! Запустим тест (как JUnit Test) Run->Run. На несколько секунд у вас откроется браузер Firefox в котором выполнится тест. Вот результат:
- Напоследок глянем на скриншот. Selenide сохраняет png-картинку и html-страницу в папке build/reports/tests. Ее можно открыть, например, в навигаторе (Window->Show View->Navigator). Иногда нужно актурализировать папку проекта клавишей F5 (или File->Refresh).
Вуаля 🙂 Теперь, мы действительно за несколько минут написали работающий тест с использованием Selenide, избежав углубления в технологии разработчиков.
Вас заинтересовал Selenide? Посмотрите данное видео от его создателей (1 час), чтобы узнать про его продвинутые возможности.
А хотите писать понятные Selenium тесты еще быстрее и без использования IDE? Подписывайтесь на блог, я расскажу как.