¿Qué es el selenio? Introducción a las pruebas de automatización de selenio

Tabla de contenido:

Anonim

¿Qué es el selenio?

Selenium es un marco de prueba automatizado gratuito (de código abierto) que se utiliza para validar aplicaciones web en diferentes navegadores y plataformas. Puede utilizar varios lenguajes de programación como Java, C #, Python, etc. para crear Selenium Test Scripts. Las pruebas realizadas con la herramienta de prueba de selenio generalmente se conocen como pruebas de selenio.

Selenium Software no es solo una herramienta, sino un conjunto de software, y cada pieza satisface las diferentes necesidades de pruebas de control de calidad de Selenium de una organización. Aquí está la lista de herramientas

  • Entorno de desarrollo integrado de selenio (IDE)
  • Control remoto de selenio (RC)
  • WebDriver
  • Rejilla de selenio
Introducción al selenio

Por el momento, Selenium RC y WebDriver se fusionan en un solo marco para formar Selenium 2 . Selenium 1, por cierto, se refiere a Selenium RC.

Haga clic aquí si el video no es accesible

En este tutorial, aprenderá:

  • ¿Qué es el selenio?
  • ¿Quién desarrolló el selenio?
  • El mismo problema de política de origen
  • Nacimiento del control remoto de selenio (Selenium RC)
  • Nacimiento de la rejilla de selenio
  • Nacimiento de selenio IDE
  • Nacimiento de WebDriver
  • Nacimiento del selenio 2
  • Entonces, ¿por qué el nombre de selenio?
  • Breve introducción Selenium IDE
  • Breve introducción Selenium Remote Control (Selenium RC)
  • Breve introducción WebDriver
  • Rejilla de selenio
  • Nota sobre la compatibilidad con el navegador y el entorno
  • Cómo elegir la herramienta de selenio adecuada para sus necesidades
  • Una comparación entre selenio y QTP (ahora UFT)
  • Ventajas del QTP sobre el selenio

¿Quién desarrolló el selenio?

Dado que Selenium es una colección de diferentes herramientas, también tenía diferentes desarrolladores. A continuación se muestran las personas clave que hicieron contribuciones notables al Proyecto Selenium

Principalmente, Selenium fue creado por Jason Huggins en 2004 . Ingeniero en ThoughtWorks, estaba trabajando en una aplicación web que requería pruebas frecuentes. Al darse cuenta de que las pruebas manuales repetitivas de su aplicación se estaban volviendo cada vez más ineficientes, creó un programa JavaScript que controlaría automáticamente las acciones del navegador. Llamó a este programa como " JavaScriptTestRunner ".

Al ver el potencial de esta idea para ayudar a automatizar otras aplicaciones web, hizo JavaScriptRunner de código abierto, que luego fue rebautizado como Selenium Core .

El mismo problema de política de origen

La política del mismo origen prohíbe que el código JavaScript acceda a elementos de un dominio que sea diferente de donde se lanzó . Por ejemplo, el código HTML de www.google.com utiliza un programa JavaScript "randomScript.js". La misma política de origen solo permitirá que randomScript.js acceda a páginas dentro de google.com como google.com/mail, google.com/login o google.com/signup. Sin embargo, no puede acceder a páginas de diferentes sitios como yahoo.com/search o guru99.com porque pertenecen a dominios diferentes.

Esta es la razón por la que antes de Selenium RC, los probadores necesitaban instalar copias locales tanto de Selenium Core (un programa de JavaScript) como del servidor web que contiene la aplicación web que se está probando para que pertenezcan al mismo dominio.

Nacimiento del control remoto de selenio (Selenium RC)

Desafortunadamente; Los probadores que usaban Selenium Core tenían que instalar toda la aplicación bajo prueba y el servidor web en sus propias computadoras locales debido a las restricciones impuestas por la misma política de origen. Entonces, otro ingeniero de ThoughtWork , Paul Hammant , decidió crear un servidor que actuará como un proxy HTTP para "engañar" al navegador haciéndole creer que Selenium Core y la aplicación web que se está probando provienen del mismo dominio. Este sistema se conoció como Selenium Remote Control o Selenium 1 .

Nacimiento de la rejilla de selenio

Selenium Grid fue desarrollado por Patrick Lightbody para abordar la necesidad de minimizar los tiempos de ejecución de las pruebas tanto como sea posible. Inicialmente llamó al sistema " Control de calidad alojado ". Fue capaz de capturar capturas de pantalla del navegador durante etapas significativas y también de enviar comandos de Selenium a diferentes máquinas simultáneamente.

Nacimiento de selenio IDE

Shinya Kasatani de Japón creó Selenium IDE , una extensión de Firefox que puede automatizar el navegador a través de una función de grabación y reproducción. Se le ocurrió esta idea para aumentar aún más la velocidad en la creación de casos de prueba. Donó Selenium IDE al Selenium Project en 2006 .

Nacimiento de WebDriver

Simon Stewart creó WebDriver alrededor de 2006 cuando los navegadores y las aplicaciones web se estaban volviendo más poderosos y más restrictivos con programas JavaScript como Selenium Core. Fue el primer marco de prueba multiplataforma que pudo controlar el navegador desde el nivel del sistema operativo.

Nacimiento del selenio 2


En 2008 , todo el equipo de Selenium decidió fusionar WebDriver y Selenium RC para formar una herramienta más poderosa llamada Selenium 2 , con WebDriver como núcleo . Actualmente, Selenium RC todavía se está desarrollando, pero solo en modo de mantenimiento. La mayoría de los esfuerzos del Proyecto Selenium ahora se centran en Selenium 2.

Entonces, ¿por qué el nombre de selenio?

El nombre Selenium proviene de una broma que Jason le contó una vez a su equipo. Durante el desarrollo de Selenium, otro marco de prueba automatizado fue popularizado por la compañía llamada Mercury Interactive (sí, la compañía que originalmente hizo QTP antes de que fuera adquirida por HP). Dado que el selenio es un antídoto bien conocido para el envenenamiento por mercurio, Jason sugirió ese nombre y sus compañeros de equipo lo tomaron. Así es como llegamos a llamar a este marco hasta el presente.

Breve introducción Selenium IDE

Selenium Integrated Development Environment (IDE) es el marco más simple de la suite Selenium y es el más fácil de aprender . Es un complemento de Firefox que puede instalar tan fácilmente como sea posible con otros complementos. Sin embargo, debido a su simplicidad, Selenium IDE solo debe usarse como una herramienta de creación de prototipos . Si desea crear casos de prueba más avanzados, deberá utilizar Selenium RC o WebDriver.

Breve introducción Selenium Remote Control (Selenium RC)

Selenium RC fue el marco de prueba insignia de todo el proyecto Selenium durante mucho tiempo. Esta es la primera herramienta de prueba web automatizada que permitió a los usuarios utilizar un lenguaje de programación que prefieran . A partir de la versión 2.25.0, RC puede admitir los siguientes lenguajes de programación:

  • Java
  • C#
  • PHP
  • Pitón
  • Perl
  • Rubí

Breve introducción WebDriver

WebDriver demuestra ser mejor que Selenium IDE y Selenium RC en muchos aspectos. Implementa un enfoque más moderno y estable en la automatización de las acciones del navegador. WebDriver, a diferencia de Selenium RC, no se basa en JavaScript para las pruebas de automatización de Selenium. Controla el navegador comunicándose directamente con él.

Los idiomas admitidos son los mismos que los de Selenium RC.

  • Java
  • C#
  • PHP
  • Pitón
  • Perl
  • Rubí

Rejilla de selenio

Selenium Grid es una herramienta que se utiliza junto con Selenium RC para ejecutar pruebas paralelas en diferentes máquinas y diferentes navegadores al mismo tiempo. La ejecución en paralelo significa ejecutar varias pruebas a la vez.

Características:

  • Permite la ejecución simultánea de pruebas en varios navegadores y entornos.
  • Ahorra tiempo enormemente.
  • Utiliza el concepto de concentrador y nodos . El hub actúa como una fuente central de comandos de Selenium para cada nodo conectado a él.

Nota sobre la compatibilidad con el navegador y el entorno

Debido a sus diferencias arquitectónicas, Selenium IDE, Selenium RC y WebDriver admiten diferentes conjuntos de navegadores y entornos operativos.

IDE de selenio WebDriver
Soporte del navegador Mozilla Firefox Internet Explorer versiones 6 a 11, Microsoft Edge versión 12.10240 y superior de 32 y 64 bits (compatibilidad parcial con algunas funcionalidades en desarrollo) Firefox 3.0 y superior Google Chrome 12.0. y superior Opera 11.5 y superior Android - 2.3 y superior para teléfonos y tabletas (dispositivos y emuladores) iOS 3+ para teléfonos (dispositivos y emuladores) y 3.2+ para tabletas (dispositivos y emuladores) HtmlUnit 2.9 y superior
Sistema operativo Windows, Mac OS X, Linux Todos los sistemas operativos en los que se pueden ejecutar los navegadores anteriores.

Nota: Selenium WebDriver se denomina sucesor de Selenium RC, que ha sido obsoleto y anunciado oficialmente por SeleniumHQ.

Cómo elegir la herramienta de selenio adecuada para sus necesidades

Herramienta ¿Por qué elegir?

IDE de selenio

  • Para aprender sobre conceptos sobre pruebas automatizadas y Selenium, que incluyen:
  • Comandos seleneses como escribir, abrir, hacer clic y esperar, afirmar, verificar, etc.
  • Localizadores como id, name, xpath, selector css, etc.
  • Ejecución de código JavaScript personalizado mediante runScript
  • Exportación de casos de prueba en varios formatos.
  • Crear pruebas con poco o ningún conocimiento previo en programación.
  • Para crear casos de prueba simples y conjuntos de pruebas que puede exportar más tarde a RC o WebDriver.
  • Para probar una aplicación web solo contra Firefox y Chrome.

Selenio RC

  • Diseñar una prueba con un lenguaje más expresivo que el selenese
  • Para ejecutar su prueba en diferentes navegadores (excepto HtmlUnit) en diferentes sistemas operativos.
  • Para implementar sus pruebas en múltiples entornos usando Selenium Grid.
  • Para probar su aplicación con un nuevo navegador que admita JavaScript.
  • Para probar aplicaciones web con escenarios complejos basados ​​en AJAX.

WebDriver

  • Utilizar un determinado lenguaje de programación al diseñar su caso de prueba.
  • Para probar aplicaciones ricas en funcionalidades basadas en AJAX.
  • Para ejecutar pruebas en el navegador HtmlUnit.
  • Para crear resultados de prueba personalizados.

Rejilla de selenio

  • Para ejecutar sus scripts de Selenium RC en múltiples navegadores y sistemas operativos simultáneamente.
  • Para ejecutar un conjunto de pruebas enorme, eso debe completarse en el menor tiempo posible.

Una comparación entre selenio y QTP (ahora UFT)

Quick Test Professional (QTP) es una herramienta de prueba automatizada patentada que anteriormente pertenecía a la empresa Mercury Interactive antes de que fuera adquirida por Hewlett-Packard en 2006 . Selenium Tool Suite tiene muchas ventajas sobre QTP, como se detalla a continuación:

Ventajas y beneficios del selenio sobre QTP

Selenio QTP
Código abierto , de uso gratuito y gratuito. Comercial .
Altamente extensible Complementos limitados
Puede ejecutar pruebas en diferentes navegadores. Solo se pueden ejecutar pruebas en Firefox , Internet Explorer y Chrome
Soporta varios sistemas operativos Solo se puede usar en Windows
Soporta dispositivos móviles QTP admite la automatización de pruebas de aplicaciones móviles (iOS y Android) mediante la solución de HP llamada - HP Mobile Center
Puede ejecutar pruebas mientras el navegador está minimizado Necesita tener la aplicación bajo prueba para que sea visible en el escritorio
Puede ejecutar pruebas en paralelo . Solo se puede ejecutar en paralelo pero utilizando Quality Center, que nuevamente es un producto pago.

Ventajas del QTP sobre el selenio

Ventajas del QTP sobre el selenio
QTP Selenio
Puede probar aplicaciones web y de escritorio Solo puede probar aplicaciones web
Viene con un repositorio de objetos incorporado No tiene repositorio de objetos integrado
Automatiza más rápido que Selenium porque es un IDE con todas las funciones. Automatiza a un ritmo más lento porque no tiene un IDE nativo y solo se puede usar un IDE de terceros para el desarrollo
Las pruebas basadas en datos son más fáciles de realizar porque tienen tablas de datos locales y globales integradas . Las pruebas basadas en datos son más engorrosas, ya que debe confiar en las capacidades del lenguaje de programación para establecer valores para sus datos de prueba.
Puede acceder a los controles dentro del navegador (como la barra de favoritos, la barra de direcciones, los botones Atrás y Adelante, etc.) No se puede acceder a elementos fuera de la aplicación web bajo prueba.
Brinda soporte profesional al cliente No se ofrece soporte oficial al usuario.
Tiene capacidad nativa para exportar datos de prueba a formatos externos No tiene capacidad nativa para exportar datos en tiempo de ejecución a formatos externos
Se construye el soporte de parametrización La parametrización se puede realizar mediante programación, pero es difícil de implementar.
Los informes de prueba se generan automáticamente No hay soporte nativo para generar informes de prueba / error.

Aunque claramente, QTP tiene capacidades más avanzadas, Selenium supera a QTP en tres áreas principales:

  • Costo (porque el selenio es completamente gratis)
  • Flexibilidad (debido a una serie de lenguajes de programación, navegadores y plataformas que puede admitir)
  • Pruebas en paralelo (algo de lo que QTP es capaz, pero solo con el uso de Quality Center)

Resumen

  • Todo el Selenium Software Testing Suite se compone de cuatro componentes:
  • Selenium IDE, un complemento de Firefox que solo puede usar para crear casos de prueba y conjuntos de pruebas relativamente simples.
  • Selenium Remote Control, también conocido como Selenium 1, que es la primera herramienta de Selenium que permitió a los usuarios utilizar lenguajes de programación para crear pruebas complejas.
  • WebDriver, el avance más reciente que permite que sus scripts de prueba se comuniquen directamente con el navegador, controlando así desde el nivel del sistema operativo.
  • Selenium Grid también es una herramienta que se utiliza con Selenium RC para ejecutar pruebas paralelas en diferentes navegadores y sistemas operativos.
  • Selenium RC y WebDriver se fusionaron para formar Selenium 2.
  • El selenio es más ventajoso que el QTP en términos de costos y flexibilidad. También le permite ejecutar pruebas en paralelo, a diferencia de QTP, donde solo se le permite ejecutar pruebas secuencialmente.