Automatización de pruebas con Selenium

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 49,42 KB

Pruebas sobre Aplicaciones Web

  1. Introducción

Cada día las empresas exigen mayor calidad en sus productos, ya sea porque ellos mismos harán uno de esos productos o bien porque los clientes les exigen calidad, en ambos casos son exigencias del mercado, el mercado exige cosas mejores.

En nuestro caso en particular nos interesa desarrollar software, ofrecer soluciones tecnológicas o aplicaciones a problemas o necesidades que tienen las personas.

Cada día se incrementa la complejidad de desarrollar software, porque ya no desarrollamos simplemente software de gestión que me permita almacenar datos, sino que además queremos más funcionalidades dentro del producto software, cosas más sofisticadas, esto conlleva a tener aplicaciones muy grandes y se exige que estas aplicaciones sean mantenibles, debemos ser capaces de resolver cualquier problema que se presente dentro del software.

  1. Descripción del Software

Selenium es un conjunto de herramientas para automatizar pruebas sobre aplicaciones web a través de diferentes plataformas, funciona en diferentes navegadores y con diferentes sistemas operativos. Para ello nos permite grabar, editar y depurar casos de prueba, que podrán ser ejecutados de forma automática e iterativa posteriormente.

Además de ser una herramienta para registrar acciones, permite editarlas manualmente o crearlas desde cero.

  1. Características

Entre sus principales características podemos nombrar:

  • Facilidad de registro y ejecución de los test.
  • Permite crear pruebas de regresión (repetir pruebas).
  • Referencia a objetos DOM en base al ID, nombre o a través de XPath.
  • Auto-completado para todos los comandos.
  • Las acciones pueden ser ejecutadas paso a paso.
  • Herramientas de depuración y puntos de ruptura (breakpoints).
  • Los test pueden ser almacenados en diferentes formatos.
  • Soporta los lenguajes java , C#, Ruby, Groovy, Perl, Php y Python.
  • Se ejecuta correctamente en Windows, Linux y OSX.
  • Contiene sus propios comandos para la automatización de pruebas.
  • Contiene programas especializados, con diferentes usos, como ser Selenium Web Driver, selenium Grid.
  • Es software libre.
  1. Paquete SeleniumHQ

SeleniumHQ es un conjunto de paquetes que nos facilitan realizar pruebas.

9k=

4.1.Selenium IDE

Programa desde el cual grabamos editamos y reproducimos los script.

Plugin de Navegadores.

Selenium IDE es un entorno de desarrollo integrado para scripts de Selenium. Se implementa como una extensión de Firefox, y le permite grabar, editar y depurar pruebas. Selenium IDE incluye todo el Selenium Core, lo que le permite grabar y reproducir pruebas de manera fácil y rápida en el entorno real en el que se ejecutarán.

Selenium IDE no es solo una herramienta de grabación: es un IDE completo. Puede optar por usar su capacidad de grabación, o puede editar sus guiones a mano. Con el soporte de autocompletar y la capacidad de mover comandos rápidamente, Selenium IDE es el entorno ideal para crear pruebas de selenio sin importar el estilo de prueba que prefiera.

Características:

  • Grabación y reproducción fáciles.
  • La selección de campo inteligente usará identificadores, nombres o XPath según sea necesario.
  • Autocompletar para todos los comandos comunes de Selenium.
  • Pase por las pruebas.
  • Depurar y establecer puntos de interrupción.
  • Guardar pruebas como HTML, scripts de Ruby o cualquier otro formato.
  • Soporte para el archivo Selenium user-extensions.js.
  • Opción para afirmar automáticamente el título de cada página.

A partir de 1.0.4, Selenium IDE ha tenido un sistema de complementos para permitir una fácil extensión y personalización que incluye:

  • Agregar nueva funcionalidad a la API.
  • Cambiar la funcionalidad existente.
  • Formatos personalizados y capacidades de exportación.
  • Alojamiento de archivos plugin update.rdf.
  • Agregar nuevas estrategias de localización (próximamente).

4.2. Selenium Web Driver

Permite el uso de código que nosotros elegimos en diferentes plataformas.

El mayor cambio en Selenium recientemente ha sido la inclusión de la API de WebDriver. Conducir un navegador de forma nativa como usuario, ya sea localmente o en una máquina remota que utiliza el Servidor de Selenium, significa un avance en cuanto a la automatización del navegador.

Selenium WebDriver encaja en la misma función que RC, y ha incorporado los enlaces 1.x originales. Se refiere tanto a los enlaces de idioma como a las implementaciones del código de control del navegador individual. Esto se conoce comúnmente como solo "WebDriver" o algunas veces como Selenium 2.

Selenium 1.0 + WebDriver = Selenium 2.0

WebDriver está diseñado en una interfaz de programación más simple y concisa junto con algunas limitaciones en la API de Selenium-RC.

WebDriver es una API compacta orientada a objetos comparada con Selenium 1.0.

Conduce el navegador de manera mucho más efectiva y supera las limitaciones de Selenium 1.x que afectó nuestra cobertura de prueba funcional, como la carga o descarga de archivos, ventanas emergentes y barreras de diálogo.

WebDriver supera la limitación de la política de origen de host único de Selenium RC.

WebDriver es el nombre de la interfaz clave contra la cual las pruebas deben escribirse en Java, las clases de implementación que uno debe usar se enumeran a continuación:

4.3 Selenium Grid

Selenium Grid es un servidor que permite usar instancias de navegador ejecutándose en máquinas remotas. Con Selenium Grid, uno de los servidores actúa como concentrador. Las pruebas contactan al concentrador para obtener acceso a instancias de navegadores; el concentrador lleva una lista de instancias de los navegadores (Nodos de WebDriver) y permiten a las pruebas usar estas instancias. Selenium Grid permite ejecutar pruebas en paralelo en múltiples máquinas y manejar diferentes versiones y configuraciones de manera centralizada.

  1. Recursos necesarios

Los navegadores más conocidos compatibles con la utilización de Selenium son:

  • Explorer
  • Mozilla Firefox
  • Google Chrome
  • Safari

Las componentes de Selenium que son necesarias para la grabación y ejecución de las pruebas son:

  • Selenium client v1.0.1: cliente de Selenium, necesario para crear pruebas Junit con Selenium.
  • Selenium IDE v1.0.2: plugin de Firefox para la grabación de las pruebas, paso a paso.
  • Selenium Server v1.0.1: servidor de Selenium, que es el que realiza las pruebas.
  1. Ventajas
  2. Puede correr en varios navegadores y sistemas operativos.
  3. Su confiabilidad hace que sea integrado en navegadores conocidos como Firefox.
  4. Fácil manejo y autocompletado de comandos Es muy flexible a la hora de personalizar componentes, es decir las funciones que tiene selenium.
  5. Fácil uso en registro y ejecución de test, usar las pruebas automatizadas no es para nada complejo.
  6. Tiene un completo ide propio , con el cual se puede sacar al máximo las propiedades de selenium.
  1. Desventajas
  2. Tiene problemas al interactuar con acciones del sistemas, como ser lecturas de ficheros, algunas funciones ,no están soportadas por lo que se debe usar librerías externas.
  3. Entre más navegadores soporte, más complejo es su diseño, cada navegador tiene su diferente forma de interpretar el código JavaScript.
  4. Algunas funciones tiene diferentes comportamientos según el navegador, tiene a hacer malas interpretaciones según el navegador.
  5. Conclusiones

A la hora de programar y de realizar proyectos grandes, selenium es una excelente opción, las facilidades que brindan son realmente útiles a la hora de programar y al ser software libre y de código abierto, nos brinda la facilidad de usarlo sin limitaciones y con más seguridad al saber, que es respaldado por usuarios que saben lo que se necesita el software y pueden añadir sus ideas, gracias a esto es por lo que selenium cuenta con diversas herramientas que tiene lo que necesitas para automatizar pruebas y así poder crear con más facilidad proyectos más complejos.

Entradas relacionadas: