Бесчисленные часы тратятся разработчиками на проверку работоспособности веб-приложения как в локальной среде, так и за ее пределами.
До появления Selenium все это делалось буквально вручную: десятки людей тестировали сотни сценариев во всех существующих браузерах, выявляя неполадки и, пытаясь определить причины их возникновения.
Что такое Selenium
Работая с большинством языков программирования, поддерживаемых всеми основными операционными системами и браузерами, Selenium в настоящее время используется в таких компаниях, как Netflix, Google, HubSpot, Fitbit и других. Весь пакет (Suit) предоставляет ряд решений для различных задач и потребностей тестирования.
Инфраструктура Selenium Suit
WebDriver
В большинстве случаев, когда говорят о Selenium, имеют в виду Selenium WebDriver. Основная часть разработки продукта сосредоточена именно на этом элементе.
Автоматизация тестирования в WebDriver часто сравнивается с вождением такси (англ. Driver – водитель). В вождении такси и тестировании участвуют три составляющие: заказчик (инженер-испытатель) — автомобиль (браузер) — водитель такси (WebDriver).
Согласно этой аналогии, программист сначала указывает водителю, как взаимодействовать с элементами браузера. Затем WebDriver отдает браузеру (машине) команды, которые звучат примерно так: когда кнопка активна, нажмите на кнопку. После, браузер предоставляет водителю информацию о значениях и статусах веб-элементов, которые позже отправляются в сценарий. Проще говоря, инструмент Selenium WebDriver используется для того, чтобы собрать информацию и удостовериться в корректности работы приложения, то есть, что водитель умет водить и знает, куда ехать.
Selenium IDE
Это расширение для Firefox. Оно не предназначено для разработки, его легко освоить, и оно идеально подходит для задач создания прототипов.
Работа в Selenium IDE не требует навыков программирования, поскольку плагин, в основном, записывает действия инженера в браузере и повторяет их. Программисты не рассматривают его как самостоятельный, полноценных продукт, но для работы с простыми сценариями его вполне хватает.
Selenium Grid
Позволяет запускать параллельные тесты на нескольких машинах и браузерах одновременно. Основная функция этого инструмента — экономия времени. Если нужно запустить, скажем, 100 тестов для настройки четырех виртуальных или физических машин, используется Selenium Grid.
Учитывая, что скрипты в браузере обычно работают медленно, использование методов повышения производительности, таких как параллельное тестирование, может помочь в решении этой проблемы. Также его можно использовать для параллельного тестирования одного приложения в разных браузерах, когда на одном компьютере работает Firefox, на другом — Chrome и так далее. Есть возможность создавать различные конфигурации, комбинируя разные версии браузеров и операционных систем. Излишне говорить, что при использовании в больших производственных средах Grid экономит время вчетверо.
Плюсы Selenium
Selenium — не единственный инструмент автоматизации тестирования на рынке, но это единственный бесплатный инструмент, который может конкурировать с платными продуктами. Katalon Studio — жизнеспособная альтернатива, но она не предоставляет такого большого выбора языков, не работает в Linux и просто не имеет фанатов.
Неудивительно, что даже более крупные фирмы не спешат переходить на платные площадки и отдавать тысячи долларов за то, что Selenium делает бесплатно. Число компаний, работающих с Selenium, превышает 55 тысяч. Его доля на рынке тестирования и автоматизации составляет почти 30 %.
Поддержка зыков, платформ, браузеров:
- Java
- C#
- PHP
- Ruby
- Perl
- Python
- JavaScript
- Objective-C
- Haskell
- R
- Windows
- Linux
- Mac
- Android
- iOS
- Google Chrome
- Internet Explorer
- Firefox
- Safari
- Opera
- Microsoft Edge
- HtmlUnitDriver
Минусы Selenium
Пожалуй, единственным существенным минусом является то, что Selenium можно использовать только в веб-приложениях. Но это — скорее ограничение, а не недостаток, так как для тестирования десктопных приложений в Selenium можно интегрировать WinAppDriver.
Немного истории в заключение
В 2004 году Джейсон Хаггинс создал фреймворк JavaScript, призванный освободить его создателя от повторяющегося ручного тестирования. Продукт, который впервые предсказуемо получил название JavaScriptTestRunner, мог выполнять тесты непосредственно в браузере, управлять взаимодействиями на странице и повторно запускать их без ручного ввода. Этот инструмент JavaScript стал популярным после того, как Хаггинс, осознав весь потенциал, сделал его открытым и переименовал в Selenium Remote Control. Инновационная часть заключалась в том, что до этого ни один другой инструмент не позволял тестировщикам общаться с браузером на выбранном ими языке программирования.
Однако вскоре стало очевидно, что браузеры применяют ограничения безопасности к JavaScript и это делает невозможным использование всех мощностей инструмента. В то время Google был заядлым пользователем Selenium и его инженеры всячески пытались обойти ограничения. Один из них, Саймон Стюарт, начал работать над продуктом, который бы напрямую взаимодействовал с браузерами, и назвал его WebDriver.
Так, более десяти лет назад Selenium объединил усилия с WebDriver, и навсегда изменил способ тестирования программного обеспечения.