Эта статья предназначена для тех, кто уже решился на автоматизацию процесса тестирования и хорошо представляет себе все достоинства и недостатки этого решения. Если же Вы всё еще сомневаетесь, возможно, предыдущая статья поможет Вам принять необходимое решение.
Итак, речь пойдет про Selenium — самый мощный на сегодняшний день бесплатный инструмент для автоматизации функционального тестирования веб-приложений. В его основу положена, максимально близкая к настоящему, имитация действий обычного пользователя при работе в браузере. От разработчика требуется продумать и написать сценарий действий пользователя и проверок, а Selenium воспроизведет его в браузере. Это также означает и то, что Selenium можно использовать не только для тестирования, но и для выполнения любой часто повторяющейся рутинной работы для веб.
Если быть точнее, то Selenium это даже не инструмент, а целый набор инструментов, каждый из которых предоставляет собственный функционал для автоматизации. Выбор конкретного инструмента или нескольких из них зависит от потребностей разработчика и характеристик проекта, который необходимо тестировать.
- Selenium IDE. Представляет из себя плагин для Mozilla Firefox, который записывает и воспроизводит действия пользователя в браузере. Нажатия на элементы, открытие страниц, заполнение полей ввода и т.п. записываются IDE автоматически. Проверки добавляются в сценарий с помощью выбора доступных проверок из контекстного меню на элементе, который нужно проверить. Selenium IDE не требует от тестировщика глубоких знаний программирования, в большинстве случаев самостоятельно формирует код и может по праву считаться самым простым в использовании инструментом. С помощью IDE можно быстро ознакомиться с языком команд и понять принцип работы Selenium. Selenium IDE служит в основном для быстрого создания небольших сценариев или для выполнения каких-либо рутинных действий. Реализовать сложную логику или проверку в сценариях IDE просто невозможно. И что самой собой разумеется тестирование будет выполняться только под Firefox. Selenium IDE можно также использовать при написании тестов в других инструментах для быстрого получения идентификаторов элементов на странице. Конечно, IDE не вернет вам сложный xpath запрос, но если идентификатор элемента очевиден (id или class), то IDE вернет более подходящий. Важная особенность Selenium IDE в том, что можно выполнить экспорт готового сценария в формате любого поддерживаемого Selenium языка программирования для JUnit или Nunit. Подробнее про Selenium IDE можно почитать здесь.
- Selenium WebDriver — набор библиотек API функций для различных языков программирования (Java, C#, Python, Ruby), которые позволяют написать программу для управления браузером на выбранном языке программирования. WebDriver API не привязан к тестовым фреймворкам, это позволяет использовать любые фреймворки модульного тестирования на Ваш выбор. Библиотека предоставляет драйвера для работы в различных браузерах(Mozilla Firefox, Google Chrome, Opera, Internet Explorer, а также мобильные браузеры Android и iPhone), не все из них конечно работают стабильно, но находятся в постоянной разработке. Также предоставляется HtmlUnitDriver, который является самым быстрым кросс-платформенным решением, позволяющим выполнять тесты без визуализации и запуска браузера. Используя Selenium WebDriver можно создать собственный полноценный фреймворк для тестирования. Очень важно, что Selenium WebDriver поддерживает шаблон проектирования Page Object, с помощью которого можно значительно сократить дублирование кода и упростить поддержку тестов. WebDriver API находится в постоянной поддержке, доработке разработчиками под обновления браузеров, и разработке новых функций.
- Selenium RC — предшественник Selenium WebDriver. На сегодняшний день заморожен и не рекомендуется к использованию, т.к. дальше не будет дорабатываться командой разработчиков Selenium.
- Selenium Server. Ранее Selenium Server обязательно требовался для запуска Selenium RC, сейчас если вы собираетесь использовать только WebDriver, то Selenium Server Вам не пригодится. Но Selenium Server может понадобиться для запуска тестов на удаленных машинах с различными операционными системами и установленными браузерами. Несколько серверов Selenium могут образовывать Selenium Grid — сеть, которая распределяет тесты по нескольким машинам (за счет параллельного выполнения).
В заключение хочется добавить, что Selenium с каждым днем набирает все большую популярность среди автоматизаторов. И если Вы профессионально занимаетесь автоматизацией тестирования, то изучение этого продукта является неотъемлемым этапом Вашей деятельности.