Selenium es una poderosa herramienta para el control programático del navegador web. Es funcional para todos los navegadores, funciona en todos los principales sistemas operativos y sus scripts están escritos en diferentes lenguajes, es decir, Python, Java, C#, etc. Estaremos trabajando con Python. Selenium tiene cuatro componentes principales: Selenium IDE, Selenium RC, Selenium Web driver, Selenium GRID.
Conceptos básicos de selenio
Componentes
Selenium ha estado en la industria durante mucho tiempo y es utilizado por probadores automáticos en todo el mundo.
Revisemos los cuatro componentes principales de Selenium:
selenio IDE
Selenium IDE (Entorno de desarrollo integrado) es la herramienta principal de la serie Selenium. Es un completo entorno de desarrollo integrado (IDE) para pruebas de Selenium. Se implementa como un complemento de Firefox y una extensión de Chrome. Permite la grabación, edición y depuración de pruebas funcionales. Anteriormente se conocía como Selenium Recorder. El Selenium-IDE fue creado originalmente por Shinya Kasatani y fue donado al proyecto Selenium en 2006. El Selenium-IDE no recibió mucho mantenimiento antes. IDE de selenio comenzó a mantenerse activamente en 2018.
Los scripts pueden grabarse automáticamente y editarse manualmente para brindar soporte de finalización automática y la capacidad de mover pedidos rápidamente. Las secuencias de comandos se graban en Selenium, un lenguaje de secuencias de comandos de prueba especial para Selenium. Selenese proporciona comandos para realizar acciones en un navegador (hacer clic en un enlace, seleccionar una opción) y recuperar datos de las páginas resultantes.
Selenio RC (control remoto)
Selenium Remote Control (RC) es un servidor, escrito en Java, que acepta comandos para el navegador a través de HTTP. RC puede escribir pruebas automatizadas para aplicaciones web en cualquier lenguaje de programación, lo que permite una mejor integración de Selenium en los marcos de pruebas de unidades existentes. Para facilitar las pruebas de escritura, el proyecto Selenium actualmente proporciona controladores de cliente para PHP, Python, Ruby, .NET, Perl y Java. El controlador Java también se puede utilizar con JavaScript (a través del motor Rhino). Por ejemplo, se necesita un servidor Selenium RC para iniciar un caso de prueba html, lo que significa que el puerto debe ser diferente para cada ejecución paralela. Sin embargo, para las pruebas de Java/PHP, solo se debe ejecutar continuamente una instancia de RC Selenium.
Controlador web de selenio
Selenium WebDriver es el sucesor de Selenium RC. Selenium WebDriver toma comandos (enviados en Selene o a través de la API del cliente) y los envía a un navegador. Esto se implementa a través de un controlador de navegador específico del navegador, que envía comandos a un navegador y recupera los resultados. La mayoría de los controladores de navegador inician y acceden a una aplicación de navegador (como Firefox, Google Chrome, Internet Explorer, Safari o Microsoft Edge); También hay un controlador de navegador HtmlUnit, que simula un navegador usando el navegador sin interfaz HtmlUnit.
Selenium WebDriver no requiere un servidor especial para ejecutar pruebas. En cambio, WebDriver inicia una instancia de navegador y la controla. Sin embargo, Selenium Grid se puede usar con WebDriver para realizar pruebas en sistemas remotos (ver más abajo). Siempre que sea posible, WebDriver utiliza la funcionalidad del nivel del sistema operativo nativo en lugar de los comandos de JavaScript basados en el navegador para controlar el navegador. Esto evita problemas con diferencias sutiles entre los comandos nativos y JavaScript, incluidas las restricciones de seguridad.
Rejilla de selenio
Selenium Grid es un servidor que permite que las pruebas usen instancias de navegador web que se ejecutan en máquinas remotas. Con Selenium Grid, un único servidor actúa como concentrador. Las pruebas se ponen en contacto con el concentrador para acceder a las instancias del navegador. El concentrador tiene una lista de servidores que brindan acceso a las instancias del navegador (nodos WebDriver) y permiten que las pruebas usen estas instancias. Selenium Grid permite ejecutar pruebas en paralelo en varias máquinas y administrar diferentes versiones y configuraciones del navegador de forma centralizada (en lugar de cada prueba individual).
Ejecutar pruebas en instancias de navegador remoto es útil para distribuir la carga de prueba en varias máquinas y para ejecutar pruebas en navegadores que se ejecutan en diferentes plataformas o sistemas operativos. Este último es muy útil en situaciones en las que no todos los navegadores que se utilizarán para las pruebas pueden ejecutarse en la misma plataforma.
Para obtener más información, consulte – Componentes de Selenium.
aspectos
- Código abierto y portátil – Selenium es un marco de prueba web portátil y de código abierto.
- Combino herramienta y DSL – Selenium es una combinación de herramientas y DSL (Domain Specific Language) para realizar diferentes tipos de pruebas.
- Más fácil de entender y aplicar – Los comandos de Selenium se clasifican en términos de diferentes clases, lo que los hace más fáciles de entender y aplicar.
- Reducir el tiempo de ejecución de la prueba – Selenium admite la ejecución de pruebas paralelas, lo que reduce el tiempo necesario para ejecutar pruebas paralelas.
- Se requieren menos recursos – Selenium requiere menos recursos en comparación con sus competidores como UFT, RFT, etc.
- Admite múltiples lenguajes de programación – C#, Java, Python, PHP, Ruby, Perl y JavaScript
- Admite múltiples sistemas operativos -Android, iOS, Windows, Linux, Mac, Solaris.
- Soporta múltiples navegadores – Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari, etc.
- Ejecución de prueba simultánea – También admite la ejecución de pruebas en paralelo, lo que reduce el tiempo y aumenta la eficiencia de las pruebas.
Para obtener más información, consulte – Características de Selenium Webdriver
Aplicaciones
Selenium WebDriver se utiliza para automatizar las pruebas de aplicaciones web para verificar que funcionen como se espera. Es compatible con muchos navegadores como Firefox, Chrome, IE y Safari. Sin embargo, al usar Selenium WebDriver, podemos automatizar las pruebas solo para aplicaciones web.
- Código abierto y portátil – Selenium es un marco de prueba web portátil y de código abierto.
- Menos carga y estrés para los probadores – Como se mencionó anteriormente, la cantidad de tiempo requerida para realizar casos de prueba repetidos en todas y cada una de las nuevas compilaciones se reduce a casi cero. Por lo tanto, se reduce la carga del probador.
- Reducción de costos para clientes comerciales – La empresa debe pagar a los evaluadores su salario, que se ahorra mediante el uso de una herramienta de prueba automatizada. La automatización no solo ahorra tiempo, sino que también aporta beneficios económicos a la empresa.
- Mayor cobertura de prueba – Con el uso de Selenium, el tiempo de prueba se reduce para que el probador pueda hacer más pruebas en otros casos de prueba al mismo tiempo.
- Reducir el tiempo de ejecución de la prueba – Selenium admite la ejecución de pruebas paralelas, lo que reduce el tiempo necesario para ejecutar pruebas paralelas.
Para obtener más información, consulte – Aplicaciones y usos de Selenium WebDriver
Límites
- Sin soporte para aplicaciones de escritorio – Selenium no admite pruebas de aplicaciones de escritorio.
- Pericia – Selenium requiere experiencia de su equipo y recursos para administrar.
- Mantenibilidad y Escalabilidad – Selenium es un marco de trabajo de mantenimiento pesado, y difícil de escalar a medida que uno crece.
- Foros de código abierto – Dado que Selenium es un software de código abierto, uno debe confiar en los foros de la comunidad para resolver sus problemas técnicos.
- No hay soporte para REST y Platform Soap – No podemos realizar pruebas automatizadas en servicios web como SOAP o REST utilizando Selenium.
- Sin capacidad de informes – Selenium no tiene capacidades de informes integradas, uno tiene que confiar en complementos como JUnit y TestNG para los informes de prueba.
- Prueba de imagen – Las imágenes no se pueden probar. Selenium debe integrarse con Sikuli para las pruebas de imagen.
Para obtener más información, consulte – Limitaciones de Selenium Webdriver