2010-10-24 5 views
20

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

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

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

Я смущаюсь с селеновой сеткой, Хадсон, Селен RC. Я нашел плагин Selenium Grid для Hudson, но не уверен, что это включает Selenium RC.

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

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

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

+0

Точный дубликат [что такое отношения между селеном rc и webdriver?] (Http://stackoverflow.com/questions/3619824/whats-the-relationship-between-selenium-rc-and-webdriver) –

ответ

3

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

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

Тестов всех длиннее и длиннее, чтобы закончить, так что я искал способы выполнения тестов на сервере Linux.

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

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

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

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

Для получения дополнительной информации Гудзонова плагина вы можете найти более подробную информацию here

14

WebDriver теперь Селен 2. Кодовые основы Селен и 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"); 

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

+2

+1. Это помогло мне восстановить мой код. Переключение с IDE на WebDriver было самым неприятным. Документация Селена ужасна. После исключения мне приходится вычислять исключение. Вы случайно не знаете документацию, которая помогает при конверсии? Я получил часть пользовательских расширений. Теперь я пытаюсь понять, почему локаторы не работают (например, LinkText или XPath). Похоже, что преобразование формата в IDE не очень хорошо работает. – MacGyver

+0

Все еще немного смущено тем, как Selenium RC вписывается в изображение на основе этого ответа. Когда вы говорите, что «коды кодов Selenium и WebDriver объединяются», вы имеете в виду Selenium RC как Selenium? –

+0

@EinDoofusyes, в этом контексте Selenium является Selenium RC (или также известен как Selenium 1.0), а WebDriver - это хорошо ... WebDriver. Вместе они были объединены с Selenium WebDriver (он же Selenium 2.0) – Stas