Что такое Selenium WebDriver? Разница с RC

Содержание:

Anonim

Что такое Selenium Webdriver?

Selenium Webdriver - это набор API с открытым исходным кодом, который используется для тестирования веб-приложений. Инструмент Selenium Webdriver используется для автоматизации тестирования веб-приложений, чтобы убедиться, что оно работает должным образом или нет. В основном он поддерживает такие браузеры, как Firefox, Chrome, Safari и Internet Explorer. Это также позволяет вам выполнять кросс-браузерное тестирование.

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

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

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

  • Ява
  • .Сеть
  • PHP
  • Python
  • Perl
  • Рубин

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

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

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

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

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

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

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

  • Он управляет браузером на уровне ОС
  • Все, что вам нужно, это IDE вашего языка программирования (которая содержит ваши команды Selenium) и браузер.
Архитектура 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 Server получит следующую инструкцию из вашего тестового сценария, чтобы повторить весь цикл.

2. Скорость

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

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

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

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

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

4. API

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Резюме

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