Установка

Установка selenium ide: Selenium IDE — что это, как установить и использовать

Содержание

Selenium IDE — что это, как установить и использовать

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

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

Например, как узнать, что в вашем интернет-магазине исправно работает оформления заказа? Нужно зайти в карточку какого-либо товара, положить его в корзину, перейти на страницу оформления заказа, заполнить данные заказа (фио, телефон, адрес, e-mail и тд), нажать кнопку «Оформить заказ», убедиться, что заказ оформлен. В следующий раз, чтоб проверить тот же сценарий, вам придется проделать эти действия снова. Но на самом деле, вам можно сделать это всего один раз, а Selenium IDE даcт возможность многократно повторить эти действия в автоматическом режиме.

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

Мы задумались об использовании Selenium IDE при разработке одного из наших проектов, когда проверки типа «а ничего ли не поломалось в других местах?» стали очень трудоемкими. Представьте, что на проекте добавление нового функционала может повлиять на отображение блоков информации на пяти разных типах страниц и вам нужно быть уверенными, что они по-прежнему работают так, как и раньше. Можете представить сколько времени занимал бы переход на каждую из пяти видов страниц, совершения там необходимых действий и проверки все ли исправно. Мы решили возложить эту ношу на автоматический тест!

После создания автотеста работа по проверке, которая вручную выполнялась минимум за 10-15 минут, теперь выполнялась только 60 секунд. Вот как выглядит запуск такого автотеста — вы нажимаете одну кнопку и Selenium IDE выполняет тест кейсы проверяя работоспособность сайта:

Установка Selenium IDE

Установка Selenium IDE занимает пол минуты. Напомним, что Selenium IDE — плагин для браузера Firefox. По этому для его установки нужно перейти по ссылке для скачивания плагина используя браузер Firefox — http://docs.seleniumhq.org/download/

В документации написано, что после перехода на страницу скачивания — браузер сам предложит установить плагин и попросит разрешения. Если же такого не произошло, то нужно проскроллить страницу до подзаголовка «Selenium IDE» и нажать на ссылку, следующую за словами «Download latest released version»

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

У вас появится новая иконка в правом углу панели браузера.

Если на нее кликнуть — выведется окно Selenium IDE. Поздравляем, плагин установлен!

Пример создания Test Suite и Test Case

Теперь разберемся как работать с Selenium IDE на базовых примерах. Возьмем сайт компании E-PAGES и допустим, что нам нужно постоянно контролировать две вещи:

  • что на странице контактов отображается правильный телефон
  • на странице услуг посетители могут видеть услугу создания интернет-магазина

Давайте приступим к написанию автотестов для этих задач!

Откройте окно Selenium IDE в браузере нажав на его иконку в панели. Вы должны увидеть такое окно:


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

Начнем с проверки телефона. В поле Base URL впишите адрес тестируемого сайта — http://epages.su, а также перейдите в браузер и откройте сайт во вкладке Firefox. В данный момент Selenium IDE записывает все наши действия с сайтом. Об этом свидетельствует активированная красная кнопка записи в правом углу окна. Перейдите в окно с сайтом и кликните на пункт меню «Контакты». Selenium IDE запишет эти действия:

Если мы запустим этот тест кейс, то он автоматически перейдет на сайт epages.su и потом перейдет на страницу контактов. Половина задачи сделана, осталось добавить проверку на наличие номера телефона. Для этого нужно выделить пустую строку в области, где появились записи перехода по страницам и заполнить два поля Command и Target. В поле Command нужно вызвать функцию assertElementPresent, которая проверят есть ли искомый элемент на странице. А в поле Target нужно указать этот искомый элемент. Для этого нужно нажать на кнопку Select справа от поля, перейти на страницу сайта и выбрать мышкой номер телефона. После этих действий ваше окно должно выглядеть так:

Настало время проверить как работает этот тест кейс. Нажмите зеленую стрелку Play с тремя зелеными прямоугольниками. Эта кнопка запускает по очереди все тест кейсы в текущем наборе (Test Suite’е). Все строки нашего тест кейса должны окраситься в зеленый цвет, что означает, что наш тест успешно перешел на сайт E-PAGES, нашел там страницу контактов и правильный номер телефона на ней!

Отлично, мы теперь можем быть уверенными, что на сайте отображается правильный номер телефона. Давайте сохраним наши наработки — нажмите Ctrl+S и сохраните файл тест кейса в отдельную папку. Старайтесь давать осмысленные названия файлам — так будет легче понять что именно они тестируют.

Перейдем к проверке нужной услуги создания интернет-магазина на странице «Услуги». Для этого создадим новый тест кейс — кликните правой кнопкой миши под существующим тест кейсом и выберите «New Test Case». Перейдите на главную страницу сайта. Затем в окне IDE включите запись действий нажав на красную кнопку справа вверху. Перейдите на страницу «Услуги» — Selenium IDE запишет эти действия, как и в первый раз. Теперь нам нужно проверить присутствуют ли на странице слова «Создание интернет-магазина». Для этого выделите пустую строку под последним записанным действием и заполните поля ниже такими данными:
Command — assertText
Target — css=div.service-list
Value — glob:*Создание интернет-магазина*

У вас должно получиться пирмерно так:

Запустим наши тест кейсы кнопкой Play и убедимся, что они успешно проходят — новый тест кейс переходит на страницу услуг и проверяет выведена ли там услуга создания интернет-магазина. Теперь сохраним второй тест кейс рядом с первым нажав кнопки Ctrl+S. Теперь у нас два тест кейса в разных файлах — пора объединить их в один Test Suite. Для этого нужно нажать Меню Файл — Save Test Suite. Сохранять его нужно рядом с тест кейсами в одной папке. Теперь при открытии нового окна Selenium IDE можно нажать Меню Файл — Open Test Suite и выбрать последний сохраненный файл — откроется сразу две тест кейса. Позже в этот Test Suite можно будет добавть следующие тест кейсы, которые будут тестировать другой функционал вашего сайта.

Заключение

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

Обзор и практическое руководство по Katalon Recorder (Selenium IDE++ для Chrome и Firefox) / Хабр

Когда Firefox, начиная с версии Firefox 55, перестал поддерживать Selenium IDE, миллионы тестировщиков и разработчиков столкнулись с тем, что привычный ход работы по автоматизированному тестированию был нарушен, что вызвало среди них немалое беспокойство. К счастью, разработки в данной области продолжились, и не так давно команда Katalon представила Katalon Recorder – инструмент, который был разработан как альтернатива Selenium IDE.

Katalon Recorder поддерживается последними версиями Firefox и Chrome (также будет поддерживаться их последующими версиями) и может быть добавлен в качестве расширения для этих браузеров. Данный инструмент является отличной и бесплатной альтернативой Selenium IDE, а также другим подобным фреймворкам с открытым исходным кодом.

Katalon Recorder – это удобный и мощный инструмент, поддерживающий возможность записи тестовых сценариев, в котором основные функции Selenium IDE были портрированы для Chrome и Firefox.

Сравнение Selenium IDE и Katalon Recorder

На представленном ниже изображении видно, что все основные функции Selenium IDE также доступны для Katalon Recorder.

Фактически, Katalon Recorder поддерживает два дополнительных фреймворка: Robot Framework и Katalon Studio. Кроме того, данный инструмент совместим с языком программирования Groovy.

Katalon Recorder является отличным помощником для разработчиков, чья работа в значительной мере зависит от Selenium IDE. Он имеет мощную интегрированную среду разработки для записи, отладки и воспроизведения тестовых сценариев в браузере Chrome и Firefox.

Установка Katalon Recorder

Ниже приведены ссылки для скачивания Katalon Automation Recorder для Chrome и Firefox:
Chrome Web Store
Firefox Add-on Store

Данный инструмент достаточно просто установить. Ниже описаны шаги, как это сделать:

Нажмите кнопку «Add to Firefox» (Добавить в Firefox), как это показано на приведенном выше изображении, и в скором времени Katalon Recorder появится на панели инструментов браузера Firefox (установка длится не более 10 секунд).

Выглядит это следующим образом:

Короткое представление

Нажмите кнопку «New» (Создать) и укажите имя нового тестового случая в диалоговом окне. Затем, нажмите «ОК».

Нажмите кнопку «Add» (Добавить) и введите команду, которую вы хотите выполнить:

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

Таким же образом выполните следующие команды для завершения тестового случая.

После завершения выполнения команды нажмите кнопку «Play» (Воспроизвести) для запуска тестового случая.

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

Основные функции

1) С помощью данного инструмента вы можете захватить необходимые элементы веб-приложения и записать выполняемые с ними действия. Вы можете создавать новые тестовые случаи, редактировать существующие, а также воспроизводить автоматические тестовые случаи. Katalon Recorder позволяет выполнять все эти действия легко и быстро.

2) Все поддерживаемые Selenese функции доступны в Katalon Recorder

3) Тестовые сценарии для Selenium IDE могут быть импортированы в Katalon Recorder (в скриптовом режиме) и экспортированы для приведенных ниже языков программирования и фреймворков.


4) Katalon Recorder поддерживается последними версиями Firefox и Chrome.

5) Данный инструмент работает на ядре Selenium 3.

6) Несколько тестовых случаев могут быть объединены в один тестовый набор. Такие объединенные тестовые случаи будут выполняться в виде полного тестового набора.

7) Тестовые случаи могут быть импортированы в Katalon Studio – полностью бесплатный инструмент для автоматизации тестирования, поддерживающий key-driven- и data-driven-подходы, TDD/BDD-тестирование, тестирование API, а также включающий такие возможности как: применение паттерна Page Object Model, управление и запись процесса тестирования, написание расширенных скриптов, параллельное выполнение, выполнение CI-интеграции и многие другие возможности!

8) Katalon Recorder позволяет записывать и воспроизводить автоматизированные тестовые сценарии не только пользователям Katalon Studio, но и тем, кто пользуется устаревшей версией Selenium IDE и другими популярными фреймворками с открытым исходным кодом.

Детальное описание основных функций

1) Панель инструментов. Панель инструментов состоит из 6 кнопок: «New» (Создать), «Record» (Запись), «Play» (Воспроизвести), «Export» (Экспортировать), «Help» (Подсказка) и «Settings» (Настройки):

  • Нажмите «New» (Создать), если хотите добавить новый тестовый случай в тестовый набор.
  • Нажмите «Record/Stop» (Запись/Стоп), для того чтобы начать/остановить запись процесса тестирования.
  • Нажмите «Play» (Воспроизвести) для выполнения текущего тестового случая.
  • Нажмите «Play Suite» (Воспроизвести тестовый набор) для выполнения одного тестового набора.
  • Нажмите «Play All» (Воспроизвести все) для выполнения всех тестовых наборов.
  • Нажмите «Pause» (Приостановить) для прекращения выполнения операции.
  • Нажмите «Export» (Экспортировать) для перехода в скриптовый режим для выбора языка программирования или фреймворка. По умолчанию выбран Katalon Studio.
  • Нажмите «Speed» (Скорость) для выбора скорости выполнения операций.
  • Если вы являетесь пользователем Katalon Studio, нажмите «Settings» (Настройки) для вызова окна с настройкой параметров конфигураций и портов. Такие пользователи могут изменять порт Katalon Studio, выбранный по умолчанию, для взаимодействия с текущим браузером.

После этого вы можете сохранить тестовый сценарий. Нажмите «Save As File» (Сохранить как) для сохранения сценария в виде Groovy-файла, как это показано на приведенном выше изображении.

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

Подобная особенность также есть в Selenium IDE в разделе «Source» (Исходный код).

На приведенном ниже изображении видно, что вы можете выбирать необходимый язык программирования или фреймворк:

Изменение языка программирования или фреймворка приведет к автоматическому изменению синтаксиса сценария:

  • Нажмите «Help» (Подсказка) для перехода на страницу руководства пользователя Katalon Automation Recorder, где дано подробное описание различных функций.
  • Нажмите «Settings» (Настройки) для перехода на страницу настройки параметров портов и конфигураций.

2) Test Case Explorer:

Test Case Explorer содержит тестовые наборы. Тестовый набор может содержать несколько тестовых случаев:

Нажмите правой кнопкой мыши на кнопку «Test Case» (Тестовый случай) для выбора одной из трех функций:


1. Добавить новый тестовый случай (Add New Test Case’).

2. Удалить тестовый случай (Remove Test Case).

3. Переименовать тестовый случай (Rename Test Case).

Нажмите правой кнопкой мыши на кнопку «Test Suite» (Тестовый набор) для выбора одной из четырех функций:

1. Сохранить тестовый набор как (Save Test Suite As).

2. Закрыть тестовый набор (Close Test Suite).

3. Добавить в тестовый набор новый тестовый случай (Add New Test Case).

4. Переименовать тестовый набор (Rename Test Suite).

3) Окно тестовых случаев

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

4) Вкладки «Журнал», «Справка», «Параметры»


Журнал (Log)

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

Скриншот (Screenshot)

В этой вкладке отображаются все скриншоты, сделанные с помощью команды «captureEntirePageScreenshot» во время выполнения текущего тестового случая.

Справка (Reference)

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

Параметры (Variable)

Во вкладке «Variable» (Параметры) приведена информация о текущей команде, выбранной пользователем. Для получения информации об имени, целевом объекте и значении команды перейдите в эту вкладку во время выполнения тестирования.

Katalon Analytics (Cloud icon)

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

Ограничения

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

Например:

  • Существует ряд команд, которые на данный момент находятся на стадии разработки. Например: sendKeys является экспериментальной командой. Вероятно, в будущем эта команда будет заменена на другую – typeKeys. Таким образом, есть вероятность того, что при использовании экспериментальных команд придется обновлять некоторые тестовые сценарии.
  • В инструменте отсутствует функция отображения базового URL-адреса. В Selenium IDE такая функция была очень удобна для инициализации тестовых случаев в нескольких разных доменах.
  • Кроме описанных выше недостатков в инструмент также есть и другие ошибки. В разделах «Suggestions» (Предложения) и «Katalon Automation Recorder Bugs» (Журнал ошибок Katalon Automation) вы можете найти информацию о существующих ошибках и способах их устранения.

Больше о инструменте:
Здесь вы найдете краткое руководство для Katalon Recorder.

Выводы:

  • Данный инструмент можно установить очень легко и быстро.
  • Он полностью бесплатный.
  • Прост в использовании. В разделе «Reference» (Справка) указана полезная информация о том, каким образом работают команды и в каких случаях их необходимо использовать.
  • Инструмент поддерживает несколько языков программирования и фреймворков, что только увеличивает его эффективность.
  • В нем сохранены практически все функции, присутствующие в Selenium IDE.
  • Кроме того, в Automation Recorder было добавлено несколько новых команд, которых нет в Selenium IDE, что делает его еще более эффективным инструментом.
  • Возможность интеграции с платформой отчетов интеллектуального тестирования – Katalon Analytics.
  • Для тестировщиков, которые в основном использовали Selenium IDE для выполнения задач по автоматизированному тестированию, Katalon Recorder может оказаться существенным помощником.
  • Katalon Recorder является более эффективным решением по сравнению с некоторыми другими альтернативами Selenium IDE. Например: в отличие от Kantu для Chrome, Katalon Recorder поддерживает все команды, которые были в Selenium IDE.
  • Данный инструмент поддерживается последними версиями Firefox и Chrome и будет поддерживаться их последующими версиями.
  • У него есть всего несколько небольших недостатков. Тем не менее, они меркнут в сравнении с огромным количеством функций и возможностей этого инструмента, а также простотой его использования.

Таким образом, Katalon Automation Recorder – это отличный инструмент для автоматизации тестирования и хорошая альтернатива Selenium IDE.

— Первый сервис по продвижению на Реддит:Buy Reddit Upvotes

все с начала / Хабр

Представляю вам перевод моей статьи на Medium.com.

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

Чем Windows отличается от Linux

В своих предыдущих статьях (первая, вторая, третья) я описал подходы и инструменты с открытым кодом, позволяющие организовать масштабируемый кластер Selenium. Мы также поговорили о том, как при помощи тех же инструментов эффективно запускать тесты на машине разработчика. Во всех статьях в качестве операционной системы использовался Linux. Чем же Windows отличается от Linux с точки зрения Selenium?

  1. Наличие браузеров, не существующих на других платформах. В зависимости от версии, Windows поставляется с предустановленным Internet Explorer (IE) или Microsoft Edge. Единовременно может быть установлена только одна версия каждого браузера. Для обоих браузеров имеются готовые исполняемые файлы web-драйверов (IEDriverServer и EdgeDriver соответственно), которые используют вызовы Windows API для запуска и управления браузером. С этой стороны Windows браузеры архитектурно ничем не отличаются от браузеров на Linux.
  2. Графический интерфейс встроен в операционную систему. Большинство версий Windows (кроме последних версий Windows Server) имеют встроенный графический интерфейс, который нельзя ни отключить ни заменить другим графическим сервером. Интерфейс автоматически стартует вместе с операционной системой и постоянно потребляет ресурсы. Кроме того графический интерфейс Windows по-умолчанию отображает все открываемые окна (в том числе и окна браузеров) в одном и том же рабочем столе и только одно из этих окон может быть в фокусе в заданный момент времени. Из-за этого попытки запустить несколько IE или Edge параллельно часто приводят к различным проблемам с фокусом окна: отличающиеся CSS-стили (например, при наведении на ссылки), не срабатывающие события DOM и так далее. Эта проблема очень мешает работе.
  3. Практически полное отсуствие поддержки Docker. Последние версии Windows Server поддерживают большинство функций Docker нативно, но на интересующих нас настольных версиях нет такой поддержки. Поэтому единственный способ запустить Docker на этих версиях — при помощи виртуальной машины с Linux, в которую установлен Docker.

Как видите многие современные подходы при работе с Selenium: использование X сервера без монитора и запуск браузеров в контейнерах не работают в Windows. Но можно ли достичь сходной с Linux производительности и обойти известные ограничения Windows? Да, и это проще, чем вы могли бы подумать! В следующих разделах я расскажу как это сделать.

Создаем порядок из хаоса

Мы будем двигаться к поставленной цели шаг за шагом. Для начала сделаем решение как можно проще. Как известно, обычная схема установки Selenium на Windows выглядит так:

Схема состоит из Selenium сервера, запущенного при помощи виртуальной машины Java (JRE), затем исполняемый файл IEDriverServer или EdgeDriver и, наконец, сам браузер — IE или Edge. В этой цепочке есть как минимум одно слабое звено — Selenium сервер и Java. Все потому, что Selenium здесь выступает в роли простого прокси-сервера, который запускает процесс драйвера на случайном порту и затем отправляет все запросы на этот порт. Проксирование сетевого трафика — простейшая задача в любом языке программирования, потому что основная работа выполняется сетевой подсистемой операционной системы. Именно поэтому установка Java (50 и более Мб) и скачивание Selenium server (20 и более Мб) для простого проксирования выглядит чересчур громоздким решением. Более того Selenium сервер плохо работает под нагрузкой:

  1. Он потребляет слишком много памяти и иногда даже течет.
  2. Проксирование выполняется «вручную» — на каждый запрос создается новый экземпляр HTTP клиента и входящий запрос копируется в него. Такой подход очень неэффективен и в некоторых случаях вызывает странные таймауты при проксировании.

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

Как заменить Selenium сервер на Selenoid

Selenoid — это легковесная замена Selenium сервера, написанная на языке Go. Selenoid поставляется в виде одного маленького (около 7 Мб) исполняемого файла и не имеет внешних зависимостей. Для начала использования нужно просто скачать и запустить этот файл. В моей предыдущей статье я кратко описал насколько удобным может быть Selenoid для запуска браузеров в Docker контейнерах — основного его назначения. Второй поддерживаемый режим — это запуск исполняемых файлов вместо контейнеров и проксирование сетевого трафика в них — также, как Selenium сервер делает это с IEDriverServer и EdgeDriver. Заменить Selenium сервер на Selenoid очень просто. Для примера, запустим Internet Explorer при помощи Selenoid:

  1. Скачиваем исполняемый файл Selenoid со страницы релизов. Исполняемый файл обычно называется selenoid_windows_386.exe для 32-битной Windows и selenoid_windows_amd64.exe для Windows 64 bit. Насколько мне известно настольные версии Windows не имеют встроенной консольной программы для скачивания файлов. Но, если у вас установлен Cygwin и curl, то скачать файл можно так:
    $ curl -o selenoid.exe https://github.com/aerokube/selenoid/releases/download/1.2.1/selenoid_windows_386.exe
  2. Скачиваем и распаковываем архив с IEDriverServer.exe со страницы загрузок Selenium. К примеру сохраним IEDriverServer.exe в C:\.
  3. Настраиваем Internet Explorer как описано в вики.
  4. Создаем простой файл конфигурации для Selenoid — browsers.json:
    {
    "internet explorer": {
    "default": "11",
    "versions": {
      "11": {
        "image": ["C:\\IEDriverServer.exe"]
      }
    }
    }
    }
  5. Запускаем Selenoid вместо Selenium сервера (порт 4444 должен быть свободен) при помощи вот такого файла selenoid.bat:

    C:\selenoid.exe -conf C:\browsers.json -disable-docker -limit 4 > C:\selenoid.log 2>&1

    Здесь мы предполагаем, что все файлы из предыдущих шагов были сохранены в C:\. Логи Selenoid будут сохранены в C:\selenoid.log. Обратите внимание на параметр -limit — он определяет сколько сессий можно запустить одновременно. Когда указанное количество сессий запущено — новые запросы становятся в очередь точно также, как в Selenium сервере.

  6. Готово! Можно запускать тесты на тот же самый URL:
    http://localhost:4444/wd/hub
  7. Чтобы оставаться легковесным, Selenoid не имеет встроенного графического интерфейса. Мордочка сделана в виде отдельного исполняемого файла: Selenoid UI. Просто скачайте скомпилированный файл со страницы релизов и запустите его, затем откройте http://localhost:8080/ в браузере.

Запускаем тесты на нескольких рабочих столах

После замены Selenium сервера на Selenoid вы увидите значительное снижение потребления памяти и CPU. Этот простой шаг может даже позволить вам запускать больше браузеров параллельно. Тем не менее простая замена не лечит проблемы с открытием нескольких окон браузеров одновременно. Окна по-прежнему показывается на одном рабочем столе и продолжают терять фокус. Для того, чтобы обойти это препятствие требуется научиться запускать браузеры в отдельных рабочих столах. Хорошая новость — внутренние API Windows даже в настольных версиях имеют поддержку виртуальных рабочих столов — можно переключаться между рабочими столами и запускать окна в этих рабочих столах независимо друг от друга. Но есть новость получше — не нужно погружаться во внутренности Windows, чтобы получить такое поведение для Selenium — нужная функциональность уже реализована в проекте headless-selenium-for-win. Скачав релиз, вы получите архив с двумя исполняемыми файлами: desktop_utils.exe и headless_ie_selenium.exe.

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

C:> desktop_utils.exe -s desktop1

Для работы с Selenium нам потребуется вторая утилита — headless_ie_selenium.exe. Она является надстройкой к IEDriverServer.exe, обрабатывающей запросы на сессии и автоматически запускающей IEDriverServer.exe в новом рабочем столе. headless_ie_selenium.exe должна лежать в одном каталоге с IEDriverServer.exe. Для того, чтобы использовать утилиту с Selenoid нужно просто заменить пусть до исполняемого файла в browsers.json и перезапустить Selenoid:

{
  "internet explorer": {
    "default": "11",
    "versions": {
      "11": {
        "image": ["C:\\headless_ie_selenium.exe"]
      }
    }
  }
}

Теперь все проблемы с фокусом окон должны уйти.

Немного магии с Selenium capabilities

Простой заменой Selenium на Selenoid и IEDriverServer.exe на headless_ie_selenium.exe мы решили наиболее острые проблемы Selenium под Windows. Давайте сделаем из алмаза бриллиант, выставив несколько полезных capabilities в тестах.

  1. По-умолчанию Internet Explorer использует системные настройки HTTP прокси. Это приводит к тому, что настройки прокси, выставленные в одной сессии «пролезают» и в другие сессии. Для того, чтобы исправить это, выставьте:

    ie.usePerProcessProxy = true

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

    ie.browserCommandLineSwitches = "-private"

    Также не забудьте выставить:

    ie.ensureCleanSession = true

  3. Для того, чтобы избежать странных ошибок с фокусом окна, также убедитесь, что указанная нижу capability не выставлена или равна false:
    requireWindowFocus = false

Заключение

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

Selenium в тестировании веб-приложений / Блог компании Юнивеб / Хабр

Что делать когда:

  • Достался хард-кодный проект непокрытый тестами;
  • код желает лучшего, а времени на рефакторинг нет;
  • внесение правок в одном месте нарушает работу логики в другом;
  • для покрытия *Unit тестами, проще переписать проект;
  • бизнес логика размыта по коду и даже по шаблонам.

Забить и оправдываться, что такой код не должен жить?

С такими ситуациями очень часто сталкивался и меня это не устраивало. При поиске подходящего метода/инструмента тестирования я наткнулся на Selenium. И применяю его уже более 3-х лет.

В Киеве 9-го апреля прошла конференция DevPoint, посвященная web — разработке. Организатором данного мероприятия была компания Uniweb. В рамках ее, решил поделиться впечатлением про Selenium.

Selenium состоит из множества подпроектов, но выделить хотел только три:

Selenium Core — JavaScript Framework для написание и выполнения тестов. Используется в Selenium IDE и Remote Control*.

Selenium IDE — плагин для Firefox, который позволяет записывать и воспроизводить тесты. Также может генерировать код тестов для использования в Selenium Remote Control.

Selenium Remote Control — клиент-серверная система, которая позволяет Вам управлять веб-браузерами локально, или на других компьютерах, используя практически любой язык программирования

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

Selenium IDE

Преимущества Selenium IDE:

  • Интуитивно понятный интерфейс;
  • возможность записи действия пользователя;
  • с написанием тестов справится любой человек понимающий как должен работать проект;
  • автоматическое генерирование *Unit кода для различных языков программирования.

Ложка дёгтя:

  • Только для FireFox;
  • после записи действия все равно нужно “допиливать ручками”;
  • нет встроенного инструмента для получения XPath элементов.

Применяем Selenium IDE на практике

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

Рекомендации для тех, кто начинает использовать Selenium:

  • Не забывать команду waitForPageToLoad;
  • применять максимально чаще команды assert* и verify*;
  • после waitForPopUp не забывайте команду selectPopUp;
  • после закрытия popUp – selectWindow;
  • четко понимайте разницу между click и clickAndWait;
  • при тестирование ajax частей применяйте команды waitFor*.

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

И последних два теста, которые покрывают логику создания и редактирования заказа:

И для проверки наших тестов было намерено испорчено сохранение заказа:

Преимущества тестирования в IDE:

  • Последовательное выполнения тестов в suite;
  • удобное внесение изменений в тесты.

Минусы:

  • Только для FireFox;
  • инициализацию данных приходится делать вручную;
  • невозможность протестировать cron скрипты.

Selenium Remote Control

Selenium Remote Control — это http демон, который принимает команды через GET и выполняет их. API по общению с Selenium RC есть почти под все языки программирования. В данном докладе речь идет только про API для PHP, которое предоставляется c PHPUnit

Как уже говорилось ранние в Selenium IDE есть приятная опция по генерированию кода для *Unit:

Таким образом вы можете просто копировать код и выполнять его в своих PHPUnit suite.

Также в PHPUnit — Selenium есть возможность запускать тесты написанные в Selenium IDE:

class SeleneseTests extends PHPUnit_Extensions_SeleniumTestCase
{

    public static $seleneseDirectory = ‘/devpoint/ide’;

 

      protected function setUp()    

      {

           $this->setBrowser(«*firefox»); 

           $this->setBrowserUrl(«test.devpoint.com.ua/»);

      }
}

 

Без напильника не обойтись…

  1. PHPUnit_Extensions_SeleniumTestCase не умеет интерпретировать suite файлы с Selenium IDE;
  2. для выполнения теста PHPUnit запускает всегда новый браузер;
  3. PHPUnit 3.4.x неправильно отрабатывает логику команд wait.

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

Для решения проблемы с выполнением команд wait* нужно рассмотреть как они выполняются в PHPUnit:

for ($second = 0; ; $second++) {

    if ($second >= 60) $this->fail(«timeout»);

    try {

        if («Заказы» == $this->getText(«//html/body/table/tbody/tr/td[2]/form/table/tbody/tr/td»)) break;

    } catch (Exception $e) {}

    sleep(1);
}

 

Фактически мы зацикливаем выполнение команды, на определенный интервал и ждем пока наше условие не станет true. Реализация PHPUnit — Selenium посылая команду Selenium RC ждет от нее только два ответа, что все хорошо или что все плохо. Если пришел ответ ERROR, то он сразу закрывает браузер, пишет что произошла ошибка и соответственно наш цикл будет слать команды в уже закрытую сессию Selenium RC.

Код с решением этих проблем я выложил на github и не буду на нем останавливаться.

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

class ScreenshotTest extends PHPUnit_Extensions_SeleniumTestCase


   protected $captureScreenshotOnFailure = true;  

   protected $screenshotPath = ‘/home/…/screenshots’;  

   protected $screenshotUrl = ‘http://localhost/screenshots’; 
}

 

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

Дергаем за ниточки не FireFox

По заявлениям разработчиков Selenium RC поддерживает следующие браузеры:

  • chrome
  • iexplore
  • firefox3
  • googlechrome
  • konqueror
  • firefox2
  • safari
  • opera

На самом деле добиться корректного выполнения в этих браузерах не всегда можно с первого раза, но об этом не в рамках этого доклада. Единственное, что отмечу в Firefox, IE и Chrome под Windows проблем практически никогда не возникает и в Safari под MacOS.

Для запуска наших тестов в разных браузерах достаточно описать в статической переменной $browsers массив с настройками доступа к Selenium RC:

class SeleneseTests extends PHPUnit_Extensions_SeleniumTestCase
{

    public static $browsers = array(

        array(

            ‘name’    => ‘Firefox on Windows’,

            ‘browser’ => ‘*firefox’,

            ‘host’    => ‘localhost’,

            ‘port’    => 4444,

            ‘timeout’ => 30000,

        ),

        array(

            ‘name’    => ‘IE on Windows’,

            ‘browser’ => ‘*iexplore’,

            ‘host’    => ‘localhost’,

            ‘port’    => 4444,

            ‘timeout’ => 30000,

        ),

        array(

            ‘name’    => ‘Google Chrome on Windows’,

            ‘browser’ => ‘*googlechrome’,

            ‘host’    => ‘localhost’,

            ‘port’    => 4444,

            ‘timeout’ => 30000,

        ),

    );

 

    protected function setUp()

    {

        $this->setBrowserUrl(«test.devpoint.com.ua/»);

    }

 

    public function testSigninCase()

    {

        $this->open(«/login/»);

        $this->waitForPageToLoad(«»);

        $this->type(«login», «admin»);

        $this->type(«password», «admin»);

        $this->click(«//input[@value=’Войти’]»);

        $this->waitForPageToLoad(«30000»);

        $this->assertEquals(«Главная», $this->getText(«//html/body/table/tbody/tr/td/a»));

    }  

 
}

C чем Selenium Вам не поможет?

  • Тестирование загрузки файлов;
  • тестирование cron скриптов;
  • нет нормального решения для Flash части (http://code.google.com/p/flash-selenium).

Доклад

Selenium за 60 секунд / Хабр

Представляю вам перевод моей статьи на Medium.com.

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

Проблема

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

  1. Нужно устаналивать несколько разных браузеров себе на компьютер. В обычной жизни вы, как правило, используете один браузер, например, Chrome, но вам приходится устанавливать себе Firefox и Opera, чтобы отлаживать в них Selenium-тесты.
  2. Трудно устанавливать и использовать несколько версий одного браузера. Если вы устанавливаете браузер из пакетов, то вообще можно иметь только одну установленную версию. Кроме того Selenium и его веб-драйверы обычно ищут исполняемый файл браузера по определенному пути. Поэтому, поверьте, использовать несколько версий может быть трудной задачей.
  3. Если вы запускаете браузер, установленный в вашей операционной системе — он забивает место на диске своими временными файлами и содержимым кеша.
  4. Нельзя гарантировать, что настройки браузера всегда останутся в том же состоянии, как после чистой установки. Например, вы можете случайно изменить адрес прокси-сервера или настройки безопасности. Это может привести к падению ранее работавших тестов.
  5. Трудно запускать несколько тестов в разных браузерах параллельно. Попытка сделать это как правило приводит к различным проблемам: окна начинают конкурировать за фокус, не срабатывающие события, не ожидаемые CSS стили и так далее.
  6. Нужно знать какая версия Selenium совместима с какой версией браузера. То же самое верно для исполняемых файлов веб-драйверов (например, Chromedriver).

Приведенный выше список недостатков далеко не полный. Но давайте остановимся на этом и попробуем гораздо более удобный способ отладки Selenium-тестов локально.

Selenoid

В моей предыдущей статье (часть I, часть II) я коротко описал новые открытые инструменты для работы с Selenium: Ggr и Selenoid. Ggr в основном нужен для больших Selenium кластеров и не нужен для отладки тестов на вашей машине. Сегодня я более подробно расскажу о Selenoid — альтернативной реализации Selenium хаба, которая запускает браузеры в Docker контейнерах.

Но почему же запуск браузеров в контейнерах так удобен? И в чем разница между запуском браузеров из контейнеров, поставляемых разработчиками Selenium и Selenoid? — Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой Selenium сессии (т.е. запроса нового браузера) и останавливать их сразу же после закрытия сессии. Такой подход сразу же решает все проблемы связанные с залипанием состояния в кешах и использования одних настроек браузера в разных сессиях. В каждом контейнере находится конкретная версия браузера, правильная версия веб-драйвера или Selenium сервера, поддерживающая этот браузер и все зависимости наподобие шрифтов, графических библиотек и так далее. Более того, контейнеры обеспечивают достаточный уровень изоляции процессов браузеров. Это позволяет запускать неограниченное количество разлиных версий браузеров параллельно и забыть о проблемах с фокусом. Безусловно, эти же проблемы решаются и обычными Selenium контейнерами. Но для того, чтобы получить поведение, аналогичное Selenoid, в дополнение к Docker как правило требуется использовать сложные админские инструменты наподобие Ansible или Salt.

Установка

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

  1. Установить Docker. Обычно это делается при помощи стандартного менеджера пакетов вашей операционной системы такого как APT, Yum или Homebrew. Подробности можно найти в документации Docker.

  2. Создать каталог для хранения конфигурации Selenoid и сгенерировать конфигурационный файл:

    # mkdir -p /etc/selenoid
    # docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aerokube/cm:1.0.0 selenoid \
      --last-versions 2 --tmpfs 128 --pull > /etc/selenoid/browsers.json

    Последняя команда также скачает образы Docker-контейнеров двух последних версий Firefox, Chrome и Opera и сгенерирует правильный файл конфигурации для Selenoid.

  3. Запустить Selenoid:
# docker run -d --name selenoid -p 4444:4444 -v /etc/selenoid:/etc/selenoid:ro \
      -v /var/run/docker.sock:/var/run/docker.sock aerokube/selenoid:1.1.1

Все — прошло 60 секунд и Selenoid готов к работе. Не нужно устанавливать Java и скачивать Selenium руками. Просто запустите свои тесты, используя тот же самый URL, что и у обычного Selenium server:

http://localhost:4444/wd/hub

Мордочка и сбор статистики

Selenoid может использоваться совместно с Ggr для настройки большого Selenium кластера, поэтому у него нет графического интерфейса наподобие Grid Console в обычном Selenium. Посмотреть потребление браузеров можно двумя способами:

I. Запустить дополнительный легковесный контейнер с Selenoid UI. Это делается командой:

# docker run -d --name selenoid-ui --net host aerokube/selenoid-ui:1.0.0

Мордочка будет доступна в браузере по адресу http://localhost:8080/:

II. Отправлять статистику Selenoid во внешнюю систему: Graphite, InfluxDB, ElasticSearch и так далее. Статистика Selenoid может быть получена по следующему URL:

http://localhost:4444/status

Данные отправляются в виде JSON следующего формата:

  $ curl http://localhost:4444/status
  {
    "total": 80,
    "used": 14,
    "queued": 0,
    "pending": 1,
    "browsers": {
      "firefox": {
        "46.0": {
          "user1": 5,
          "user2": 6
        },
        "48.0": {
          "user2": 3
        }
      }
    }
  }

Selenoid возвращает сколько контейнеров может быть запущено одновременно (total), сколько запущено в данный момент (used), сколько запросов ожидают в очереди (queued) и сколько контейнеров еще стартуют (pending). Элемент browsers содержит информацию о потреблении браузеров различными пользователями. Имя пользователя извлекается из Basic HTTP headers, если они выставлены или выставляется в unknown, если нет. Хотя вы можете разбирать показанный JSON вручную при помощи скрипта, мы рекомендуем использовать для этой цели Telegraf. Больше информации о том, как использовать Telegraf изложено в этом разделе нашей документации.

Готовые контейнеры с браузерами

Согласитесь, круто иметь инструмент, автоматически запускающий контейнеры с разными браузерами. Но еще круче иметь набор готовых контейнеров с разными версиями популярных браузеров. Мы проделали много работы и подготовили образы контейнеров с разными версиями Firefox, Chrome и Opera. Полный список можно посмотреть на selenoid@DockerHub.

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

# docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aerokube/cm:1.0.0 \
    selenoid --last-versions 2 --tmpfs 128 --pull > /etc/selenoid/browsers.json

Эта команда автоматически скачивает последние версии контейнеров и генерирует новую JSON-конфигурацию для Selenoid. Чтобы начать использовать новые браузеры отправьте Selenoid команду на перечитывание конфигурации (можно делать под нагрузкой):

# docker kill -s HUP selenoid

Наши контейнеры также поддерживают возможность установки произвольно разрешения экрана (по-умолчанию 1920x1080x24). Чтобы выставить разрешение просто передайте capability screenResolution:

screenResolution: "1280x1024x24"

Заключение

В этой статье я рассказал как эффективно управлять различными браузерами при помощи Selenoid. Поверьте — работа с Selenium может быть комфортной. Если вам интересны вопросы построения эффективной инфраструктуры тестирования, вы можете взглянуть на другие открытые инструменты в нашей организации на Github или подпишитесь на наш Твиттер @aerokube.

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

Тест сурка. Тестируем сайт с помощью Selenium IDE.

Помните фильм “День сурка”? Там главный герой переживал один день постоянно, менялся только он, а вот все вокруг оставалось прежним. Такая же ситуация иногда складывается при разработке/сопровождении сайта: одна и та же функция то работает, то нет.

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

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

В этой статье мы расскажем о решении такой задачи силами менеджера/маркетолога.

Вообще тестирование (если заглянуть в справочник) это проверка соответствия сайта заявленным характеристикам и требованиям. Тестирование бывает разным:

  • Функциональное тестирование — проверяет соответствие реализованных функций требованиям;
  • Конфигурационное тестирование — позволяет проверить, как приложение ведет себя при различных разрешениях экрана, в различных браузерах, на различных ОС и с разным программным и аппаратным обеспечением;
  • Тестирование безопасности — позволяет убедиться, что данные хранятся надежно, доступ к ним блокирован для посторонних лиц;
  • Нагрузочное тестирование — позволяет выявить уровень критических нагрузок при работе с ресурсами;
  • Тестирование usability — проверяется удобство пользования продуктом.

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

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

Selenium IDE это расширение для браузера Mozilla FireFox, поэтому установка достаточно проста. После установки расширения в панели появится дополнительный значок.

Теперь можно открыть окошко Selenium IDE и посмотреть, на что он способен.

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

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

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

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

Хотелось бы сказать: “Поздравляем, вот и ваш первый тест”, но нет. Как всегда есть подвох. Если мы попытаемся сейчас запустить тест, то увидим следующую картину:

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

Справа от поля “Target” есть несколько кнопок, при помощи кнопки “Select” можно активировать автоматический режим определения пути. В режиме автоматического поиска, если нажать на какой-либо элемент на странице в поле “Target” отобразится путь до него. А кнопка “Find” подсветит элемент на странице, до которого ведет путь в поле “Target”. Но так как автоматический путь нам не подходит, то подкорректируем имеющийся путь руками. И вот теперь: “Поздравляем, вот и ваш первый тест”.

Это все конечно хорошо, но давайте теперь напишем что-то более полезное со смыслом и проверками. Например, при работе с 1С-Битрикс часто встречается задача “сбросить кеш”. Так давайте напишем тест, который будет этим заниматься. Для этого нужно авторизоваться как администратор, перейти на страницу кеша и запустить сброс.

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

 В качестве примера оформим заказ и проверим, что оформление прошло успешно.

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

Что же в итоге? В итоге у нас есть неоднозначный инструмент.

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

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

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

www.intervolga.ru/support/monitoring/

) квалифицированным программистам.

Оцените статью:

Спасибо, ваш голос успешно добавлен!

Selenium, Selenoid, Selenide, Selendroid… Что все это значит? / Хабр

Привет, Хабр!

В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравнивать?

Написал статью, чтобы помочь в этом разобраться. Кому интересно, добро пожаловать под кат!

Selenium

Selenium — это инструмент для автоматизированного управления браузерами.

В рамках проекта Selenium разрабатывается серия программных продуктов с открытым исходным кодом:

  • Selenium Server,
  • Selenium Grid,
  • Selenium IDE и т.д.

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

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

Коротко — Selenium Server помогает управлять браузерами на определенной машине.

Более подробно можно почитать здесь: https://www.seleniumhq.org/

Selenium Grid устанавливается на одном компьютере и может работать удаленно с несколькими другим, на которых установлены Selenium Server.

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

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

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

Коротко — Selenium Grid нужен для организации работы с несколькими машинами, где установлен Selenium Server.

Более подробно можно почитать здесь: https://www.seleniumhq.org/docs/07_selenium_grid.jsp

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

Он не имеет особого отношения ни к Selenium Server, ни к Selenium Grid и позволяет работать только с локальным браузером.

Более подробно можно почитать здесь: https://www.seleniumhq.org/selenium-ide/

Selenide

Selenide — это один из фреймворков для автоматизированного тестирования веб-приложений. С его помощью можно быстро и относительно просто писать код, который будет формировать и отправлять HTTP-команды на Selenium Server или Selenium Grid.

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

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

Коротко — с Selenide проще писать код, который заточен именно под тестирование веб-приложения.

Более подробно можно почитать здесь: https://ru.selenide.org/

Selenoid

Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере.

Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.

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

Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат.

Более подробно можно почитать здесь: https://aerokube.com/selenoid/latest/

Selendroid

Selendroid — это фреймворк для автоматизированного тестирования мобильных приложений на базе Android.

Используется на ранних версиях Android — до 17 level api (android 4.2). Но не выше.

Коротко — это уже не очень актуальные фреймворк для работы с Android-приложениями.

Более подробно можно почитать здесь: http://selendroid.io

Итого

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

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

Спасибо за внимание.

Начало работы · Selenium IDE

Установка

Установите Selenium IDE из интернет-магазина Chrome или Firefox.

Запустите IDE

После установки запустите его, щелкнув его значок в строке меню браузера.

Устранение неисправностей

Не видите значок Selenium IDE в строке меню?

Вариант 1

Убедитесь, что IDE включена в настройках расширения вашего браузера.

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

  • Хром: Хром: // удлинители
  • Firefox: о: аддоны
Вариант 2

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

В Chrome это можно сделать, щелкнув справа от адресной строки, удерживая нажатой кнопку мыши и перетащив ее влево или вправо.

В Firefox вам нужно щелкнуть правой кнопкой мыши, выбрать Настроить , внести изменения в строку меню и щелкнуть Готово .

Экран приветствия

После запуска IDE вам будет представлено приветственное диалоговое окно.

Это даст вам быстрый доступ к следующим параметрам:

  • Запись нового теста в новом проекте
  • Открыть существующий проект
  • Создать новый проект
  • Закройте IDE

Если вы впервые используете IDE (или запускаете новый проект), выберите первый вариант.

Запись вашего первого теста

После создания нового проекта вам будет предложено назвать его, а затем будет предложено указать базовый URL.Базовый URL-адрес — это URL-адрес тестируемого приложения. Это то, что вы устанавливаете один раз, и оно используется во всех тестах в этом проекте. При необходимости вы можете изменить его позже.

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

Взаимодействуйте со страницей, и каждое ваше действие будет записано в IDE. Чтобы остановить запись, переключитесь в окно IDE и щелкните значок записи.

Организация тестов

Тесты

Вы можете добавить новый тест, щелкнув символ + вверху левой боковой панели men

.

Как загрузить и установить Selenium IDE для Firefox

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • 9000 J2
        • Назад
        • JUnit
        • LoadRunner
        • Ручное тестирование
        • Мобильное тестирование
        • Mantis
        • Почтальон
        • QTP
        • Назад
        • Центр качества
        • 000300030003 SoapUI
        • Управление тестированием
        • TestLink
    • SAP

        • Назад
        • ABAP
        • APO
        • Начинающий
        • Basis
        • BODS
        • BI
        • BPC
        • CO
        • Назад
        • CRM
        • Crystal Reports
        • Crystal Reports
        • FICO3
        • Заработная плата
        • Назад
        • PI / PO
        • PP
        • SD
        • SAPUI5
        • Безопасность
        • Менеджер решений
        • Successfactors
        • SAP Tutorials

        4

      • Web
      • Apache
      • AngularJS
      • ASP.Net
      • C
      • C #
      • C ++
      • CodeIgniter
      • СУБД
      • JavaScript
      • Назад
      • Java
      • JSP
      • Kotlin
      • Linux
      • Linux
      • Kotlin
      • Linux
      • js

      • Perl
      • Назад
      • PHP
      • PL / SQL
      • PostgreSQL
      • Python
      • ReactJS
      • Ruby & Rails
      • Scala
      • SQL
      • 000

      • SQL
      • 000

        0003 SQL

        000

        0003 SQL

        000

      • UML
      • VB.Net
      • VBScript
      • Веб-службы
      • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Бизнес-аналитик
      • Создание веб-сайта
      • CCNA
      • Облачные вычисления
      • 000
      • COBOL 9000 9002 9002 9004
      • COBOL 9000 Проектирование
      • 9000 .Установка

        Selenium :: Документация по Selenium

        Selenium

        • Начало работы

          • Краткий обзор
        • Введение

          • Проект и инструменты Selenium
          • Об автоматизации тестирования
          • Виды испытаний
          • Об этой документации
        • Установка селена

          • Установка библиотек Selenium
          • Установка двоичных файлов WebDriver
          • Установка автономного сервера
        • Начало работы с WebDriver

          • Браузеры
          • Сторонние драйверы и плагины
          • Установочные элементы
          • Выполнение действий на АВ *
        • WebDriver

          • Понимание компонентов
          • Требования к драйверам
          • Манипуляции с браузером
          • Ожидание
          • Классы поддержки
          • Предупреждения, подсказки и подтверждения JavaScript
          • Http прокси
          • Стратегия загрузки страницы
          • Веб-элемент
          • Клавиатура
        • Удаленный WebDriver

          • Удаленный сервер WebDriver
          • Клиент удаленного WebDriver
        • Указания

          • Страничные объектные модели
          • Язык домена
          • Создание состояния приложения
          • Макет внешних услуг
          • Улучшенная отчетность
          • Избегать совместного использования состояния
          • Независимость испытаний

        .

        Установка библиотек Selenium :: Документация по Selenium

        Selenium

        • Начало работы

          • Краткий обзор
        • Введение

          • Проект и инструменты Selenium
          • Об автоматизации тестирования
          • Виды испытаний
          • Об этой документации
        • Установка селена

          • Установка библиотек Selenium
          • Установка двоичных файлов WebDriver
          • Установка автономного сервера
        • Начало работы с WebDriver

          • Браузеры
          • Сторонние драйверы и плагины
          • Установочные элементы
          • Выполнение действий на АВ *
        • WebDriver

          • Понимание компонентов
          • Требования к драйверам
          • Манипуляции с браузером
          • Ожидание
          • Классы поддержки
          • Предупреждения, подсказки и подтверждения JavaScript
          • Http прокси
          • Стратегия загрузки страницы
          • Веб-элемент
          • Клавиатура
        • Удаленный WebDriver

          • Удаленный сервер WebDriver
          • Клиент удаленного WebDriver
        • Указания

          • Страничные объектные модели
          • Язык домена
          • Создание состояния приложения
          • Макет внешних услуг
          • Улучшенная отчетность
          • Избегать совместного использования состояния
          • Независимость испытаний

        .

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

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