bien, intentaría explicar las diferencias en los detalles.
Hablando de pruebas en paralelo, es mejor usar rejilla de selenio. Concepto básico de selenio RC y rejilla de selenio. Puede entrar en más detalles here
Algunas palabras sobre selenio WebDriver:
La nueva función primaria en Selenio 2.0 es la integración de la API WebDriver. WebDriver está diseñado para proporcionar una interfaz de programación más simple y concisa junto con algunas limitaciones en la API de Selenium-RC. Selenium-WebDriver se desarrolló para admitir mejor las páginas web dinámicas donde los elementos de una página pueden cambiar sin que la página se vuelva a cargar. El objetivo de WebDriver es proporcionar una API orientada a objetos bien diseñada que brinde un soporte mejorado para los modernos problemas avanzados de prueba de aplicaciones web.
¿Cómo maneja WebDriver el navegador en comparación con Selenium-RC?
Selenium-WebDriver realiza llamadas directas al navegador utilizando la compatibilidad nativa de cada navegador para la automatización. La forma en que se realizan estas llamadas directas y las características que admiten depende del navegador que está utilizando. La información sobre cada 'controlador de navegador' se proporciona más adelante en este capítulo. Para aquellos familiarizados con Selenium-RC, esto es bastante diferente de lo que está acostumbrado. Selenium-RC funciona de la misma manera para cada navegador compatible. Inyectó funciones de JavaScript en el navegador cuando el navegador fue cargado y luego usó su javascript para conducir el AUT dentro del navegador. WebDriver no usa esta técnica. Nuevamente, maneja el navegador directamente usando el soporte incorporado del navegador para la automatización.
WebDriver y el Selenio-Servidor
Usted puede, o no, necesitan el servidor de selenio, dependiendo de cómo se va a utilizar Selenio-WebDriver. Si solo usará la API de WebDriver, no necesita el Servidor Selenium. Si su navegador y todas las pruebas se ejecutarán en la misma máquina, y sus pruebas solo usan la API de WebDriver, entonces no necesita ejecutar el Servidor Selenium; WebDriver ejecutará el navegador directamente. Aunque hay algunas razones para usar el Selenium-Server con Selenium-WebDriver.
- está usando el Selenio-Grid para distribuir sus pruebas sobre múltiples máquinas o máquinas virtuales (VM).
- Desea conectarse a una máquina remota que tenga un navegador particular versión que no está en su máquina actual.
- que no esté utilizando los enlaces Java (es decir, Python, C#, o Ruby) y le gustaría utilizar HtmlUnit conductor
selenio WebDriver Los conductores de WebDriver es el nombre de la interfaz clave contra qué pruebas deben escribirse, pero hay varias implementaciones. Estos incluyen:
HtmlUnit conductor Esta es actualmente la aplicación más rápida y ligera de WebDriver. Como su nombre indica, esto se basa en HtmlUnit. HtmlUnit es una implementación basada en Java de un WebBrowser sin una GUI. Para cualquier enlace de idioma (que no sea java), se requiere que el Servidor Selenium utilice este controlador.
Pros
- aplicación más rápida de WebDriver
- Una solución pura de Java y por lo que es independiente de la plataforma.
- soporte JavaScript
Contras
- Emula el comportamiento de otros navegadores de JavaScript (véase más adelante)
JavaScript en el HtmlUnit conductor Ninguno de los navegadores populares utiliza el motor de JavaScript utilizado por HtmlUnit (Rhino).Si prueba JavaScript usando HtmlUnit, los resultados pueden diferir significativamente de esos navegadores. Cuando decimos "JavaScript" en realidad queremos decir "JavaScript y el DOM". Aunque el DOM está definido por el W3C, cada navegador tiene sus propias peculiaridades y diferencias en la implementación del DOM y en cómo interactúa JavaScript con él. HtmlUnit tiene una implementación impresionantemente completa del DOM y tiene un buen soporte para usar JavaScript, pero no es diferente de cualquier otro navegador: tiene sus propios caprichos y diferencias tanto del estándar W3C como de las implementaciones DOM de los principales navegadores, a pesar de su capacidad de imitar a otros navegadores. Con WebDriver, tuvimos que hacer una elección; ¿Permitimos las capacidades de JavaScript de HtmlUnit y corremos el riesgo de que los equipos se encuentren con problemas que solo se manifiestan allí, o dejamos JavaScript desactivado, sabiendo que hay cada vez más sitios que dependen de JavaScript? Tomamos el enfoque conservador, y de forma predeterminada hemos deshabilitado la compatibilidad cuando utilizamos HtmlUnit. Con cada versión de WebDriver y HtmlUnit, volvemos a evaluar esta decisión: esperamos habilitar JavaScript de forma predeterminada en la HtmlUnit en algún momento.
Para investigar más profundamente en la configuración de WebDriver ver this
De HtmlUnit documentation: HtmlUnit no es un marco de pruebas de unidad genérica. Es específicamente una forma de simular un navegador para fines de prueba y está destinado a ser utilizado en otro marco de prueba como JUnit o TestNG.
Así a la conclusión de selenio y la diferencia HtmlUnit: HtmlUnit es una aplicación basada en Java de un WebBrowser sin una GUI y una forma de simular un navegador para propósitos de prueba y Selenio-WebDriver realiza llamadas directas al navegador usando la compatibilidad nativa de cada navegador para la automatización. podemos ver que HtmlUnit proporciona API sin posibilidad de GUI para la automatización, mientras que WebDriver proporciona las posibilidades de automatización de los navegadores internos.
Hablando de automatización móvil, selenio también tiene un controlador de iPhone iPhone Driver wiki article and Driver Android Android Driver wiki article
Véase también this presentation
Desafortunadamente no puedo dar mi evaluación de la experiencia de trabajo de los conductores móviles como yo lidiar con la automatización web (sin dispositivos móviles). También sepa que Cucumber
(herramienta de automatización) es popular entre los autómatas móviles. ver this y this.
esperamos que venga un bonito poco más claro para usted ahora =)
ha pensado en utilizar PhantomJS o "sin cabeza Chrome" en vez ? – djangofan