Подтвердить что ты не робот

В чем разница между Selenium Remote Control и WebDriver?

Я не уверен, что я понимаю разницу. API WebDriver также напрямую контролирует выбранный браузер. Когда следует использовать селеновый пульт дистанционного управления (селен RC)?

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

Если я использую Selenium Remote Control, значит ли это, что мне нужно переписать все, что я написал с помощью API WebDriver?

Меня путают с Selenium Grid, Hudson, Selenium RC. Я нашел плагин Selenium Grid для Hudson, но не уверен, что это включает Selenium RC.

Я беру правильный маршрут? Я предвижу следующую архитектуру:

  • Хадсон работает на нескольких выделенных серверах Ubuntu.
  • Хадсон работает с плагинами Xvnc и Selenium Grid. (Мне нужно установить Firefox отдельно?)
  • Селевая сетка, использующая селевые RC-комплекты.

Я думаю, что это гораздо эффективнее, чем запуск теста на моем рабочем рабочем столе с API WebDriver.

4b9b3361

Ответ 1

Насколько я понимаю, реализация Webdriver началась немного позже, чем Selenium RC. С моей точки зрения, WebDriver является более гибким решением, которое устраняет некоторые неприятные проблемы SeleniumRC.

WebDriver предоставляет стандартный интерфейс для тестирования веб-графического интерфейса. Существует несколько реализаций этого интерфейса (HTTP, специфичный для браузера и основанный на Selenium). Поскольку у вас уже есть некоторые тесты WebDriver, вы должны быть знакомы с базовыми документами, такими как this

Тесты становятся все длиннее и длиннее, поэтому я искал способы запуска тестов на сервере linux.

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

Если я использую дистанционное управление sleneium, это означает, что я должен переписать все Я написал с API WebDriver?

Как правило, да. Если вы не реализовали дополнительный слой между кодом тестирования и WebDriver.

Что касается селеновой сетки: Вы можете запустить несколько экземпляров Selenium RC на нескольких разных [виртуальных] узлах, а затем зарегистрировать их в Selenium Grid. Ваши тесты подключаются к Selenium Grid и перенаправляют все команды на экземпляры SeleniumRC, координируя их в соответствии с требуемыми браузерами.

Подробнее о hudson-плагине вы можете найти здесь здесь

Ответ 2

WebDriver теперь Selenium 2. Основы кода Selenium и WebDriver объединяются. WebDriver получает множество проблем, которые Selenium имеет и Selenium получает по ряду проблем, которые имеет Webdriver.

Если вы написали свои тесты в Selenium, вам не нужно переписывать их для работы с Selenium 2. Мы, основные разработчики, написали его так, чтобы вы создали экземпляр браузера и ввели его в Selenium и ваш Selenium 1 тест будет работать в Selenium 2. Я привел пример ниже для вас.

// You may use any WebDriver implementation. Firefox is used here as an example
WebDriver driver = new FirefoxDriver();

// A "base url", used by selenium to resolve relative URLs
String baseUrl = "http://www.google.com";

// Create the Selenium implementation
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);

// Perform actions with selenium
selenium.open("http://www.google.com");
selenium.type("name=q", "cheese");
selenium.click("name=btnG");

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