Selenium es una herramienta de automatización y una herramienta de prueba de software portátil para aplicaciones web. También se proporciona un lenguaje específico de dominio de prueba, para escribir casos de prueba se pueden usar lenguajes de programación, incluidos C#, Java, Perl, PHP, Python, Ruby, Scala, Groovy. No es compatible con la tecnología RIA (Rich Internet Application) como Silverlight JavaFX y Flex\Flash. Selenium no es una herramienta única. Es un paquete de productos de software que consta de los siguientes componentes:
Historia: Selenium fue desarrollado por Jason Huggins en 2004 en ThoughtWorks. Estaba trabajando en una aplicación web/interna en ThoughtWorks después de un tiempo y se dio cuenta de que, en lugar de probar su aplicación manualmente, podía automatizar sus pruebas. Desarrolló un programa JavaScript para probar su aplicación web, lo que le permitió volver a ejecutar las pruebas automáticamente. Llamó a su programa «JavaScriptTestRunner». Después de un tiempo, esta herramienta pasó a ser de código abierto y se renombró como Selenium Core.
Selenium Remote Control fue desarrollado por Paul Hammant. La razón detrás del desarrollo de Selenium RC fue que los evaluadores que usan el núcleo de Selenium tuvieron que instalar toda la aplicación bajo prueba y el servidor web en sus computadoras locales porque había algunas restricciones impuestas por la política del mismo origen. Para superar esta restricción, Paul Hammant tomó una decisión y desarrolló un servidor que actuará como un proxy HTTP para engañar al navegador web, por lo que piensa que Selenium Core y la aplicación web que se está probando provienen del mismo dominio.
Selenium IDE fue desarrollado por Shinya Kasatani de Japón. Se implementó como un complemento/complemento de Firefox y ahora podemos usar Selenium IDE en todos los navegadores web. Dio Selenium IDE al proyecto Selenium en 2006.
Selenium Grid fue desarrollado por Philippe Hanrigou en 2008. Es un servidor que permite que la prueba use instancias de navegador web que se ejecutan en máquinas remotas. Brinda la capacidad de ejecutar la prueba en un navegador web remoto, lo que ayuda a dividir una carga de prueba entre varias máquinas y ahorrará mucho tiempo. Permite ejecutar pruebas paralelas a través de diferentes plataformas y sistemas operativos. Grid proporcionó, como código abierto, una capacidad similar a la nube privada de Google para Selenium RC. Pat Lightbody ya había creado un sistema de nube privada llamado «HostedQA» y se lo vendió a Gomez, Inc.
Selenium WebDriver fue desarrollado por Simon Stewart en 2006. WebDriver automatiza y controla los inicios del navegador web. No se basa en JavaScript para la automatización. Controla el navegador directamente comunicándose con él. Fue el primer marco de prueba multiplataforma que podía controlar el navegador desde el nivel del sistema operativo.
En 2009, después de una reunión, todo el equipo de Selenium decidió fusionar los dos proyectos Selenium RC y WebDriver y llamarlo Selenium 2.0.
Selenium IDE: Al principio, Selenium IDE (Entorno de desarrollo integrado) se implementó como un complemento/complemento de Firefox y ahora se puede usar Selenium IDE en todos los navegadores web. Proporciona funcionalidad de grabación y reproducción. La figura muestra Selenium IDE.
Ventajas:
- Es una herramienta de código abierto.
- Proporcionar base, para extensiones.
- Proporciona soporte para múltiples navegadores.
- No se requiere experiencia en lenguaje de programación mientras se usa Selenium IDE.
- El usuario puede establecer puntos de interrupción y depuración.
- Proporciona funciones de grabación y reproducción.
Contras:
- No hay iteración de soporte ni operaciones condicionales.
- La ejecución es lenta.
- No tiene ninguna API.
- No proporciona ningún mecanismo para el manejo de errores.
Selenium RC: RC significa control remoto. Permite a los programadores codificar en diferentes lenguajes de programación como C#, Java, Perl, PHP, Python, Ruby, Scala, Groovy. La figura muestra cómo funciona el servidor de control remoto.
Ventajas:
- Es compatible con todos los navegadores web.
- Puede realizar iteraciones y operaciones condicionales.
- La ejecución es más rápida en comparación con IDE.
- Tiene generadores de resultados de prueba incorporados.
- Admite pruebas basadas en datos.
- Tiene una API madura y completa.
Contras:
- Se necesita conocimiento del lenguaje de programación.
- No admite pruebas para IOS/Android.
- Es un poco más lento que Selenium Webdriver en términos de ejecución.
- No es compatible con las funciones de grabación y reproducción.
- Configuración complicada.
Selenium Web Driver: Selenium Web Driver automatiza y controla los inicios del navegador web. No se basa en JavaScript para la automatización. Controla el navegador directamente comunicándose con él. La figura muestra cómo funciona el controlador web como una interfaz entre controladores y enlaces
Ventajas:
- Se comunica directamente con el navegador web.
- La ejecución es más rápida.
- Apoya a los oyentes.
- Admite pruebas de aplicaciones IOS/Android.
- La instalación es más sencilla que Selenium RC.
- Puramente orientado a objetos.
Contras:
- Requiere conocimientos de programación.
- No hay un mecanismo incorporado para la generación del archivo de resultados de la prueba.
Selenium Grid: Básicamente, es un servidor que permite que la prueba use una instancia de navegador web que se ejecuta en máquinas remotas. Brinda la capacidad de ejecutar la prueba en un navegador web remoto, lo que ayuda a dividir una carga de prueba entre varias máquinas y ahorrará mucho tiempo. Permite ejecutar pruebas paralelas a través de diferentes plataformas y sistemas operativos.
Selenium Grid es una red de HUB y Nodes. Cada Node se registra en el HUB con una determinada configuración y el HUB conoce los navegadores disponibles en el Node. Cuando llega una solicitud al HUB para un navegador específico [con el objeto de capacidades deseado], el HUB, si encuentra una coincidencia para el navegador web solicitado, redirige la llamada a ese Node Grid en particular y luego se establece una sesión bidireccional y la ejecución empieza.
Publicación traducida automáticamente
Artículo escrito por Shubham Bansal 18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA