Хороший и плохой инструмент автоматизации тестирования селена

  1. Введение в селен
  2. Selenium Suite Инфраструктура
  3. Selenium WebDriver (Селен 2)
  4. Selenium IDE
  5. Selenium Grid
  6. Плюсы использования Selenium
  7. + Бесплатно
  8. + Интеграция с Agile, DevOps, непрерывным рабочим процессом доставки
  9. + Поддерживает мобильное тестирование
  10. + Широкий спектр поддерживаемых языков, платформ и браузеров
  11. + Огромное сообщество
  12. + Большая библиотека плагинов
  13. Минусы использования Selenium
  14. - Крутая кривая обучения
  15. - Нет встроенного сравнения изображений
  16. - Нет технической поддержки
  17. - Нет возможности отчетности
  18. Последнее слово

Время чтения: 10 минут

Кто не любит глубокую историю именования? В начале 2000-х годов компания Mercury Interactive управляла миром автоматизации тестирования с помощью своего инструмента Astra Quick Test. Это был не самый лучший продукт, который можно себе представить. Например, вы могли запускать тесты только на компьютерах с Windows, поддерживалось только небольшое количество версий браузера, и вам приходилось использовать один язык для написания скриптов - VBScript. Когда разработчик программного обеспечения Джейсон Хаггинс создал новый, инновационный инструмент автоматизации тестирования, он назвал свое творение ссылкой на химический элемент и добавку, рекомендованную в качестве противоядия для отравления ртутью - селена. И этот инструмент - то, что мы собираемся рассмотреть сегодня.

Введение в селен

Selenium - это набор средств автоматизации тестирования программного обеспечения с открытым исходным кодом, который фактически стал продуктом в мире обеспечения качества. Имея список из нескольких языков программирования, всех поддерживаемых операционных систем и браузеров, Selenium в настоящее время используется в таких компаниях, как Netflix, Google, HubSpot, Fitbit и других. Весь пакет предоставляет ряд решений для различных задач и потребностей тестирования. Далее в статье мы поговорим об этих инструментах, а также о причинах, по которым Selenium оставался актуальным через десять лет после его создания. Но сейчас давайте рассмотрим, что же такое Selenium, который сделал его таким важным.

Создание Джейсона Хаггинса в 2004 году было фреймворком JavaScript, направленным на то, чтобы освободить его создателя от повторного ручного тестирования. Продукт, который сначала был предсказуемо назван JavaScriptTestRunner, мог выполнять тесты непосредственно в браузере, отслеживать взаимодействия на странице и повторно запускать их без ручного ввода. это Инструмент JavaScript взлетел после того, как Хаггинс осознал свой потенциал, сделал его открытым исходным кодом и переименовал его в Selenium Remote Control. Инновационной составляющей было то, что ни один другой инструмент не позволял тестировщикам общаться с браузером на выбранном им языке программирования.

Однако вскоре стало очевидно, что браузеры применяют ограничения безопасности на JavaScript, что делает невозможным использование всех возможностей инструмента. В то время Google был заядлым пользователем Selenium, но инженеры боролись за ограничения. Один из них, Саймон Стюарт, начал работать над продуктом, который изначально будет взаимодействовать с браузерами, который он назвал WebDriver. Selenium объединил усилия с WebDriver и изменил способ тестирования программного обеспечения более десяти лет.

Чтобы начать путешествие по Selenium, посмотрите следующий мини-стартовый пакет:

Selenium Suite Инфраструктура

Первым продуктом в линейке Selenium был Selenium Remote Control (теперь известный как Selenium 1). Из-за вышеупомянутых ограничений и последующего слияния с WebDriver он вскоре устарел и больше не поддерживается. Всю инфраструктуру Selenium можно визуализировать с помощью изображения ниже, и мы можем выделить три основных продукта, которые все еще широко поддерживаются и признаются сообществом: Selenium WebDriver, Selenium IDE и Selenium Grid. Давайте быстро опишем каждого из них.

Selenium Suite сегодня

Selenium WebDriver (Селен 2)

В большинстве случаев, когда люди говорят о Selenium, они имеют в виду Selenium WebDriver. Наибольшая часть разработки продукта сосредоточена на этом продукте.

Автоматизация тестирования в WebDriver часто сравнивается с вождением такси. В управлении такси и автоматизации испытаний участвуют три участника: клиент / инженер по тестированию, автомобиль / браузер, водитель такси / WebDriver. Согласно этой аналогии, тестер дает команду WebDriver взаимодействовать с элементами так же, как клиент дает указания водителю такси. Затем WebDriver дает браузеру (машине) команды, которые звучат примерно так: Когда кнопка нажата, нажмите кнопку. Затем браузер предоставляет WebDriver информацию о значениях и статусах веб-элементов, которые затем отправляются в сценарий. Если вы хотите узнать больше о деятельности по обеспечению качества, см. Наш всеобъемлющий технический документ по тестированию программного обеспечения ,

В этой статье мы в основном поговорим о преимуществах и недостатках Selenium WebDriver.

Selenium IDE

Это дополнение к Firefox отклонено половиной тестеров и отмечено второй половиной. Он не предназначен для производства, его легко освоить и он идеально подходит для задач прототипирования. Вам не нужны навыки программирования для успешной работы в Selenium IDE, поскольку он в основном записывает ваши действия в браузере и повторяет их. Тем не менее, многочисленные официальные и неофициальные плагины позволяют создавать монстра Франкенштейна IDE, который, вероятно, станет инструментом, готовым к работе (мы поговорим об этом чуть позже). Для компаний, которые считают Selenium WebDriver слишком высокой точкой входа, целесообразно использовать IDE с некоторыми плагинами сверху.

Selenium Grid

Selenium Grid позволяет запускать параллельные тесты на нескольких машинах и в браузерах одновременно. Основная функция этого инструмента - сэкономить время. Если вам нужно выполнить, скажем, 100 тестов, но вы используете Selenium Grid для настройки четырех виртуальных или физических машин, это займет у вас примерно четверть времени, которое потребовалось бы, если бы вы запускали эти тесты один за другим на одной машине. Учитывая то, как скрипты обычно работают медленно в браузере, использование методов повышения производительности, таких как параллельное тестирование, может помочь в решении проблемы. Вы также можете использовать его для параллельного тестирования одного приложения в разных браузерах, когда на одной машине запущен Firefox, на другой - Chrome и т. Д. С помощью Grid вы можете создавать различные конфигурации, комбинируя разные версии браузеров и операционных систем. Излишне говорить, что при использовании в больших производственных средах Grid значительно экономит время.

Плюсы использования Selenium

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

+ Бесплатно

Selenium - не единственный инструмент для автоматизации тестирования на рынке, но это единственный бесплатный инструмент, который может конкурировать с платными продуктами. Как вы могли видеть в нашем сравнение инструментов автоматического тестирования Katalon Studio - единственная жизнеспособная альтернатива, но она не предоставляет такого большого выбора языка, не работает в Linux и просто не имеет фан-базы. Статус открытого источника Selenium делает инструмент с крутой кривой обучения низкой точкой входа для стартапов и независимых разработчиков. Не удивительно, что даже более крупные компании не спешат переходить на платные опционы и отдают несколько тысяч долларов плюс техническое обслуживание, когда Selenium все еще остается в силе.

+ Интеграция с Agile, DevOps, непрерывным рабочим процессом доставки

Selenium следовал повествованию о Agile и DevOps еще до того, как эти слова были воплощены в жизнь. Вся природа Selenium идеально вписывается в основные принципы Agile, DevOps , или же Непрерывная доставка , Как именно это достигается?

  • Поскольку Selenium переносим на все платформы и часто не требует изучения новых языков, он обладает непревзойденной гибкостью
  • Selenium легко интегрируется с различными платформами разработки, такими как Jenkins, Maven, TestNG, QMetry, SauceLabs и т. Д.
  • Параллельное тестирование с Selenium Grid позволяет разработчикам получать обратную связь намного быстрее и сразу же работать над изменениями, вместо того, чтобы ждать тестового прохождения в одночасье.

+ Поддерживает мобильное тестирование

С Selenium вы также можете тестировать собственные, гибридные или веб-мобильные приложения, хотя вам потребуется дополнительное программное обеспечение. Есть два основных варианта - Appium а также Selendroid , Они оба основаны на Selenium, поэтому разработчики, уже знакомые с ним, могут применять те же принципы при тестировании мобильных приложений.

Оба инструмента с открытым исходным кодом и имеют большую поддержку сообщества. Основное отличие заключается в том, что Appium поддерживает устройства iOS, Android и Windows, а Selendroid ориентирован исключительно на Android. Selendroid также поставляется в комплекте с Appium, поэтому при тестировании версий Android с 2.3 по 4.3 программа автоматически переключается на Selendroid.

Может показаться, что использование Appium - более логичный выбор, поскольку он не ограничивает вас одной ОС. Тем не менее, имеет смысл использовать Selendroid, если вы планируете тестировать Android исключительно. Он также имеет несколько отличных функций, таких как «горячее подключение» - вы можете подключать устройства и отключать их, не прерывая тесты, увеличивая количество эмуляторов или аппаратных устройств, которые можно тестировать одновременно.

Есть еще два нишевых инструмента, о которых вы, возможно, захотите узнать:

  • Robotium - тестовый фреймворк для Android
  • ИОС-водитель - API Selenium WebDriver для тестирования iOS, интегрированный с Selenium Grid

+ Широкий спектр поддерживаемых языков, платформ и браузеров

Гибкость, которую обеспечивает Selenium, практически не имеет аналогов в мире автоматизации тестирования. Во-первых, у нас есть десять поддерживаемых языков, среди которых Java, Ruby, C #, PHP, JavaScript, Perl и R - все среди сегодняшних наиболее используемые языки программирования , Это также единственный основной инструмент, который охватывает тестирование Linux. Подробный и обновленный список поддерживаемых версий браузера см. В эта страница ,

Языки, платформы и браузеры, поддерживаемые Selenium

+ Огромное сообщество

iDataLabs, исследовательская компания, ориентированная на данные, предоставляет интересное понимание на рынок инструментов тестирования программного обеспечения. Вы можете видеть, что Selenium занимает ошеломляющую 30,59-процентную долю рынка всех инструментов тестирования программного обеспечения, а ее ближайший конкурент UFT занимает чуть более 12 процентов - потрясающая статистика.

По данным iDataLabs, более 25 тысяч компаний используют Selenium

Являясь одним из пионеров современного автоматизированного тестирования, Selenium приобрел фанатов разработчиков в крупных игроках, таких как Google и стартапы. Списки вакансий для профессионалов QA включают Selenium в качестве одного из необходимых навыков.

Есть альтернативы Selenium, о которых мы упоминали ранее, но их цена колеблется от нескольких тысяч долларов до 10 тысяч долларов. Наличие исключительного бесплатного инструмента позволяет старым тестировщикам быть лояльными к Selenium, а новые становятся поклонниками.

И они становятся фанатами, судя по спросу на онлайн-курсы. Udemy, Lynda.com и Coursera предоставляют несколько вариантов изучения Selenium. Сотни пошаговых руководств YouTube, тема о Quora с 25 тысячами подписчиков и 55 тысячами вопросов о StackOverflow сигнализируют о большом расцветающем сообществе, которое предоставляет больше талантов Selenium на рынок.

+ Большая библиотека плагинов

Selenium может быть расширен за пределы стандартной функциональности с помощью широкого спектра плагинов. Appium и Selendroid - это два из них. На эта страница вы увидите сторонние плагины, которые несколько официально одобрены Selenium, но вы можете найти больше неподдерживаемых на Github. Не забудьте также зайти в Google «Selenium plugins <имя инструмента>», и вы можете найти расширение для легкой интеграции с вашим любимым программным продуктом, таким как Jenkins или Eclipse.

Эти плагины существуют не только для WebDriver, но также для Grid и Selenium IDE. Последние особенно обширны, способны укрепить слабый в функциональном отношении инструмент и сделать его готовым к производству.

Минусы использования Selenium

Мы никогда не хвалим программный продукт, не упоминая несколько болевых точек, которые идут с ним. У Selenium тоже есть такие.

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

Одной из современных тенденций автоматизированного тестирования является тестирование без кода. Такой подход позволяет любому человеку без глубоких знаний в области программирования выполнять тесты. Некоторые инструменты тестирования, такие как TestComplete, Ranorex или Tricentis предоставляют эту возможность, создавая удобный пользовательский интерфейс поверх уровня кода, а также позволяя переключаться между двумя режимами. Тестировщики могут по-прежнему писать сценарии и получать подробные отзывы, но при необходимости пропустить часть кода.

Однако Selenium не позволяет проводить тестирование без кода. Вам нужно хорошо разбираться в одном из языков программирования, который сужает круг людей, которые могут быть вовлечены в процесс тестирования. Многие компании, особенно стартапы, склонны нанимать своих лучших программистов для написания функций продукта и вовлекать менее квалифицированных людей в автоматизированные тесты. Это не будет работать с Selenium.

- Нет встроенного сравнения изображений

В процессе обеспечения качества возникают проблемы с автоматизацией проверки изображений. Простой и наиболее эффективный способ определить, правильно ли отображается изображение на экране, - это проверить вручную. Хотя для большинства постановок нормально использовать сочетание ручного и автоматического тестирования Это большой источник ошибок, поскольку вскоре задача становится повторяющейся, а тестеры, как правило, проверяют ее реже.

Одним из распространенных решений этой проблемы является сравнение изображений . У вас есть макет вашего изображения, который программа должна сравнить с изображением, отображаемым во время теста. TestComplete, Ranorex, Katalon Studio, наряду с некоторыми другими, уже включают эту функциональность. Для этого в Selenium вам понадобится стороннее программное обеспечение. Sikuli это общий выбор. Это инструмент распознавания изображений, который хорошо интегрируется с Selenium, но имеет свои ограничения - он должен работать на одном виртуальном или физическом экране и не распознает анимации.

- Нет технической поддержки

Поиск помощи с Selenium - обоюдоострый меч. Выше мы упомянули об изобилии учебных пособий, вопросов, ответов и ссылок на чаты, где вы можете обратиться за помощью к сообществу. Плохая сторона этого в том, что помощь оказывает сообщество, а не создатели продукта. Найти решение вашей нетрадиционной проблемы или помочь с индивидуальными запросами возможно, но сложно. В случае необходимости вы можете обратиться в консалтинговые или сервисные компании за коммерческой поддержкой. Selenium предоставляет краткий список таких компаний на своих страница экосистемы ,

- Нет возможности отчетности

Тестировщики, разработчики, менеджеры проектов - все они нуждаются в доступе к результатам тестов, желательно визуализированных в виде диаграмм, таблиц и поддерживаемых скриншотами. Какой смысл писать сценарии и проводить тесты, когда окончательная информация может быть потеряна или не передана людям, которые больше всего в ней нуждаются?

Отсутствие автоматически генерируемых отчетов - одна из самых больших проблем Selenium. Чтобы зафиксировать неудачные тесты в Selenium, вы должны сделать снимок экрана в момент неудачи. Это далеко от удобочитаемого формата, который необходим команде для быстрой диагностики проблемы. В то время как различные поставщики предлагают функции отчетности с учетом данных и интеграции инструментов для совместной работы, Selenium приходится полагаться на сторонние решения. Вот самые популярные из них:

  • TestNG при выполнении теста создает два типа отчетов: подробный и сводный. Сводка предоставляет простые пропущенные / неудачные данные; в то время как подробные отчеты содержат журналы, ошибки, группы тестирования и т. д.
  • JUnit использует HTML для создания простых отчетов в Selenium с индикаторами «сбой» и «успех».
  • Библиотека экстентов это самый сложный вариант: он создает сводки тестов, включает в себя скриншоты, генерирует круговые диаграммы и так далее.
  • завлекать создает удобные отчеты с графиками, временной шкалой и категоризованными результатами испытаний - и все это на удобной панели инструментов.

Последнее слово

Что произойдет, если Selenium вдруг объявит, что идет по платному маршруту? Трудно что-то критиковать, когда это предоставляется вам совершенно бесплатно, но насколько болезненными были бы подводные камни, если бы нам вдруг пришлось за них заплатить?

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

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

Этот пост является частью нашей серии «Хорошо и плохо». Для получения дополнительной информации о плюсах и минусах самых популярных технологий, смотрите другие статьи из этой серии:

Хорошие и плохие мобильные разработки Xamarin

Хорошее и плохое в JavaScript Разработка полного стека

Хорошие и плохие разработки веб-приложений Node.js

Добро и плохо ReactJS и React Native

Хороший и плохой язык программирования Swift

Преимущества и недостатки программирования на .NET Framework

Хорошее и плохое углового развития

Хорошее и плохое в Java-программировании

Хорошие и плохие разработки приложений для Android

Какой смысл писать сценарии и проводить тесты, когда окончательная информация может быть потеряна или не передана людям, которые больше всего в ней нуждаются?
Трудно что-то критиковать, когда это предоставляется вам совершенно бесплатно, но насколько болезненными были бы подводные камни, если бы нам вдруг пришлось за них заплатить?