Selenium против Selenide: какая среда автоматизации тестирования пользовательского интерфейса лучше?

Selenium против Selenide: какая среда автоматизации тестирования пользовательского интерфейса лучше?

16 марта 2022 г.

Оглавление




  • [Селеновая сетка] (#heading-selenium-grid)













Выбор платформы автоматизации пользовательского интерфейса — непростая задача. Вы должны учитывать множество факторов в зависимости от потребностей вашей компании:


  • Набор навыков, доступных в компании

  • Кривая обучения

  • Простота использования

  • Кроссбраузерная и платформенная поддержка

  • Интеграция с облачными сервисами тестирования

  • CI/CD интеграция

  • Стоимость лицензии

  • Подробные отчеты

Тогда мои коллеги оценили несколько фреймворков и остановили свой выбор на Selenium и Selenide. Итак, вопрос в том, какой фреймворк использовать?


Не буду тратить ваше время, поэтому быстро отвечу на вопрос: оба. Спасибо за прочтение. 😊


Шутки в сторону, если вам интересно, почему, пожалуйста, продолжайте читать. В этой первой статье давайте рассмотрим их один за другим, чтобы я мог дать более подробный ответ на наш вопрос.


Что такое селен?


Selenium — это проект [с открытым исходным кодом] (https://github.com/SeleniumHQ/selenium), состоящий из различных инструментов для автоматизации веб-браузеров, поддерживающих множество браузеров на многих платформах. Он широко используется для автоматизации тестирования, но оно не ограничивается только тестированием. Его основными компонентами являются Selenium WebDriver, Selenium RC, Selenium IDE (запись и воспроизведение) и Selenium Grid. Я не буду говорить о Selenium RC, который является предшественником Selenium WebDriver, если вы хотите прочитать об этом, вы можете найти информацию [здесь] (https://www.selenium.dev/documentation/legacy/selenium_1/) . Я также пропускаю Selenium IDE, который представляет собой простой инструмент для записи и воспроизведения. Исходя из моего опыта, это полезно только для людей, которые являются новичками в разработке программного обеспечения, или в случае, если вы не очень хорошо знакомы с DOM. Если вы все еще заинтересованы, посмотрите [эту страницу] (https://www.selenium.dev/selenium-ide/).


Селен веб-драйвер


Это набор зависимых от языка привязок для естественного управления браузером, как это сделал бы настоящий пользователь. Поддерживаемые языки включают Java, C#, Kotlin, Python, Ruby, JavaScript, Perl и PHP. WebDriver может работать как локально, так и удаленно (с помощью Selenium Grid).


Selenium может автоматизировать только веб-страницы, но вы не можете автоматизировать нативные приложения, для этой цели вы можете использовать Appium. Если вы заинтересованы в Appium, я настоятельно рекомендую курс Udemy Rahul Shetty.


Если вы заинтересованы в программировании Selenium WebDriver с использованием языка Java, я настоятельно рекомендую Rahul Shetty по Udemy, я лично многому научился из этого .


Я также разработал фреймворк Selenium на основе Cucumber после прохождения курса, так что вы можете сразу приступить к разработке Selenium. Он доступен на [GitHub] (https://github.com/mszeles/selenium-framework-template). Для Selenide я пока не могу порекомендовать хороший курс, но это основная причина, по которой я начал писать этот цикл статей.


Селеновая сетка


С помощью Selenium Grid вы можете запускать тесты параллельно на нескольких виртуальных и физических машинах. Последняя версия Selenium Grid 4 имеет совершенно новую кодовую базу по сравнению с предыдущими версиями.


Используя Grid, вы можете построить свою собственную инфраструктуру, но есть много сайтов, которые предоставляют грид-сервисы Selenium. Один из них — [Browserstack] (https://www.browserstack.com/), который поддерживает более 3000 реальных устройств и браузеров.


Селенид


Давайте поговорим о Selenide. Так что же такое Селенид? Selenide — это фреймворк [с открытым исходным кодом] (https://github.com/selenide/selenide), построенный поверх Selenium WebDriver, основная цель которого — упростить автоматизацию тестирования. Поскольку он основан на Selenium WebDriver, это также означает, что мы получаем полный набор его функций и давайте посмотрим, что еще мы получаем в дополнении:


  • Он имеет свободный API для тестов, так что у вас будет более лаконичный и читаемый код.

  • Он поддерживает Ajax, так что у вас будет гораздо меньше проблем с обработкой тайм-аутов, так что вы сможете писать более стабильные тесты.

  • В дополнение к селекторам Selenium у вас есть дополнительные расширенные селекторы, упрощающие поиск элементов.

  • Предоставляет простые способы загрузки файлов.

  • Предоставляет методы для перехода между родительскими и дочерними элементами.

  • Его очень легко настроить, так как используются разумные значения по умолчанию, поэтому вам не нужно возиться с WebDriver, но, конечно, вы можете, если хотите.

  • Selenide автоматически делает снимки экрана при неудачных тестах, предоставляя также ссылку, даже во время работы на Jenkins, чтобы вам было легче определить проблему.

  • Он имеет встроенный профилировщик .

  • Отправка ключей к элементам при использовании Selenium происходит довольно медленно, так как он отправляет ключи один за другим. Selenide предоставляет метод на основе javascript, который является гораздо более быстрым способом отправки ключей.

  • Предоставляет подробные сообщения об ошибках, даже регистрируя источник HTML, принадлежащий элементу, поэтому это значительно упрощает отладку.

  • Переключиться с Selenium на Selenide легко, даже если у вас есть сотни тестов Selenium, поскольку тесты Selenium полностью совместимы с Selenide.

Это основная информация, которая нам нужна о фреймворках, так что давайте продолжим их сравнение.


Оценка фреймворков на основе наших требований


Набор навыков, доступный в компании


У нашей команды большой опыт работы с Java, поэтому Selenium кажется разумным выбором, поскольку он поддерживает многие языки программирования, включая Java.


Selenide ограничен Java и другими языками на основе JVM, но, поскольку у нас есть опыт работы с Java, Selenide так же хорош для нас, как и Selenium. Для нас соотношение Selenium:Selenide 1:1.


Кривая обучения


По Selenium можно найти массу материалов в интернете: видеокурсы, туториалы, статьи. Если у вас есть хороший опыт работы с Java и вы знакомы с DOM, то изучить Selenium довольно просто. Поскольку это открытый исходный код, вы также можете проверить исходный код в любое время.


У Selenide есть довольно короткая документация, но есть много примеров, доступных на GitHub. Я не нашел ни одного видеокурса по теме, но, конечно, статьи имеются. В Stackoverflow есть несколько сотен вопросов, связанных с Selenide, по сравнению с тем, что в Selenium их почти 100 000. Несмотря на это, изучить Selenide также легко (особенно если вы уже знакомы с Selenium). Это также с открытым исходным кодом, поэтому у вас есть возможность просмотреть код, если хотите.


Однако многие проблемы, с которыми вы сталкиваетесь во время разработки Selenide, могут быть решены с помощью материалов, принадлежащих Selenium (поскольку Selenide основан на Selenium WebDriver), это все равно победа для Selenium: 2:1.


Простота использования


Если вы вернетесь к вводному разделу Selenide, то увидите список тем, в которых Selenide превосходит Selenium. Это большая победа Selenide: 2:2.


Кроссбраузерная и платформенная поддержка


Обе платформы имеют одинаковую поддержку браузера и платформы. Это равно: 3:3.


Интеграция с облачными сервисами тестирования


И Selenium, и Selenide могут интегрироваться с Browserstack, так что они снова равны. Положение 4:4.


Интеграция CI/CD


Selenium хорошо интегрируется с Jenkins и то же самое можно сказать о Selenide. В нашей компании мы используем GitLab, у которого есть собственный инструмент CI/CD, и я могу сказать, что Selenide хорошо с ним работает: 5:5.


Стоимость лицензии


Оба являются бесплатными программами: 6:6.


Подробные отчеты


Ни в Selenium, ни в Selenide нет встроенных отчетов, но вы можете легко интегрировать их с платформами тестирования, такими как JUnit или TestNG. С помощью этих фреймворков вы можете создавать необходимые отчеты. В дополнение к этому Selenide имеет профилировщик, с помощью которого вы можете создавать отчеты, включающие время выполнения каждого действия в миллисекундах. Основываясь на этом, вы можете лучше понять, на что ваши тесты тратят свое время и где вы можете улучшить свои тесты. С профилировщиком это еще одно очко для Selenide.


Результат


Таким образом, окончательный результат — 6:7 в пользу Selenide. Конечно, вы не можете принять решение только по результату, так как все факторы имеют разный весt в зависимости от потребностей вашей команды. Принимая во внимание дополнительные возможности Selenide, облегчающие разработку, мы решили использовать его и не пожалели о своем решении. Selenide — довольно активный проект, выпускающий несколько релизов в месяц, я настоятельно рекомендую попробовать его.


Заключительные слова


Это первая вводная статья из серии, которую я напишу об автоматизации тестирования с помощью Selenide. Я почти уверен, что вам не терпится увидеть код, так что в следующей статье мы начнем разработку Selenide.


Если вас интересует управленческая сторона обеспечения качества в гибкой среде, я рекомендую прочитать [эту статью] (https://www.linkedin.com/pulse/first-steps-quality-management-agile-projects- akos-piltmann?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3BGBKXPwn2S3aSjYTTMdLkRw%3D%3D), написанный моими коллегами Ákos Piltmann и István Szarka и [István Szarka] %3D).


Чтобы закрыть статью, я оставляю вам вопрос здесь:


Какая у вас платформа автоматизации пользовательского интерфейса номер один? Пожалуйста, поделитесь своим опытом в разделе комментариев.


**Расскажите о том, насколько хорош Hashnode, поэтому, пожалуйста, поделитесь этой статьей в социальных сетях!**😊


Если вы не хотите пропустить мои посты, просто подпишитесь на меня здесь, на Hashnode, на LinkedIn, в Twitter, в Medium.com, в dev.to и даже в Instagram. 😊


P.S.: Поддержите меня, поделившись этой статьей. 👍


Купи мне кофе! 🧡


📚Присоединяйтесь к сообществу Selenide на LinkedIn! ✌



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE