Тестирование браузера Selenium Headless: HTMLUnitDriver & PhantomJS

Содержание:

Anonim

Драйвер Selenium Web - это инструмент веб-автоматизации, который позволяет запускать тесты в разных браузерах. Этими браузерами могут быть Internet Explorer, Firefox или Chrome. Чтобы использовать конкретный браузер с Selenium, вам нужен соответствующий драйвер.

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

Что такое безголовый браузер?

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

Некоторые из примеров безголовых драйверов включают

  • HtmlUnit
  • Призрак
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

В этом уроке мы сосредоточимся на HtmlUnit и PhatomJS.

HTMLUnitDriver

HTML UnitDriver - это самый легкий и самый быстрый безголовый браузер для WebDriver. Он основан на HtmlUnit. Он известен как Headless Browser Driver . Он такой же, как драйвер Chrome, IE или FireFox, но у него нет графического интерфейса, поэтому выполнение теста на экране не видно.

Особенности драйвера блока HTML

  • Поддержка протоколов HTTPS и HTTP
  • Поддержка ответов HTML (нажатие на ссылки, отправка форм, просмотр модели DOM документа HTML и т. Д.)
  • Поддержка файлов cookie
  • Поддержка прокси-сервера
  • Поддержка базовой и NTLM аутентификации
  • Отличная поддержка JavaScript
  • Поддержка методов отправки GET и POST
  • Возможность настройки заголовков запросов, отправляемых на сервер.
  • Возможность определять, должны ли ошибочные ответы от сервера вызывать исключения или должны быть возвращены как страницы соответствующего типа.

Шаги по использованию драйвера HTMLUnit с Selenium

Шаг 1) В Eclipse скопируйте следующий код. Добавьте в проект стандартные файлы библиотеки селена. Никаких дополнительных файлов jar не требуется.

пакет htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class htmlUnitYest {public static void main (String [] args) {// Создание нового экземпляра драйвера модуля HTMLДрайвер WebDriver = новый HtmlUnitDriver ();// Переходим в Googledriver.get ("http://www.google.com");// Найдите окно поиска по его имениWebElement element = driver.findElement (By.name ("q"));// Вводим поисковый запросelement.sendKeys ("Guru99");// Отправляем запрос. Webdriver автоматически ищет форму, используя элемент ввода текста// Нет необходимости искать / находить кнопку отправкиelement.submit ();// Этот код напечатает заголовок страницыСистема. out .println ("Заголовок страницы: + driver.getTitle ());driver.quit ();}}

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

Преимущества драйвера HTML-модуля:

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

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

  • Он не может имитировать поведение JavaScript других браузеров.

PhantomJS

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

Чтобы использовать PhantomJS с Seleniun, нужно использовать GhostDriver. GhostDriver - это реализация протокола Webdriver Wire на простом JS для PhantomJS.

В последний выпуск PhatomJS интегрирован GhostDriver, и нет необходимости устанавливать его отдельно.

Вот как работает система:

Шаги по запуску Selenium с PhatomJS

Шаг 1) Вам нужен Eclipse с установленным Selenium

Шаг 2) Загрузите PhantomJS здесь

Шаг 3) Извлеките загруженную папку в Program Files.

Шаг 4) Загрузите драйвер PhantomJS отсюда. Добавьте банку в свой проект

Шаг 5) Вставьте следующий код в eclipse

пакет htmldriver;import java.io.File;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.phantomjs.PhantomJSDriver;фантом общественного класса {public static void main (String [] args) {Файл файл = новый файл ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Драйвер WebDriver = новый PhantomJSDriver ();driver.get ("http://www.google.com");WebElement element = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Заголовок страницы: + driver.getTitle ());driver.quit ();}}

Шаг 6) Запустите код. Вы увидите, что вывод отображается в консоли, а браузер не запускается.

ПРИМЕЧАНИЕ . При первом запуске, в зависимости от ваших настроек, вы можете получить предупреждение системы безопасности от Windows, чтобы разрешить запуск PhantomJS. Щелкните Разрешить доступ.

Многие организации используют Phantom.JS для различных целей, например,

  • Безголовое тестирование
  • Скриншот
  • Автоматизация страниц
  • Сетевой мониторинг
  • Для рендеринга скриншотов панели управления для своих пользователей
  • Чтобы запустить модульные тесты в командной строке
  • Создание справочников сотрудников из HTML в PDF
  • В сочетании с QUnit для набора тестов

Резюме

Чтобы быстро протестировать приложение в различных браузерах и без каких-либо визуальных помех, используется Headless browser Testing. Благодаря своей скорости, точности и простоте доступа к функциям драйвер HTML-модуля и PhantomJS набирают популярность для тестирования браузеров без подключения к компьютеру. Выполнив несколько простых шагов, вы узнаете, насколько легко эти инструменты могут быть интегрированы с другими инструментами и могут выполнять тестовый код.