¿Qué es Selenium WebDriver? Diferencia con RC

Tabla de contenido:

Anonim

¿Qué es Selenium Webdriver?

Selenium Webdriver es una colección de API de código abierto que se utiliza para probar aplicaciones web. La herramienta Selenium Webdriver se utiliza para automatizar las pruebas de aplicaciones web para verificar que funcione como se espera o no. Es principalmente compatible con navegadores como Firefox, Chrome, Safari e Internet Explorer. También le permite ejecutar pruebas en varios navegadores.

WebDriver también le permite utilizar un lenguaje de programación al crear sus scripts de prueba (no es posible en Selenium IDE).

Ahora puede usar operaciones condicionales como if-then-else o switch-case. También puede realizar bucles como do-while.

WebDriver admite los siguientes lenguajes de programación

  • Java
  • .Neto
  • PHP
  • Pitón
  • Perl
  • Rubí

No es necesario que los conozca todos. Solo necesitas estar bien informado en uno. Sin embargo, en este tutorial, usaremos Java con Eclipse como nuestro IDE.

Diferencia entre Selenium RC y Webdriver

Antes de la llegada de WebDriver en 2006, existía otra herramienta de automatización llamada Selenium Remote Control. Tanto WebDriver como Selenium RC tienen las siguientes características:

  • Ambos le permiten utilizar un lenguaje de programación al diseñar sus scripts de prueba.
  • Ambos le permiten ejecutar sus pruebas en diferentes navegadores.

Entonces, ¿en qué se diferencian? Discutamos las respuestas.

1. Arquitectura

La arquitectura de WebDriver es más simple que la de Selenium RC .

  • Controla el navegador desde el nivel del sistema operativo
  • Todo lo que necesita es el IDE de su lenguaje de programación (que contiene sus comandos de Selenium) y un navegador.
La arquitectura de Selenium RC es mucho más complicada.
  • Primero debe iniciar una aplicación separada llamada Selenium Remote Control (RC) Server antes de poder comenzar a probar
  • El Selenium RC Server actúa como un "intermediario" entre sus comandos de Selenium y su navegador
  • Cuando comienzas a probar, Selenium RC Server "inyecta" un programa Javascript llamado Selenium Core en el navegador.
  • Una vez inyectado, Selenium Core comenzará a recibir instrucciones transmitidas por RC Server desde su programa de prueba.
  • Cuando se reciben las instrucciones, Selenium Core las ejecutará como comandos Javascript.
  • El navegador obedecerá las instrucciones de Selenium Core y transmitirá su respuesta al servidor RC.
  • El servidor RC recibirá la respuesta del navegador y luego le mostrará los resultados.
  • RC Server obtendrá la siguiente instrucción de su secuencia de comandos de prueba para repetir todo el ciclo.

2. Velocidad

WebDriver es más rápido que Selenium RC, ya que habla directamente con el navegador y utiliza el motor del navegador para controlarlo.

Selenium RC es más lento ya que usa un programa Javascript llamado Selenium Core. Este Selenium Core es el que controla directamente el navegador, no tú.

3. Interacción en la vida real

WebDriver interactúa con los elementos de la página de una manera más realista. Por ejemplo, si tiene un cuadro de texto deshabilitado en una página que estaba probando, WebDriver realmente no puede ingresar ningún valor en él, al igual que una persona real no puede.

Selenium Core, al igual que otros códigos JavaScript, puede acceder a elementos deshabilitados. En el pasado, los probadores de Selenium se quejaban de que Selenium Core podía ingresar valores en un cuadro de texto desactivado en sus pruebas. Diferencias en API

4. API

La API de Selenium RC está más madura, pero contiene redundancias y, a menudo, comandos confusos . Por ejemplo, la mayoría de las veces, los evaluadores se confunden entre usar type o typeKeys; o si usar click, mouseDown o mouseDownAt. Peor aún, ¡ diferentes navegadores interpretan cada uno de estos comandos de diferentes maneras también!

La API de WebDriver es más simple que la de Selenium RC . No contiene comandos redundantes y confusos.

5. Soporte de navegador

WebDriver puede admitir el navegador HtmlUnit sin cabeza

HtmlUnit se denomina "sin cabeza" porque es un navegador invisible, no tiene GUI.

Es un navegador muy rápido porque no se pierde tiempo esperando que se carguen los elementos de la página. Esto acelera los ciclos de ejecución de las pruebas.

Dado que es invisible para el usuario, solo se puede controlar a través de medios automatizados.

Selenium RC no es compatible con el navegador HtmlUnit sin cabeza. Necesita un navegador real y visible para operar.

Limitaciones de WebDriver

WebDriver no puede admitir fácilmente nuevos navegadores

Recuerde que WebDriver opera a nivel de sistema operativo. Además, recuerde que los diferentes navegadores se comunican con el sistema operativo de diferentes maneras. Si aparece un nuevo navegador, es posible que tenga un proceso de comunicación con el sistema operativo diferente al de otros navegadores. Por lo tanto, debe darle al equipo de WebDriver bastante tiempo para resolver ese nuevo proceso antes de que puedan implementarlo en la próxima versión de WebDriver.

Sin embargo, depende del equipo de desarrolladores de WebDriver decidir si deben admitir el nuevo navegador o no.

Selenium RC tiene un generador de resultados de prueba incorporado

Selenium RC genera automáticamente un archivo HTML con los resultados de las pruebas . El formato del informe fue preestablecido por el propio RC. Eche un vistazo a un ejemplo de este informe a continuación.

WebDriver no tiene un comando integrado que genere automáticamente un archivo de resultados de prueba . Tendría que confiar en la ventana de salida de su IDE o diseñar el informe usted mismo utilizando las capacidades de su lenguaje de programación y almacenarlo como texto, HTML, etc.

Resumen

  • WebDriver es una herramienta para probar aplicaciones web en diferentes navegadores utilizando diferentes lenguajes de programación.
  • Ahora puede realizar pruebas potentes porque WebDriver le permite utilizar un lenguaje de programación de su elección al diseñar sus pruebas.
  • WebDriver es más rápido que Selenium RC debido a su arquitectura más simple.
  • WebDriver habla directamente con el navegador, mientras que Selenium RC necesita la ayuda del servidor RC para hacerlo.
  • La API de WebDriver es más concisa que la de Selenium RC.
  • WebDriver puede admitir HtmlUnit, mientras que Selenium RC no.
  • Los únicos inconvenientes de WebDriver son:
    • No puede admitir fácilmente nuevos navegadores , pero Selenium RC sí.
    • No tiene un comando incorporado para la generación automática de resultados de prueba.