В чем разница между 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.
Ответы
Ответ 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, но он не должен быть слишком длинным, пока он не будет добавлен, поскольку мы надеемся достичь бета-тестирования в ближайшие пару месяцев.