2010-10-24 21 views
20

No estoy seguro de entender la diferencia. WebDriver API también controla directamente el navegador de su elección. ¿Cuándo deberías usar el control remoto de selenio (selenio RC) en su lugar?¿Cuál es la diferencia entre Selenium's Remote Control vs WebDriver?

En este momento, mi situación actual es que estoy probando una aplicación web al escribir una suite con Selenium WebDriver API y dejar que se ejecute en mi computadora. Las pruebas tardan más y más en completarse, por lo que he estado buscando formas de ejecutar las pruebas en un servidor Linux.

Si utilizo Selenium Remote Control, ¿esto significa que tengo que volver a escribir todo lo que escribí con WebDriver API?

Me estoy confundiendo con Selenium Grid, Hudson, Selenium RC. Encontré un plugin de Selenium Grid para Hudson, pero no estoy seguro si esto incluye Selenium RC.

¿Estoy tomando la ruta correcta? Visualizo la siguiente arquitectura:

  • Hudson ejecutándose en algunos servidores dedicados de Ubuntu.
  • Hudson con Xvnc & Selenium Grid plugin. (¿Debo instalar Firefox por separado?)
  • Rejilla de Selenio con suites de prueba RC de selenio.

Creo que esto es mucho más eficiente que la ejecución de pruebas en mi computadora de escritorio actual con WebDriver API.

+0

Duplicado exacto de [¿cuál es la relación entre selenium rc y webdriver?] (Http://stackoverflow.com/questions/3619824/whats-the-relationship-between-selenium-rc-and-webdriver) –

Respuesta

3

Por lo que yo entiendo, la implementación de Webdriver comenzó poco después de Selenium RC. Desde mi punto de vista, WebDriver es una solución más flexible, que solucionó algunos problemas molestos de SeleniumRC.

WebDriver proporciona una interfaz estándar para probar la GUI web. Existen varias implementaciones de esta interfaz (HTTP, específica del navegador y basada en Selenium). Como usted ya tiene algunas pruebas WebDriver, debe estar familiarizado con los documentos básicos como this

Las pruebas son cada vez más y más tiempo en completarse, por lo que han estado buscando formas de ejecutar las pruebas en un servidor Linux.

¿Has intentado encontrar los cuellos de botella reales? No estoy seguro, esa eliminación de la capa WebDriver ayudará. Creo que la mayor parte del tiempo se usa en los comandos de Selenium y en las solicitudes HTTP para el sistema bajo prueba.

Si uso del mando a distancia sleneium, hace esto que tengo que volver a escribir todo lo que escribí con API WebDriver?

En general, sí. Si no implementó alguna capa adicional entre el código de pruebas y WebDriver.

En cuanto a Selenium Grid: Puede iniciar varias instancias de Selenium RC en varios nodos [virtuales] diferentes, y luego registrarlos en Selenium Grid. Sus pruebas se conectan a Selenium Grid, y redirige todos los comandos a instancias de SeleniumRC, coordinándolos de acuerdo con los navegadores requeridos.

Para los detalles de Hudson Plugin se puede encontrar más información here

14

WebDriver es ahora selenio se fusionan 2. Las bases de código selenio y WebDriver. WebDriver resuelve una serie de problemas que tiene el Selenium y el Selenium soluciona una serie de problemas que tiene Webdriver.

Si ha escrito sus pruebas en Selenium uno, no tiene que volver a escribirlas para trabajar con Selenium 2. Nosotros, los desarrolladores principales, lo hemos escrito para que cree una instancia de navegador e inyecte eso en Selenium y su Las pruebas de Selenium 1 funcionarán en Selenium 2. He puesto un ejemplo a continuación para usted.

// 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"); 

Selenio 2 por desgracia, no se ha puesto en Selenio 2 pero no debe ser demasiado largo hasta que se haya añadido desde que estamos esperando para llegar beta en el próximo par de meses.

+2

+1. Esto me ayudó a obtener mi código fijo. Cambiar de IDE a WebDriver ha sido lo más molesto. La documentación de Selenium es horrible. Sigo teniendo que descubrir la excepción después de la excepción. ¿Conoces alguna documentación que ayude con la conversión? He recorrido la parte de extensiones de usuario. Ahora estoy tratando de descubrir por qué los localizadores no funcionan (como LinkText o XPath). Parece que la conversión de formato en el IDE realmente no funciona bien. – MacGyver

+0

Todavía está un poco confundido acerca de cómo el Selenium RC se ajusta a la imagen en función de esa respuesta. Cuando dices que "las bases de los códigos de Selenium y WebDriver se están fusionando", ¿te refieres a Selenium RC como Selenium? –

+0

@EinDoofusyes, en este contexto Selenium es Selenium RC (o también conocido como Selenium 1.0) y WebDriver es, bueno ... WebDriver. Juntos se fusionaron con Selenium WebDriver (también conocido como Selenium 2.0) – Stas

Cuestiones relacionadas