Лабораторная работа 5
Тема: Основы работы с Selenium IDE
Теоретическая часть
Selenium WebDriver – это программная библиотека для управления браузерами. Часто употребляется также более короткое название WebDriver.
Иногда говорят, что это «драйвер браузера», но на самом деле это целое семейство драйверов для различных браузеров, а также набор клиентских библиотек на разных языках, позволяющих работать с этими драйверами.
Это основной продукт, разрабатываемый в рамках проекта Selenium.
Selenium WebDriver представляет собой семейство драйверов для различных браузеров плюс набор клиентских библиотек для этих драйверов на разных языках программирования: Selenium WebDriver
Иногда говорят, что это «драйвер браузера», но на самом деле это целое семейство драйверов для различных браузеров, а также набор клиентских библиотек на разных языках, позволяющих работать с этими драйверами.
В рамках проекта Selenium разрабатываются драйверы для браузеров Firefox, Internet Explorer и Safari, а также драйверы для мобильных браузеров Android и iOS. Драйвер для браузера Google Chrome разрабатывается в рамках проекта Chromium, а драйвер для браузера Opera (включая мобильные версии) разрабатывается компанией Opera Software. Поэтому они формально не являются частью проекта Selenium, распространяются и поддерживаются независимо. Но логически, конечно, можно считать их частью семейства продуктов Selenium.
Аналогичная ситуация и с клиентскими библиотеками – в рамках проекта Selenium разрабатываются библиотеки для языков Java,.Net (C#), Python, Ruby, JavaScript. Все остальные реализации не имеют отношения к проекту Selenium, хотя, возможно, в будущем, какие-то из них могут влиться в этот проект.
Selenium RC
Selenium RC – это предыдущая версия библиотеки для управления браузерами. Аббревиатура RC в названии этого продукта расшифровывается как Remote Control, то есть это средство для «удалённого» управления браузером.
|
иногда Selenium RC называется также Selenium 1.0, тогда как WebDriver называется Selenium 2.0. Хотя на самом деле дистрибутив версии 2.0 включает в себя одновременно обе реализации – и Selenium RC, и WebDriver.
А вот когда выйдет версия 3.0 – в ней останется только WebDriver.
С технической точки зрения WebDriver не является результатом эволюционного развития Selenium RC, они построены на совершенно разных принципах и у них практически нет общего кода. Объединяет их лишь тот факт, что обе реализации были сделаны в рамках проекта Selenium. Ну, или если быть совсем точным, WebDriver сначала был самостоятельным проектом, но в 2008 году произошло слияние и сейчас WebDriver представляет собой основной вектор развития проекта Selenium.
Selenium Server
Selenium Server – это сервер, который позволяет управлять браузером с удалённой машины, по сети. Сначала на той машине, где должен работать браузер, устанавливается и запускается сервер. Затем на другой машине (технически можно и на той же самой, конечно) запускается программа, которая, используя специальный драйвер RemoteWebDriver, соединяется с сервером и отправляет ему команды. Он в свою очередь запускает браузер и выполняет в нём эти команды, используя драйвер, соответствующий этому браузеру:
Selenium Server поддерживает одновременно два набора команд – для новой версии (WebDriver) и для старой версии (Selenium RC).
Selenium Grid
Selenium Grid – это кластер, состоящий из нескольких Selenium-серверов. Он предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин.
|
Selenium Grid имеет топологию «звезда», то есть в его составе имеется выделенный сервер, который носит название «хаб» или «коммутатор», а остальные сервера называются «ноды» или «узлы». Сеть может быть гетерогенной, то есть коммутатор и узлы могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры. Одна из задач Selenium Grid заключается в том, чтобы «подбирать» подходящий узел, когда во время старта браузера указываются требования к нему – тип браузера, версия, операционная система, архитектура процессора и ряд других атрибутов.
Ранее Selenium Grid был самостоятельным продуктом. Сейчас физически продукт один – Selenium Server, но у него есть несколько режимов запуска: он может работать как самостоятельный сервер, как коммутатор кластера, либо как узел кластера, это определяется параметрами запуска.
Selenium IDE
Selenium IDE – плагин к браузеру Firefox, который может записывать действия пользователя, воспроизводить их, а также генерировать код для WebDriver или Selenium RC, в котором выполняются те же самые действия. В общем, это «Selenium-рекордер».
Тестировщики, которые не умеют (или не хотят) программировать, используют Selenium IDE как самостоятельный продукт, без преобразования записанных сценариев в программный код. Это, конечно, не позволяет разрабатывать достаточно сложные тестовые наборы, но некоторым хватает и простых линейных сценариев.
Установка Selenium IDE
|
Запустите Firefox и скачайте IDE с веб-сайта SeleniumHQ.
Firefox предостерегает вас от установки дополнений с незнакомых ресурсов, потому для продолжения установки нажмите “Разрешить”, как показано на скриншоте.
После перезагрузки браузера Selenium IDE появится в инструментах:
Структура тестов Selenium
Тест Selenium – набор команд прикладного уровня модели OSI, имитирующих действия пользователя в web-приложении.
Selenium сохраняет файлы с тестами в обычных HTML-файлах с простой структурой содержащей одну таблицу из трех колонок, что позволяет редактировать тесты в любом редакторе:
<table cellpadding="1" cellspacing="1" border="1">
<tr><td rowspan="1" colspan="3"> Test head </td></tr>
<tr>
<td> Command </td>
<td> Target </td>
<td> Value </td>
</tr>
...
<tr>
...
</tr>
</table>
Test head - заголовок теста, Command - команда языка Selenium, Target - цель, это элемент над которым должно выполняться действие (обычно указывается как xPath на элемент), Value - параметр, при необходимости передаваемый в команду. Более подробно о назначении полей Target и Value указано в справке для конкретной команды.
Итогом разработки тестов является формирование различных тестовых наборов (Test-suites), содержащих тесты различных типов, или тесты для отдельных модулей приложения. Для каждого такого тест-сьюта можно написать скрипт для его запуска и настроить автоматический запуск тестов по расписанию.
Работа с Selenium IDE
Открываем Selenium.
Окно программы делится на 3 области. В левом верхнем окне показывается открытый Test Case и список Test Case-ов в открытом Test Suite -е. В основном правом верхнем окне отображается список шагов открытого Test Case'а.
Основное окно имеет две вкладки - Table и Source. На вкладке Table команды представлены в виде таблицы, а на вкладке Source - в виде html-кода.
В нижнем окне на вкладке Log показываются логи действий теста, на вкладке Reference - пояснения к выбранной команде.
Основная работа происходит в окне Table. Каждый шаг Test Case'а состоит из трех частей:
Command - команда или действие, которое нужно совершить;
Target - путь к элементу, к которому применяется команда (обычно используется xPath;
Value - значение, передаваемый команде параметр (может использоваться для пользовательских комментариев, если параметр для команды не требуется).
Кнопка Find помогает проверить правильность выбранного элемента, подсвечивая его.
Панель меню
Меню “File” (“Файл”) имеет разделы “Test Case” (“Тестовый сценарий”) и “Test Suite” (“Набор тестов”). Эти разделы позволяют создать, открыть, сохранить или экспортировать тестовый сценарий в код на любом желаемом языке программирования. Также имеется возможность открыть недавно использованный тестовый сценарий. Аналогичные действия можно совершить и с набором тестов.
Меню “Редактирование” (“Edit”) позволяет выполнять операции копирования, вставки, удаления, отмены изменений и выбора всего набора команд вашего тестового сценария.
Меню “Опции” (“Options”) позволяет изменить настройки дополнения. В этом меню вы можете установить тайм-аут для определенных команд, добавить пользовательские расширения основного набора команд Selenium, а также настроить формат (язык), который будет использоваться для сохранения ваших тестовых сценариев в будущем.
Меню “Помощь” – это стандартное меню справки по Firefox, только опция “UI-Element Documentation” (“Документация по UI-Element”) относится к Selenium IDE.