Учебники

2) Введение WebDriver

Что такое WebDriver?

WebDriver — это фреймворк для веб-автоматизации, который позволяет вам выполнять тесты для разных браузеров, а не только для Firefox и Chrome (в отличие от Selenium IDE).

WebDriver также позволяет  использовать язык программирования  при создании тестовых сценариев (это невозможно в Selenium IDE).

Теперь вы можете использовать  условные операции,  такие как if-then-else или switch-case. Вы также можете выполнять циклы, как do-while.

Введение в WebDriver и сравнение с Selenium RC

Следующие языки программирования поддерживаются WebDriver

Вам не нужно знать их все. Вам просто нужно быть знающим в одном. Однако в этом руководстве мы будем использовать Java с Eclipse в качестве нашей IDE.

Разница между Selenium RC и Webdriver

До появления WebDriver в 2006 году существовал еще один инструмент автоматизации под названием Selenium Remote Control. И WebDriver, и Selenium RC имеют следующие функции:

  • Они оба позволяют вам использовать язык программирования при разработке ваших тестовых сценариев.
  • Они оба позволяют вам запускать тесты на разных браузерах.

Так чем они отличаются? Давайте обсудим ответы.

1. Архитектура

Архитектура WebDriver проще, чем у Selenium RC .

  • Управляет браузером с уровня ОС
  • Все, что вам нужно, это IDE вашего языка программирования (который содержит ваши команды Selenium) и браузер.

Введение в WebDriver и сравнение с Selenium RC   

Архитектура Selenium RC намного сложнее.
  • Сначала вам нужно запустить  отдельное приложение под названием Selenium Remote Control (RC) Server,  прежде чем вы сможете начать тестирование
  • Selenium RC Server  действует как «посредник» между вашими командами Selenium и вашим браузером.
  • Когда вы начинаете тестирование, Selenium RC Server «внедряет»   в браузер программу Javascript под названием Selenium Core .
  • После введения Selenium Core начнет получать инструкции, передаваемые RC-сервером из вашей тестовой программы.
  • Когда инструкции будут получены,  Selenium Core выполнит их как команды Javascript.
  • Браузер подчиняется инструкциям Selenium Core и передает свой ответ на RC-сервер.
  • RC-сервер получит ответ от браузера, а затем отобразит результаты для вас.
  • RC-сервер получит следующую инструкцию из вашего тестового сценария, чтобы повторить весь цикл.

Введение в WebDriver и сравнение с Selenium RC

2. Скорость

Введение в WebDriver и сравнение с Selenium RC

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

Введение в WebDriver и сравнение с Selenium RC

Selenium RC работает медленнее, поскольку  использует программу Javascript под названием Selenium Core. Это Selenium Core — это то, что напрямую контролирует браузер, а не вас.

3. Реальное Взаимодействие

Введение в WebDriver и сравнение с Selenium RC

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

Введение в WebDriver и сравнение с Selenium RC

Selenium Core, как и другие коды JavaScript , может получать доступ к отключенным элементам. В прошлом тестеры Selenium жаловались, что Selenium Core смог вводить значения в отключенное текстовое поле в своих тестах. Отличия в API

4. API

Введение в WebDriver и сравнение с Selenium RC

API Selenium RC более развит, но содержит избыточные и часто запутанные команды . Например, в большинстве случаев тестировщики не уверены, использовать ли type или typeKeys; или использовать click, mouseDown или mouseDownAt. Хуже того, разные браузеры по-разному интерпретируют каждую из этих команд!

API WebDriver проще, чем Selenium RC . Он не содержит избыточных и запутанных команд.

5. Поддержка браузера

Введение в WebDriver и сравнение с Selenium RC

WebDriver может поддерживать безголовый браузер HtmlUnit

HtmlUnit называется «безголовым», потому что это невидимый браузер — он не содержит GUI.

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

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

Selenium RC не может поддерживать безголовый браузер HtmlUnit. Для работы нужен настоящий, видимый браузер.

Ограничения WebDriver

WebDriver не может легко поддерживать новые браузеры

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

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

Selenium RC имеет встроенный генератор результатов испытаний

Selenium RC автоматически генерирует HTML-файл результатов теста . Формат отчета был предварительно установлен самой RC. Взгляните на пример этого отчета ниже.

Введение в WebDriver и сравнение с Selenium RC

 

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

Резюме

  • WebDriver — это инструмент для тестирования веб-приложений в разных браузерах с использованием разных языков программирования.
  • Теперь вы можете создавать мощные тесты, потому что WebDriver позволяет вам использовать язык программирования по вашему выбору при разработке ваших тестов.
  • WebDriver быстрее, чем Selenium RC, благодаря своей более простой архитектуре.
  • WebDriver напрямую общается с браузером, в то время как Selenium RC для этого нужна помощь RC-сервера.
  • API WebDriver более лаконичен, чем Selenium RC.
  • WebDriver может поддерживать HtmlUnit, а Selenium RC — нет.
  • Единственными недостатками WebDriver являются:
    • Он не может легко поддерживать новые браузеры , но Selenium RC может.
    • Он не имеет встроенной команды для автоматической генерации результатов теста.