Разное

Тестирование селениум: Автоматизация тестирования с помощью Selenium и Python — Stepik

Содержание

Cucumber и Selenium для эффективного автоматизированного тестирования — TestMatick

Автоматизированное тестирование безусловно необходимо на любом большом проекте. Тестирование автоматизации ассоциируется с множеством инструментов и подходов, и у каждого есть свои плюсы и минусы. Сегодня мы поговорим о Cucumber в сочетании с Selenium.

Основные свойства

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

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

В то время, как Selenium позволяет проводить операции в браузере, Cucumber понимает много программных языков и скриптов. Говоря об автоматизированном тестировании, оба инструмента работают как эффективный механизм.

Принцип работы

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

Cucumber интерпретирует тесты в определенный программный язык, в то же время Selenium используется для контроля тестов в браузере. Cucumber работает как программная платформа, которая должна быть использована в связке с Selenium.

Обращаясь в компанию по тестированию за услугами автоматизированного тестирования, скорее всего, вы узнаете, что написание авто-тестов проходит в 3 этапа:

1) Определите сценарий. Gherkin – это название языка, который понятен для Cucumber, как для человека. Обычно, пользовательские истории используются как сценарии.

2) Осуществите шаги для выполнения. Этот пункт идет сразу за вышеупомянутым. Реализация может быть выполнена на множестве языков. Многие из них, включая Java, поддерживает Cucumber. Рекомендуется создать структуру проекта, чтобы все работало корректно. По этой причине к Selenium могут быть добавлены ссылки.

3) Определите описание элемента пользовательского интерфейса. PageObject считается лучшим для определения описаний элемента пользовательского интерфейса. Это облегчает поддержку автоматизированных тестов. Дело в том, что при изменении элементов страницы, они будут извлечены в PageObject. Обновлять файлы не нужно.

Тестирование с помощью PHPUnit и Selenium

В среде IDE для проекта можно выбрать следующие особые варианты настройки:

  • файл начальной загрузки;

  • файл настройки в формате XML;

  • набор тестов.

  • Пользовательский сценарий PHPUnit

Настройка конфигурации, связанной с проектом.

  1. Щелкните правой кнопкой мыши узел проекта или узел проекта «Файлы тестов», а затем выберите пункт меню «Свойства». В результате откроется диалоговое окно «Свойства».

  1. Выберите в нем категорию «PHPUnit». Откроется диалоговое окно, в котором можно выбрать особый файл начальной загрузки, конфигурацию XML, сценарий PHPUnit или файл набора тестов.

  1. Пользователи, не знакомые со структурой начальной нагрузки или файлами конфигурации XML можно использовать IDE NetBeans для создания основы. Инструкции по использованию диалогового доступны при выборе ‘Справка’.

Вариант начальной загрузки требуется для проектов, в которых используется собственный загрузчик классов, например, посредством реализации магической функции __autoload() . Вариант начальной загрузки используется также при необходимости включения файла, содержащего, например, глобальные константы, которые используются несколькими классами в проекте, в будущем.

Файл XML настройки позволяет определить параметры, используемые в вызове из командной строки. В руководстве по PHPUnit имеется полное введение. С помощью файла XML настройки также можно определить параметры php.ini и глобальные переменные для тестов. Параметр начальной загрузки может быть указан и в файле XML настройки.

Если установлен особый набор тестов, он запускается при каждом выборе пункта меню «Выполнить > Тестирование проекта». Это особенно удобно, если требуется запустить только подмножество всех тестов, либо если требуется использовать недавно реализованные функции PHPUnit, которые необходимо добавлять вручную, например источники данных. Следует отметить, что существует возможность создавать любое количество наборов тестов и запускать их по отдельности; для этого нужно щелкнуть файл в проводнике проектов и выбрать пункт меню «Выполнить». Во избежание недоразумений при использовании особого набора тестов выдается предупреждение. Это предупреждение выводится в окне «Результаты теста» и в окне вывода.

_Пользовательский сценарий PHPUnit _ можно использовать для проекта, вместо сценария по умолчанию, выбранного в ‘Сервис’ > ‘Параметры’. Пользовательский сценарий PHPUnit может включать в себя любые переключатели командной строки, описанные в руководстве по PHPUnit.

Функциональное тестирование и Selenium

Посмотрел «Selenium» — прекрасный, на мой взгляд, инструмент для автоматизации функционального тестирования. Из аналогов я нашёл только «Watir», но он мне показался сильно беднее (или только показался?). Платных аналогов много, в том числе от именитых IBM и HP, но хочется именно бесплатного.

Собственный опыт у меня пока небольшой (я написал несколько тестов и бегло прочитал документацию), а из прочитанного в сети я сделал вывод, что у «Селениум» есть проблемы. Вроде как он не любит фреймы (сомнительно) и стабильно работает только в Firefox (мне FF пока достаточно).

Я пока использовал только версию для Firefox (дополнение Selenium IDE). Самый простой способ изготовить тест выглядит следующим образом: открываем Selenium IDE, создаём новый тест, подготавливаем браузер (переходим на страницу, с которой тест начнётся), жмём на красную кнопку записи (справа на панели инструментов), в браузере выполняем какие-то действия, останавливаем запись и смотрим что получилось.

После того как последовательность действий в браузере была записана «Селениумом», нужно посмотреть что получилось, возможно что-то поправить. Язык простой и очень понятный, нужно лишь немного знать английский. В своём первом тесте я лишь вынес в переменную вводимую строку, чтобы позже использовать её в assertion и переделал селектор элемента с XPath на CSS (элементы можно выбирать через XPath, CSS, DOM, ID элемента, regexp и ещё несколькими способами), а так же добавил сам assert, ведь «Селениум» не знает что является успешным завершением теста.

Вот простенький тест, который я записал, что проиллюстрировать принцип:

сохраняем тестовую строку
store THIS-IS-TEST-STRING testPhrase

 открываем страницу в браузере
open /EvgenyStepanischev

 жмём на ссылку, в которой содержится указанное значение и ждём, когда браузер её полностью загрузит
clickAndWait link=EvgenyStepanischev / Тестирование

 жмём на ссылку, которая выбирается CSS-селектором
clickAndWait css=.edittab a. b-button-yellow

 печатаем
type postText ${testPhrase}

 жмём на клавишу с указанным ID
clickAndWait really_save_button1

 проверяем есть ли на странице наш текст
assertTextPresent ${testPhrase}

Чтобы тест выполнился, нужно указать для него базовый URL (по которому будет выполняться тест и нажать кнопку запуска теста и тест сьюта). На нашей внутренней «Вики» в «Яндексе» этот тест откроет мой кластер, найдёт там страницу «Тестирование», нажмёт на ней кнопку редактирования, напечатает в страницу «THIS-IS-TEST-STRING», сохранит изменение и убедится, что введённая строка появилась на странице.

Большинство потребностей покрывается языком «Селениума», для какие-то совсем уж сложных вещей можно использовать JavaScript (блок javascript { … }).

Есть возможность удалённого запуска тестов на нескольких браузерах и использование языков C#, Perl, Ruby, Python, PHP и Java, но я пока с этим богатством не разбирался, первые потребности вполне покрываются тем, что я уже знаю, дальнейшее — дело будущего.

Добавлено 22 ноября 2009 13:40: Андрей Ларионов подсказал ещё один бесплатный продукт — «Tellurium», но я не вижу преимуществ перед «Селениумом», зато вижу недостатки, например, усложнённый (по сравнению с «Селениумом») язык описания тестов.

Вопрос пользователя Александр Абоимов в уроке «Stub», курс…

Александр Вагин

Внешние сервисы тестируют создатели внешних сервисов 🙂 А вы им доверяете.

Любой ваш тест на корректность внешнего api покажет только то, что в данный момент оно корректно. И он не гарантирует того, что через 5 минут его не сломают 🙂

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

Александр Абоимов

Хорошо:) Еще есть более специфичный вопрос. Если смотреть архитектуру MVC. Какое тестирование используют для контроллеров, в частности для экшенов? В asp.net mvc фреймворке используют юнит тесты, что как бы логично имхо. Экшн — это ведь функция(метод), а в yii фреймворке для php говорят использовать функциональные тесты для этого. Это уже совсем другое тестирование через selenium и т.д. Мне удобен вариант в asp.net, какие тут должны быть правильные мысли на этот счет?

Александр Вагин

Тут дело не в удобстве. Юнит тесты стоят дешевле (не зависят от внешнего вида страницы), но покрывают не весь флоу работы (например, js ошибки вы там не увидите). Поэтому стоит разумно использовать оба подхода 🙂

Kirill Mokevnin

Функциональные тесты это не селениум. Все что ходит снаружи и щелкает в браузере по ссылкам это приемочные тесты.

Александр Абоимов

Можно более детально пояснить? Если погуглить на тему «functional testing selenium», есть и статьи и ответы на эту тематику. https://developer.atlassian.com/docs/faq/writing-your-first-plugin-faq/tips-for-functional-tests-with-selenium У codeception в доках написано, что функциональные тесты пишутся точно также, как и приемочные. Еще есть непроверенная информация, что selenium это всего лишь «эмулятор» и на нем можно писать, как приемочные тесты, так и функциональные.

Kirill Mokevnin

Скажем так, в мире тестирования любыми словами называют любую штуку. Поэтому я лично стараюсь избегать формулировок на тему «юнит тестирование» и тому подобное, чего и вам советую. В реальности это просто словоблудие и не влияет ни на что. На практике главное что вы можете тестировать систему либо вообще снаружи (не из кода, а через браузер например), либо внутри. Селениум и подобные инструменты это тестирование снаружи, подобных инструментов кучи на всех языках.

Kirill Mokevnin

Кстати функциональным тестированием в веб фреймворках называют тестирование экшенов контроллеров из кода.

Александр Абоимов

Благодарю.Теперь все понял. Согласен с вашей позицией, меньше словоблудия — больше толка 🙂

Александр Пупышев

Почему в задании написано «Протестируйте, что метод всегда возвращает true», а на деле нужно протестировать, что метод всегда возвращает null?

Плюсы и минусы ПО для автоматизации тестирования селена

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

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

Что такое автоматическое тестирование Selenium?

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

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

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

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

Разработка и инфраструктура пакета Selenium

Первым продуктом в линейке Selenium был Selenium Remote Control (теперь известный как Selenium 1). Из-за вышеупомянутых ограничений и последующего слияния с WebDriver (в результате чего появился Selenium 2) он вскоре устарел и больше не поддерживается.В 2016 году был выпущен Selenium 3, в котором Selenium RC был удален в «устаревший пакет», но расширен список поддерживаемых браузеров и возможностей мобильного тестирования. В феврале 2021 года была анонсирована первая бета-версия Selenium 4. Создатели наконец обновили документацию и переписали свой сервер. В последней версии есть некоторые устаревшие элементы, но добавлены долгожданные новые возможности, такие как введение относительных локаторов, переход с протокола JSON Wire на протокол WebDriver W3C и функция отладки Chrome.

Вся инфраструктура Selenium может быть визуализирована с помощью изображения ниже, и мы можем выделить три основных продукта, которые все еще широко поддерживаются и признаются сообществом: Selenium WebDriver, Selenium IDE и Selenium Grid. Кратко опишем каждую из них.

Selenium suite сегодня

Selenium WebDriver (Селен 4)

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

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

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

Селен IDE

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

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

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 и внешними облачными сетями, такими как LambdaTest, позволяет разработчикам намного быстрее получать обратную связь и сразу же работать над изменениями, вместо того, чтобы ждать в течение ночи прохождения теста.

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

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

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

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

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

  • Robotium — среда тестирования черного ящика для Android
  • ios-driver — Selenium WebDriver API для тестирования iOS, интегрированный с Selenium Grid

Подробнее об Appium, Selendroid, Robotium и других инструментах тестирования мобильной автоматизации можно прочитать в нашей специальной статье.

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

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

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

Enlyft (ранее iDataLabs), исследовательская компания, работающая на основе данных, дает интересную информацию о рынке инструментов для тестирования программного обеспечения.Вы можете видеть, что Selenium занимает ошеломляющую долю рынка в 27,48% от всех инструментов тестирования программного обеспечения, а его ближайший конкурент Apache Jmeter занимает чуть более 10% — потрясающая статистика.

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

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

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

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

Помимо возможности получать практические ответы на свои вопросы от коллег-тестировщиков, такое сообщество также постоянно выпускает полезные обновления и обновления продуктов.

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

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

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

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

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

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

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

Однако

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

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

— Используется только для веб-приложений

Это скорее ограничение, чем недостаток, но все же стоит уточнить. Selenium — это инструмент, который нельзя использовать для автоматизации тестирования настольных приложений, поскольку он не может распознавать объекты в настольных приложениях. Он предназначен только для тестирования веб-приложений с использованием различных браузеров, перечисленных выше.Итак, чтобы протестировать свои настольные приложения, вам нужно будет найти либо отдельный инструмент, такой как WinAppDriver, и использовать его вместе с Selenium (их можно легко интегрировать), либо комплексный инструмент тестирования, такой как Katalon, который может автоматизировать как веб-интерфейс, так и не веб-тесты.

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

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

Одним из распространенных решений этой проблемы является сравнение изображений . У вас есть макет вашего изображения, который программа должна сравнить с тем, что отображается во время теста. Эта функция уже включена в TestComplete, Ranorex, Katalon Studio и некоторые другие. Для этого в Selenium вам понадобится стороннее программное обеспечение.Сикули — обычный выбор. Это инструмент распознавания изображений, который хорошо интегрируется с Selenium, но имеет ограничения и не всегда точен. Другая библиотека с открытым исходным кодом — OpenCV, которая имеет интерфейсы C ++, Python, Java и MATLAB и содержит сотни алгоритмов для компьютерного зрения и обработки изображений.

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

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

— Нет отчетов

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

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

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

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

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

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

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


Этот пост — часть нашей серии «Хорошее и плохое».Подробнее о плюсах и минусах самых популярных технологий читайте в других статьях серии:

Плюсы и минусы мобильной разработки Xamarin

Плюсы и минусы разработки полного стека на JavaScript

Плюсы и минусы разработки веб-приложений на Node.js

Хорошее и плохое в ReactJS и React Native

Плюсы и минусы быстрого языка программирования

Хорошее и плохое в.Программирование .NET Framework

Плюсы и минусы угловой разработки

Плюсы и минусы программирования на Java

Плюсы и минусы разработки приложений для Android

Введение в автоматизацию бескодового тестирования селена

6. Преимущества веб-автоматизации без кода с помощью Leapwork

Захватить элементы один раз

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

Больше не нужно терять время на ожидание

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

Дает обзор этапов проверки

Блок-схемы — король. Нет лучшего способа контролировать процесс — или шаги, необходимые для его выполнения.Вот почему ваши тесты лучше всего строить в виде наглядных блок-схем.

Конструкция повторно используемых компонентов

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

Тестирование в браузерах и на устройствах

Тестируйте приложения в любой операционной системе, на любом настольном или мобильном устройстве и в любой версии браузера. Leapwork поставляется со встроенными облачными интеграциями Sauce Labs и BrowserStack.

Выполнять тесты где угодно и когда угодно

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

Поддержка непрерывной доставки

Подключите Leapwork к своему конвейеру CI / CD, используя наш общедоступный REST API. Leapwork поставляется с готовыми к использованию плагинами для наиболее распространенных инструментов DevOps и оркестраторов.

Отчеты и информационные панели в реальном времени

Принимайте правильные решения с помощью мощных интерактивных панелей мониторинга и отчетов.Отчеты можно экспортировать и полностью настраивать с помощью параметров фильтрации и группировки.

Все документы

Тестовые случаи автоматически документируются видеозаписями, текстовыми журналами и отметками времени. Все действия и события записываются в журнал аудита. Воспроизведите и проверьте, чтобы быстро устранить неполадки.

Совместная работа по автоматизации тестирования

Командная работа — это лучшая совместная работа. Благодаря совместному использованию ресурсов проекта, простой передаче, ролям пользователей и профилям доступа вас или вашу команду не остановит.

Сохранение контроля над системами

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

Расширьте функциональность самостоятельно

Используя стандартные блоки C # и JavaScript, Leapwork позволяет при желании вставлять код в потоки автоматизации. Пойдите дальше с нашим полностью документированным общедоступным REST API.

Учебное пособие по Selenium — javatpoint

Учебник

Selenium предоставляет базовые и расширенные концепции Selenium.Наше руководство по Selenium предназначено для новичков и профессионалов.

Selenium — один из наиболее широко используемых наборов для автоматизации тестирования веб-интерфейса (пользовательского интерфейса) с открытым исходным кодом.

Наше руководство по Selenium включает в себя все темы Selenium, такие как функции, Selenium vs QTP, наборы инструментов Selenium, Selenium IDE, стратегии поиска Selenium IDE, Selenium WebDriver, функции WebDriver, WebDriver vs RC, установка WebDriver и т. Д.

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

Selenium — один из наиболее широко используемых наборов для автоматизации тестирования веб-интерфейса (пользовательского интерфейса) с открытым исходным кодом.Первоначально он был разработан Джейсоном Хаггинсом в 2004 году как внутренний инструмент Thought Works. Selenium поддерживает автоматизацию в разных браузерах, платформах и языках программирования.

Selenium можно легко развернуть на таких платформах, как Windows, Linux, Solaris и Macintosh. Кроме того, он поддерживает ОС (операционную систему) для мобильных приложений, таких как iOS, Windows Mobile и Android.

Selenium поддерживает множество языков программирования за счет использования драйверов, специфичных для каждого языка.Языки, поддерживаемые Selenium, включают C #, Java, Perl, PHP, Python и Ruby. В настоящее время драйвер Selenium Web наиболее популярен среди Java и C #. Сценарии тестирования Selenium могут быть написаны на любом из поддерживаемых языков программирования и могут быть запущены непосредственно в большинстве современных веб-браузеров. Браузеры, поддерживаемые Selenium, включают Internet Explorer, Mozilla Firefox, Google Chrome и Safari.

Selenium может использоваться для автоматизации функциональных тестов и может быть интегрирован с инструментами автоматизации тестирования, такими как Maven , Jenkins , и Docker для обеспечения непрерывного тестирования.Он также может быть интегрирован с такими инструментами, как TestNG и JUnit для управления тестовыми примерами и создания отчетов.


Селеновый индекс


Селен

Селен IDE

Учебное пособие по Selenium WebDriver

Учебное пособие по Selenium Python

Selenium C # Учебник

TestNG с селеном


Предварительные требования

Прежде чем изучать концепции Selenium, вы должны иметь базовые представления о java или любом другом объектно-ориентированном языке программирования.

Языки, поддерживаемые Selenium, включают C #, Java, Perl, PHP, Python и Ruby. В настоящее время Selenium Webdriver наиболее популярен среди Java и C #. Итак, если вы знаете какой-либо из языков, вам будет несложно понять концепции Selenium. Кроме того, у вас должны быть предварительные знания о методах тестирования программного обеспечения, таких как автоматическое тестирование, функциональное тестирование и т. Д.

Аудитория

Наше руководство по Selenium предназначено для всех начинающих и продвинутых пользователей Selenium.

Что такое тестирование на селен? Каковы различные компоненты селена?

Все мы знаем, что Software Testing является неотъемлемой частью SDLC, и иногда он включает в себя множество повторяющихся задач, повторяющих сценарии снова и снова. Теперь, чтобы уменьшить эти повторяющиеся усилия, тестировщикам программного обеспечения требуется помощь некоторых инструментов, которые позволят им автоматизировать эти повторяющиеся задачи. Один из замечательных наборов инструментов автоматизации — это Selenium , который предоставляет возможности для автоматизации действий пользователя в веб-приложении.Это зонтичный проект с открытым исходным кодом для ряда инструментов и библиотек, которые позволяют и поддерживают автоматизацию веб-браузеров. Давайте разберемся в этой статье во всех тонкостях Selenium Automation Testing , подробно рассмотрев следующие темы:

  • Что такое селен?
  • Каковы различные компоненты Selenium?
    • Selenium IDE
    • Selenium RC
    • Selenium WebDriver (Selenium 4)
    • Selenium Grid
  • Почему селен популярен?
    • Что может селен?
    • Чего не может Selenium?
  • Более того, каковы предпосылки для изучения Selenium?
  • Какой инструмент Selenium подходит вам?

Что такое тестирование на селен?

Как мы уже говорили, Selenium — это набор инструментов веб-автоматизации с открытым исходным кодом, который использует возможности веб-браузеров и помогает автоматизировать рабочие процессы взаимодействия пользователей с веб-приложением в браузере.Основная цель Selenium, как подчеркивается на веб-сайте Selenium , — « Selenium автоматизирует браузеры. Что вы будете делать с этой мощью, полностью зависит от вас». Даже с появлением новых инструментов и технологий Selenium по-прежнему лидирует в списке инструментов веб-автоматизации и автоматизации тестирования. Приведенный ниже опрос , проведенный Katalon , показывает популярность Selenium:

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

Как возник селен?

История Selenium восходит к началу 2000-х годов. Джейсон Хаггинс , инженер ThoughtWorks, создал модуль JavaScript. Его имя было JavaScriptTestRunner , для автоматизации внутреннего веб-сайта. Название Selenium происходит от шутки Хаггинса о том, что « вы можете вылечить отравление ртутью, принимая добавки селена». Несмотря на то, что это была просто шутка, когда они высмеивали конкурента по имени Mercury , других, получивших электронное письмо с шуткой, взяли имя и побежали с ним.На следующем рисунке показано развитие Selenium на протяжении многих лет:

Selenium4 все еще находится в бета-версии, и разработка все еще продолжается.

Каковы различные компоненты Selenium?

Как мы уже говорили выше, Selenium — это не просто инструмент автоматизации. Это набор инструментов, и каждый инструмент в наборе имеет определенные уникальные возможности, которые помогают в проектировании и разработке среды автоматизации.Все эти компоненты могут использоваться по отдельности или в паре друг с другом для достижения определенного уровня автоматизации тестирования.

На следующем рисунке показаны различные компоненты Selenium Suite :

Давайте разберемся со всеми этими компонентами более подробно:

Что такое Selenium IDE?

Selenium IDE — это расширение, доступное как для Firefox, так и для Chrome, в котором доступны функции записи и воспроизведения. Selenium IDE теперь также имеет возможность экспорта кода на различных предопределенных языках. Это также дает возможность использовать один тестовый пример внутри другого.

Что такое Selenium RC?

Selenium RC — это сервер, который действует как посредник между пользователем и браузером, которому необходимо взаимодействовать. RC использует Javascript для работы с браузерами, позволяя пользователям писать код на языке по своему выбору.Некоторое время это была основная версия Selenium. У Selenium RC были проблемы с политикой One Origin Policy , и она устарела в пользу WebDriver.

Что такое Selenium WebDriver?

Selenium WebDriver — наиболее часто используемый компонент Selenium. WebDriver позволяет пользователям писать собственный код на выбранном ими языке и взаимодействовать с выбранным браузером с помощью драйверов для конкретного браузера.WebDriver работает на уровне ОС и использует протокол под названием JSONWireProtocol для связи с браузерами.

Как показано выше, Selenium 2 было фактической реализацией слияния проекта WebDriver и RC . Функции WebDriver и RC были включены в версию 2 WebDriver и назывались Selenium 2 .

Selenium 3 был обновлением по сравнению с Selenium 2 во многих отношениях. Selenium 3 стал стандартом World Wide Web Consortium (W3C) . Selenium RC перемещен в устаревший пакет, и в него было добавлено множество улучшений и новых функций для удовлетворения меняющегося веб-ландшафта.

Более того, Selenium 4 является новым членом семейства ( selenium последней версии ) и все еще находится в стадии бета-тестирования для конечных пользователей.

Что такое Selenium Grid?

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

Почему селен популярен и для чего селен используется?

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

Кроме того, как мы уже обсуждали, набор инструментов Selenium , который включает в себя различные компоненты, такие как Selenium IDE, WebDriver, Grid, и т. Д., Доступен для автоматизации в различных браузерах, платформах и языках программирования . Selenium также поддерживает все основные операционные системы, такие как , macOS, Windows, Linux, , а также поддерживает мобильные операционные системы , такие как iOS, Android . На рисунке ниже показаны некоторые стандартные функции, которые объясняют популярность Selenium:

Помимо этого горизонта, давайте разберемся, на что способен Selenium?

Что может селен?

Selenium предоставляет множество возможностей, которые делают его одним из самых популярных инструментов автоматизации на рынке.Давайте кратко рассмотрим эти возможности:

  • Открытый исходный код — В отличие от таких инструментов, как QTP, Selenium имеет открытый исходный код, что означает, что установка и использование Selenium не требует дополнительных затрат. Selenium можно загрузить и использовать бесплатно.
  • Мимические действия пользователя — Почти все реальные действия пользователя, такие как нажатие кнопки, перетаскивание и выбор, флажки, нажатия клавиш, касания, прокрутка, можно автоматизировать с помощью Selenium.
  • Простая реализация — Selenium известен своей удобством в использовании.Пользователи могут разрабатывать собственные расширения для своего использования, поскольку код имеет открытый исходный код.
  • Поддержка языков — Наиболее значительным преимуществом Selenium является обширная поддержка различных языков. Selenium поддерживает максимальное количество языков программирования, таких как Java, Python, JavaScript, C #, Ruby, Perl, Haskell, Go и другие.
  • Поддержка браузера — Selenium может работать со всеми доступными поставщиками браузеров. Selenium поддерживает Chrome, Firefox, Edge, Internet Explorer, Safari.
  • Поддержка ОС — привязки Selenium доступны для всех основных ОС, таких как Linux, macOS, Windows.
  • Поддержка фреймворка — Selenium поддерживает несколько фреймворков, таких как Maven, TestNG, PYTest, NUnit, Mocha, Jasmine и т. Д. Selenium хорошо интегрируется с инструментами CI, такими как Jenkins, Circle CI, GOCD, Travis CI, Gitlab и т. Д.
  • Возможность повторного использования кода — Скрипты, написанные для Selenium, кроссбраузерны.Один и тот же код может быть запущен для нескольких браузеров с использованием соответствующих двоичных файлов браузера и на отдельных машинах в конфигурации Grid,
  • Поддержка сообщества — Поскольку над этим инструментом работает много QA, легко найти ресурсы, учебные пособия а также поддержку в таких сообществах, как Github, StackOverflow и т. д.

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

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

Что не может Selenium?

Хотя Selenium может помочь в автоматизации многих действий пользователя, он также имеет определенные ограничения.Некоторые из них:

  • Нет поддержки для автоматизации собственных настольных приложений — Selenium можно использовать для автоматизации веб-приложений, запускаемых в веб-браузерах. Однако он не может автоматизировать настольные приложения.
  • Нет поддержки утверждений и действительности — Selenium обеспечивает управление браузером; однако предоставление утверждений и механизмов проверки в Selenium не предусмотрено. Selenium необходимо соединить с фреймворком для тестирования, таким как JUnit, TestNG, PyTest и т. Д.для утверждений.
  • Нет поддержки для сканирования изображений и кода — Автоматизация сценариев сканирования кода, таких как считывание штрих-кода, CAPTCHA, невозможна с использованием Selenium.
  • Нет поддержки тестирования API — Selenium имитирует действия пользователя в браузере. Таким образом, Selenium не дает возможности тестирования API.
  • Нет поддержки для тестирования производительности — Selenium не может выполнять проверки производительности или тестирование производительности веб-приложений.
  • Нет встроенной отчетности — Возможность создания отчетов также не предоставляется Selenium. Так сказать; Отчетность может быть сделана только в паре с такой платформой, как JUnit, TestNG.

Каковы предпосылки для изучения Selenium?

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

  • Пользователь знает основы ручного тестирования
  • Базовые знания программирования на языке программирования, поддерживаемом Selenium.
  • Пользователь имеет базовые знания HTML, CSS.
  • Кроме того, они обладают базовыми знаниями XML и JSON.
  • Более того, они знают DOM и идентифицируют веб-элемент с помощью локатора в DOM.

Однако знать обо всем этом необязательно. ToolsQA специально разработал учебник Selenium , который новичок может быстро освоить и изучить автоматизацию. С помощью этих руководств по Selenium WebDriver вы сможете начать свое путешествие по тестированию Selenium.Фактически, если вы хотите, чтобы вас называли Selenium Professional, мы рекомендуем вам также пройти сертификацию Selenium .

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

Какой инструмент тестирования Selenium соответствует вашим потребностям?

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

  • Selenium IDE
    • Если вы хотите узнать об автоматизации тестирования и Selenium.
    • Если у вас мало или совсем нет опыта в автоматизации тестирования.
    • Если вы хотите написать простые тестовые примеры и экспортировать их позже для RC или WebDriver.
    • Если вы хотите выполнить настроенный код JavaScript с помощью runScript
    • Если вы хотите экспортировать сценарий на разных языках.
    • Если вы хотите настроить таргетинг на Chrome и Firefox для тестирования.
  • Selenium RC
    • Если вы хотите писать тестовые примеры на более выразительном языке, чем IDE.
    • Если вы хотите протестировать приложение в новом браузере, поддерживающем JavaScript.
    • Или, если вы хотите протестировать приложение, тяжелое для AJAX.
  • Selenium WebDriver
    • Если вы хотите использовать определенный язык программирования для ваших тестов автоматизации.
    • Если вы хотите протестировать приложения на разных платформах с помощью Selenium Grid
    • Или, если вы хотите протестировать приложения в CI / CD.
    • Если вы хотите тестировать приложения и создавать настраиваемые отчеты в формате HTML.
    • Если вы хотите протестировать современные динамические веб-сайты с большим объемом данных.
  • Selenium GRID
    • Если вы хотите запускать тесты автоматизации в разных браузерах и операционных системах одновременно.
    • Если вы хотите запустить обширный набор тестов и хотите минимизировать время выполнения.

Ключевые выводы

  • Selenium — это универсальный инструмент веб-автоматизации, который удовлетворяет важные потребности автоматизации веб-приложений.
  • Кроме того, Selenium — это набор инструментов, который состоит из различных компонентов — IDE, RC, WebDriver, GRID.
  • Selenium WebDriver — самый популярный инструмент из пакета Selenium.
  • В дополнение к вышесказанному, основная причина популярности Selenium связана с его широким охватом и поддержкой различных ОС, языков программирования и веб-браузеров.

К настоящему времени мы все должны иметь четкое представление об основах тестирования на селен . Перейдем к следующей статье, где мы узнаем подробности о « Selenium WebDriver».

Почему селен является наиболее широко используемым средством автоматизации тестирования?

Гибкая адаптация процесса в процессе разработки программного обеспечения ускоряет общее время разработки программного обеспечения, время доставки (TTD), время вывода на рынок (TTM) и, в конечном итоге, снижает затраты на разработку.Для обеспечения качества и эффективности процесса тестирования резко возросла потребность в средствах автоматизации тестирования. Из множества доступных инструментов автоматизации тестирования Selenium является одним из наиболее широко используемых для тестирования веб-приложений.

Selenium — это переносимая среда тестирования веб-приложений с открытым исходным кодом. Фреймворк Selenium использует язык тестовой области по умолчанию как « Selenese » для написания тестовых скриптов, он также поддерживает тестировщиков при написании тестовых скриптов.Эта структура состоит из разнообразного стека инструментов автоматизации тестирования программного обеспечения, каждый из которых имеет различную функциональность, которая зависит от приложения или проекта. Набор тестов Selenium состоит из:

  • Selenium WebDriver
  • Selenium RC или пульт дистанционного управления
  • Селен IDE
  • Селеновая сетка

Как указано в руководстве по официальным источникам Selenium, вот список платформ и браузеров, поддерживаемых Selenium:

  • Google Chrome
  • Internet Explorer 7, 8, 9, 10 и 11 в соответствующих комбинациях Vista, Windows 7, Windows 8 и Windows 8.1. IE 6 больше не поддерживается. Драйвер поддерживает работу 32-битной и 64-битной версий браузера, где это возможно.
  • Firefox
  • Safari
  • Opera
  • HtmlUnit
  • фантомJS
  • Android (с Selendroid или appium)
  • iOS (с ios-драйвером или appium)

Глобальный рынок автоматизации тестирования вырастет со среднегодовым темпом роста 15,4% в период с 2017 по 2025 год и достигнет 109,69 млрд долларов США к 2025 году с 30,45 млрд долларов США в 2016 году.«

Отчет Transparency Market Research

Selenium поощряет тестировщиков писать скрипт для написания скрипта на одном языке программирования и запускать (повторно использовать) одни и те же тестовые скрипты на нескольких браузерных платформах. WebDriver становится частью стандарта W3C для всех браузеров и, таким образом, разрабатывает браузеры, которые будут автоматически поддерживать Selenium. Интересным аспектом этого инструмента автоматизации тестирования является то, что он использует тестировщиков для тестирования модулей пользовательского интерфейса, предлагает большой набор параметров для тестирования, сравнения результатов и, наконец, проверки, соответствуют ли они ожидаемому поведению приложения или нет.Метод «SENDKEYS» селена переводит тестовые сценарии, написанные на разных языках, в понятный для Selenium язык.

Несмотря на то, что Selenium предлагает множество преимуществ, вот некоторые из основных преимуществ, которые дает Selenium:

  • Прозрачность: Обеспечивает гибкость и прозрачность межфункциональных команд процесса SDLC (разработчиков, отдела контроля качества, операций, клиентов и руководства).

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

  • Стимулирует усилия по непрерывной интеграции: Непрерывная интеграция и непрерывная доставка — современные гибкие инструменты, способствующие процессу разработки программного обеспечения. Selenium за счет автоматизации всего процесса тестирования может выступать в качестве катализатора в усилиях организаций по успешному внедрению практики непрерывной интеграции (CI).(Узнайте, как CI может сэкономить усилия по обеспечению качества, здесь )

  • Интеграция с другими инструментами : Selenium с Java известен как остальные доступные jar-файлы, такие как ExtentReports, Sikuli, Appium и т. Д. Инструмент Selenium предоставляет тестировщикам возможность интегрироваться с этими банками и расширять его функциональные возможности до новых рубежей:

  1. Интеграция

    Selenium с ExtentReports позволяет создавать графики и отчеты, которые могут использоваться для предоставления клиентам более глубокого понимания статуса тестирования.

  2. Интеграция Selenium с «Sikuli» позволяет тестировать веб-приложения, включающие видео и изображения.

  3. Тестирование веб-приложений на платформах Android или iOS может быть достигнуто путем интеграции Selenium с Appium.

Выбор правильного средства тестирования автоматизации — ключ к успеху предприятия. Итак, если вы ищете помощи или не знаете, что вам больше всего подходит? Свяжитесь с Независимым центром тестирования передового опыта (TCoE) нашего V-Soft, чтобы получить бесплатные консультации экспертов.


SriRam зарекомендовал себя в создании нескольких центров передового опыта тестирования (TCoE) для клиентов в Северной Америке, Европе и на Карибских островах. Он ездил в Канаду и Вест-Индию, чтобы поддержать своих клиентов, а также работал в Индии. В настоящее время он проживает и работает в штаб-квартире V-Soft в Луисвилле, штат Кентукки. Последние 17 лет он проработал в сфере ИТ-услуг в крупных международных организациях. Опыт работы Шри Рама варьируется от небольших стартапов до крупных организаций с многомиллиардными доходами.Помощь SriRam в создании и руководстве практикой обеспечения качества в V-Soft позволила им предоставлять клиентам более выгодные решения. Он также помог позиционировать V-Soft как лидера рынка в индустрии независимого QA CoE с проверенными инновационными внутренними возможностями за счет усиления существующих основных процессов в области QA.

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

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

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

1. CAPTCHA

CAPTCHA — это сокращение от «Полностью автоматизированный общедоступный тест Тьюринга, позволяющий отличить компьютеры от людей». Он существует для предотвращения автоматизации, поэтому даже не стоит пытаться. В противном случае это не будет CAPTCHA, потому что он не сможет отличить людей от компьютеров.

Существуют две основные стратегии обхода проверок CAPTCHA во время тестирования.Вот они:

  • Отключите CAPTCHA в тестовой среде. Это может быть простая конфигурация тестируемого программного обеспечения. Или это может быть даже параметр URL, который задает тест.
  • Добавьте ловушку, позволяющую тестам обходить CAPTCHA.

2. Визуальное тестирование

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

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

И вот простой код, чтобы это произошло:

3. Двухфакторная аутентификация

Другой сценарий, который вы не должны автоматизировать с помощью пользовательского интерфейса, — два -факторная аутентификация (или 2FA). Здесь одноразовый пароль генерируется с помощью мобильных приложений-«аутентификаторов», таких как Google Authenticator или Microsoft Authenticator, и отправляется по SMS или электронной почте.

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

Три варианта обхода проверок двухфакторной аутентификации:

  1. Отключить двухфакторную аутентификацию для определенных пользователей в тестовой среде, чтобы вы могли использовать эти учетные данные для автоматизации.
  2. Отключите 2FA в тестовой среде.
  3. Отключите 2FA, если вы входите с определенных IP-адресов.(Таким образом, вы можете настроить IP-адреса тестовой машины, чтобы избежать этого.)

4. Загрузки файлов

Автоматизировать загрузку файлов через пользовательский интерфейс не совсем идеально, поскольку API не показывает ход загрузки. Загрузка файлов не считается важным аспектом имитации взаимодействия пользователя с веб-платформой.

Таким образом, вам следует подумать о том, чтобы завершить этот обходной путь: найдите ссылку с помощью Selenium вместе со всеми необходимыми файлами cookie и передайте ее в библиотеку HTTP-запросов, такую ​​как REST Assured (Java), fetch (JavaScript) или libcurl (cross- Платформа).

5. Коды ответа HTTP

Коды состояния HTTP — это стандартные коды ответов, предоставляемые серверами веб-сайтов в Интернете. Коды помогают определить причину проблемы, когда веб-страница или другой ресурс не загружается должным образом. В автоматизированном функциональном тестировании проверка кода состояния не является особенно важной деталью сбоя теста; шаги, которые предшествовали этому, более важны.

Тестирование API лучше проводить на этом уровне. WebDriver не является инструментом тестирования API.Следовательно, вы можете использовать такие библиотеки, как REST Assured (Java), fetch (JavaScript) и RestSharp (.NET)

6. Логины Gmail, электронной почты и Facebook

Другой сценарий, в котором автоматизация через пользовательский интерфейс не следует выполнять, — Gmail. , электронная почта и вход в Facebook. Не рекомендуется использовать WebDriver для входа на сайты такого типа. Это противоречит условиям использования, работает медленно и ненадежно.

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

Вместо этого лучше использовать API-интерфейсы, предлагаемые поставщиками электронной почты, или, в случае Facebook, службу инструментов разработчика, которая предоставляет API для создания тестовых учетных записей. (API Gmail здесь.)

Использование API может показаться сложной работой, но вы получите вознаграждение за скорость, надежность и стабильность. API тоже вряд ли изменится. Однако веб-страницы и локаторы HTML часто меняются и требуют обновления вашей тестовой среды.

7. Тестирование производительности

Тестирование производительности с использованием Selenium и WebDriver обычно не рекомендуется, потому что оно не оптимизировано для работы, и вы вряд ли получите достойные результаты. Тесты WebDriver подвержены множеству факторов внешней и внутренней уязвимости, которые вам не подвластны.

К ним относятся скорость запуска браузера, скорость HTTP-серверов, ответ сторонних серверов, на которых размещен JavaScript или CSS, и штраф за инструментарий самой реализации WebDriver, и это лишь некоторые из них.Это приведет к вариациям в ваших результатах. Вы получите более медленный тест производительности, который включает внутреннюю и внешнюю производительность.

Вместо этого используйте бесплатный инструмент, например Google Lighthouse, для повышения производительности внешнего интерфейса. Затем выполните отдельный тест для нагрузочного или стресс-тестирования с помощью бесплатного инструмента, такого как Apache JMeter.

Чтобы узнать, что нужно улучшить, вам необходимо уметь анализировать общую производительность независимо от различий в среде, выявлять неэффективные методы кода и разбивать производительность отдельных ресурсов (т.е., CSS или JavaScript).

8. Спайдер ссылок

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

Кроме того, написание логики перехода по страницам и захвата ссылок — это просто пустая трата времени.

Вместо использования WebDriver есть гораздо более простые методы. Быстрый поиск показывает эти два бесплатных инструмента:

9. Потоковое видео

Потоковое видео становится все более популярным в наши дни, но вы, возможно, не захотите автоматизировать его с помощью пользовательского интерфейса. Чаще всего Selenium не может распознавать элементы управления видео. JavaScript Executor и flex-ui-selenium в некоторой степени будут работать, но они не совсем надежны.

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

10. Восстановление после сбоя

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

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

Используйте альтернативные тесты для этих ситуаций.

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

Хотя в некоторых случаях есть обходные пути, всегда разумно рассмотреть причины, по которым эти конкретные элементы не следует автоматизировать в первую очередь.

Примечание. Если вы хотите узнать больше об автоматизации тестирования с помощью WebDriver, я также преподаю курс «Полный Selenium WebDriver с Java Bootcamp».

Продолжайте учиться

Как проводить тестирование пользовательского интерфейса с помощью Selenium

Цель этой статьи — предоставить вам широкий обзор веб-приложений для тестирования пользовательского интерфейса с помощью Selenium и его связи с OutSystems.

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

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

Использование Selenium для тестирования пользовательского интерфейса ваших приложений

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

Как указано на веб-сайте SeleniumHQ, есть две основные подтехнологии, которые следует учитывать в зависимости от того, что вам нужно.

Selenium IDE — это интегрированная среда разработки для Selenium, реализованная как расширение Firefox, которое позволяет записывать, редактировать и воспроизводить закодированные в HTML сценарии, имитирующие взаимодействие пользователя с веб-приложением. Это здорово для вас, чтобы быстро разработать и сохранить общие взаимодействия, которые вы хотите повторить в будущем (например: для сценариев частых операций администрирования).

Selenium WebDriver позволяет решать более сложные сценарии, когда есть необходимость в полностью автоматизированных тестах пользовательского интерфейса (например, автоматические регрессионные тесты) и / или распараллеливать их выполнение в разных браузерах (Selenium Grid). API WebDriver позволяет разрабатывать тесты пользовательского интерфейса с помощью распространенных объектно-ориентированных языков программирования, таких как Java, C #, Javascript (Node) и т. Д., Преодолевая некоторые ограничения тестирования на основе сценариев Selenium IDE, а также обеспечивая более эффективные инструменты. из протестированных браузеров.Обратите внимание, что WebDriver был создан как преемник Selenium RC, который позволял запускать сценарии в стиле Selenium IDE для той же цели и больше не рекомендуется.

Используете ли вы IDE или WebDriver, все зависит от вас и ваших конкретных потребностей в автоматизации. Если вы хотите получить более подробную информацию об этих технологиях, мы рекомендуем вам обратиться к обширной документации Selenium. Вот некоторые другие ресурсы, которые также могут оказаться полезными:

Создание теста Selenium

Самый простой способ начать изучение Selenium — это использовать IDE, поэтому мы будем использовать ее, чтобы проиллюстрировать, что мы нашли наилучшие способы использования этой технологии с OutSystems.

Вы можете получить подключаемый модуль Selenium IDE для Firefox на соответствующей странице загрузки. Следуйте этому документу, чтобы установить и настроить IDE, а также изучить некоторые основы языка. Хотя можно написать тестовые сценарии вручную с помощью текстового редактора, этот метод лучше всего оставить для внесения изменений и дополнений в записанный сценарий. Мы обнаружили, что проще всего выполнить следующие шаги.

1. Запись

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

2. Отрегулируйте локаторы

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

Это та область, где особенности платформы имеют большее значение. Следующий основной раздел этого документа предоставит вам стратегии по настройке OutSystems Apps для поиска веб-элементов в Selenium.

3. Обеспечить синхронизацию

Добавьте необходимые команды для обеспечения синхронизации скрипта с элементами страницы.

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

В Selenium IDE это обычно означает изменение событий «клик», которые не ждут завершения загрузки страницы, на события «clickAndWait». Вам также может потребоваться включить команды «waitFor», которые будут приостанавливать выполнение сценария до тех пор, пока не станет видимым определенный элемент, что имеет решающее значение для объектов, созданных с помощью javascript или действия Ajax после загрузки страницы. Вы можете узнать больше об этих командах, связанных с синхронизацией, в документации Selenium.

4. Добавьте подтверждения

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

Вы можете проверить документацию Selenium по этой теме для получения дополнительной информации о доступных командах.

5. Экспорт в WebDriver

Если вы хотите создать тесты WebDriver для автоматизации, вы можете выбрать экспорт сценария в виде файла кода WebDriver (на C #, Java или Ruby) с опцией экспорта Selenium IDE. Это даст вам отправную точку для разработки ваших классов WebDriver.

Локаторы элементов комплектации

Независимо от того, используете ли вы Selenium IDE или веб-драйвер, существует несколько стратегий поиска, которые вы можете использовать в Selenium, которые описаны здесь.

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

Платформа генерирует атрибуты HTML id динамически в зависимости от контента, который определяется для отправки клиенту / браузеру при каждом запросе, на основе ваших бизнес-правил или условий экрана.Атрибуты id очень подвержены изменениям: при изменении приложения, если вы решите провести рефакторинг своего пользовательского интерфейса (например, включить его в блок для повторного использования на других экранах) или когда платформа изменит свой сгенерированный код (который может произойти между новыми версиями платформы), поэтому они не подходят для селекторов тестов на селен.

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

  • Если ваша команда работает со ссылкой , и на экране есть только одна ссылка с этим текстом, используйте локатор ссылки с текстом ссылки;

  • Если ваша команда работает с входами или другими уникальными виджетами на вашем веб-экране, используйте селектор CSS вместе с именем пользовательского стиля в виджете;

  • Если у вас есть повторяющиеся элементы на одной странице (например, виджеты внутри таблиц и записей списка), используйте пользовательский идентификатор , содержащий номер строки в своем значении, и найдите его с помощью селектора CSS;

В следующих разделах будут продемонстрированы приведенные выше рекомендации с конкретными сценариями.

Простые локаторы

Давайте рассмотрим простой пример сценария в Selenium IDE при взаимодействии с приложением Directory из OutSystems Forge.

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

Как вы можете видеть на картинке выше, Selenium IDE использовала идентификатор ссылки для «Charlotte Y Anderson» для поиска ссылки во время сеанса записи.Как мы уже отметили, у этого есть несколько недостатков. Вместо этого мы можем использовать локатор ссылок и использовать текст ссылки, поскольку он уникален в данном конкретном веб-экране.

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

Селекторы CSS

Давайте возьмем предыдущий пример и изменим сценарий: теперь мы хотим вставить учетные данные для пользователя «admin», а затем нажать кнопку «Войти».

И снова Selenium IDE выводила идентификаторы входов и кнопку входа в систему в качестве указателей. В этой ситуации при работе с кнопками и входами нельзя использовать указатель «ссылки» из предыдущего раздела.

Это сценарий, в котором становится полезным использовать локаторы, которые больше приспособлены к структуре страницы. Двумя наиболее популярными из них являются XPath и CSS, и вы можете найти несколько онлайн-дискуссий о том, какой из них лучший.

Мы предпочитаем использовать CSS-селекторы , потому что наш опыт показал нам, что они не только легче читаются, но и работают быстрее при использовании в разных браузерах.Есть несколько онлайн-источников, где вы можете узнать об использовании этих стандартизованных селекторов, таких как CSS Selector Reference и этот набор примеров для Selenium.

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

Возвращаясь к текущей задаче, мы обычно используем «фиктивные» стили CSS во входах и кнопках, чтобы их было легко найти. Мы можем перейти в Service Studio и добавить собственный «стиль» для каждой кнопки и ввода.

Как вы можете видеть на изображении выше, мы добавили фиктивный стиль «SeleniumUsernameInput», который даже не нужно определять в таблице стилей CSS модуля. Нам просто нужно, чтобы он выводился в HTML-элементе ввода после того, как мы опубликовали eSpace (вы можете проверить его наличие с помощью инструмента инспектора, такого как Firebug).

Затем мы можем использовать селекторы CSS в нашем скрипте для поиска входов и кнопок с помощью новых фиктивных стилей: "** css =. **" :

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

Таблицы и списки — с использованием индивидуальных идентификаторов

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

Возвращаясь к примеру с приложением Directory, предположим, что после входа в систему мы хотим, чтобы сценарий Selenium расширял сведения о сотруднике Андреа Маккарти.

Регистратор Selenium IDE

снова создает указатель щелчка по ссылке на основе идентификатора веб-элемента. Использование фиктивного стиля CSS в ссылке не сработает, потому что в списке есть несколько ссылок, которые будут использовать один и тот же стиль.

Однако установка индивидуального идентификатора в Service Studio для имени сотрудника решит эту проблему.

Мы создаем расширенное свойство data-seleniumid, которое затем выводится как настраиваемый тег с тем же именем в элементе HTML на странице. Значение определяется выражением, содержащим «Человек» с суффиксом номера строки в записях таблицы.

На получившейся веб-странице мы можем использовать Firefox, чтобы проверить элемент и убедиться, что элемент для Андреа Маккарти содержит тег «seleniumid =’ Person3 ’».Все похожие элементы будут иметь другой номер в значении (мы могли бы использовать что-то другое в качестве значения, например: имя сотрудника).

Наконец, мы исправляем сценарий Selenium IDE, чтобы он использовал селектор CSS с пользовательским идентификатором.

Локатор «css = span [seleniumid =» Person3 «]» будет искать диапазон, содержащий пользовательский идентификатор селена. Таким образом, мы можем находить элементы внутри таблицы и перечислять записи, используя идентификаторы, полностью контролируемые нами, что является более надежным доказательством в будущем.

Лучшие практики и советы

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

Всегда избегайте пауз

Иногда мы создаем шаг в тесте браузера, на котором мы должны ждать, пока что-то произойдет (например, появится всплывающее окно). Любой ценой избегайте использования «паузы» в таких ситуациях. Это не только замедлит тест для случая по умолчанию, но и сделает ваш тест более ненадежным — если ваш сервер по какой-то причине работает медленно, времени ожидания будет недостаточно.

Вместо этого используйте активное «ожидание», например waitForTextPresent или waitForElementPresent (в сценариях Selenium IDE). Помните, что вы всегда можете использовать собственные стили или идентификаторы CSS, чтобы упростить поиск определенного элемента, который вы ждете.

Точная настройка селекторов CSS

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

Мы обнаружили, что отличный способ отладить селекторы CSS и убедиться, что они ссылаются на то, что нам нужно, — это использовать инструменты разработчика из браузера Google Chrome. Просто нажмите F12, чтобы вызвать DevTools, откройте вкладку «Элементы» и нажмите CTRL + F для поиска в HTML — вы можете использовать селекторы CSS в поиске, и Chrome выделит то, что вы находите на странице.

Поиск по исходному коду страницы (Selenium IDE)

Иногда полезно заглянуть в сгенерированный исходный код веб-страницы, например, чтобы проверить, был ли включен конкретный код javascript.Для этого используйте команду verifyNotEval.

Использование утверждений для остановки тестов в случае сбоя (Selenium IDE)

Иногда мы запускаем сценарий и желаем, чтобы в случае сбоя одной из команд выполнение сценария полностью прекращалось. Для этого вы можете использовать команды assert. Вот несколько примеров:

  • При использовании waitForTextPresent поместите после него assertTextPresent с тем же условием. Если утверждение не выполняется, скрипт перестанет обрабатываться.

  • Вместо использования «verifyTextPresent» используйте «assertTextPresent» для той же проверки и остановки сценария в случае сбоя.

Использование переменных в вашем скрипте (Selenium IDE)

Чтобы сохранить значение в переменной внутри сценария селена, вы должны использовать команду store . Затем переменные можно получить, используя форму «$ {VariableName}» в обычных аргументах команды или используя объект «storedVars [‘ VariableName ’]» во встроенных аргументах javascript.Вы можете узнать больше об этой теме в этой онлайн-статье.

Когда сценарии Selenium IDE начинают расти в размерах, их становится трудно читать. Отличный способ гарантировать, что они будут лучше поняты в будущем, — это включить комментарии, чтобы предоставить информацию о том, что делается.

Вы можете вручную добавлять комментарии к сценариям Selenium прямо в их исходный код с помощью обычных комментариев HTML.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *