Tema: Herramientas para automatizar pruebas de aceptación y pruebas de regresión - Selenium
Enviado por Danni André • 10 de Febrero de 2018 • Informe • 1.586 Palabras (7 Páginas) • 212 Visitas
Laboratorio de: Calidad de Software
Práctica No.: 3
Tema: Herramientas para automatizar pruebas de aceptación y pruebas de regresión - Selenium
Nombre: Danni Brito Fecha: 02/02/2018
- Objetivos:
- Objetivo General
- Comprender la importancia de las pruebas de regresión y aceptación en un proyecto.
- Objetivos Específicos
- Configurar la herramienta Selenium para su utilización en un entorno controlado.
- Utilizar la herramienta Selenium para su uso en evaluación de diferentes proyectos.
- Marco teórico:
Selenium
Selenium es un entorno de pruebas de software para aplicaciones basadas en la web. Selenium provee una herramienta de grabar/reproducir para crear pruebas sin usar un lenguaje de scripting para pruebas (Selenium IDE). Incluye también un lenguaje específico de dominio para pruebas (Selanese) para escribir pruebas en un amplio número de lenguajes de programación populares incluyendo: Java, C#, Ruby, Groovy, Perl, Php y Python. Las pruebas pueden ejecutarse entonces usando la mayoría de los navegadores web modernos en diferentes sistemas operativos como Windows, Linux y OSX.
Selenium IDE
Selenium IDE es un entorno de desarrollo integrado para pruebas con Selenium. Está implementado como una extensión de Firefox y permite grabar, editar y depurar pruebas. Originalmente se le conoció como Selenium Recorder.
Se pueden desarrollar automáticamente scripts al crear una grabación y de esa manera se puede editar manualmente con sentencias y comandos para que la reproducción de nuestra grabación sea correcta.
Los scripts se generan en Selanese, un lenguaje de scripting especial para Selenium. Selanese provee comandos que ejecutan acciones sobre objetos en el navegador, como hacer click en un enlace, seleccionar de una lista de opciones, verificar la presencia de un texto en particular así como para tomar la totalidad de la página producto de las acciones.
Características:
- Grabación y reproducción fácil
- Selección inteligente de campos usando ID, nombre o XPath según se necesite.
- Autocompletado de los comandos de Selenium más comunes.
- Pruebas de revisión cruzada
- Depuración y puntos de verificación (breakpoint)
- Almacenar las pruebas como Selanese, Ruby, Java y otros formatos.
- Soporte al archivo user-extensions.js
- Opción para asertar el título de la página.
- Opción de modificarle a la medida con el uso de complementos
Selenium Client API
Interfaz de programación de aplicaciones (API) de clientes Como alternativa a escribir pruebas en Selanese, las pruebas pueden escribirse en varios lenguajes de programación, éstos se comunican con Selenium mediante llamadas a los métodos de Selenium Client API. Actualmente Selenium provee API para Java, C#, Ruby y Python. Con Selenium 2 se presentó una nueva API de clientes, con WebDriver como componente central, aunque la anterior API puede seguirse usando llamando a la clase Selenium.
Selenium Remote Control
Es un servidor escrito en Java que acepta comandos al navegador vía HTTP. RC hace posible escribir pruebas automatizadas para aplicaciones web, en cualquier lenguaje de programación lo que permite una mejor integración de Selenium a entornos de prueba existentes. Para hacer la escritura de pruebas más fácil, Selenium actualmente provee controladores de dispositivos para PHP, Python, Ruby,.NET, Perl y Java. El controlador de Java puede usarse para Javascript vía el motor Rhino. Selenium Remote Control fue una refactorización de Driven Selenium o Selenium B, la versión original lanzaba directamente un proceso para el navegador en cuestión desde el lenguaje de prueba; el protocolo de cable (confusamente llamado Selanese también en aquel tiempo) fue reimplementado al portarse a cada lenguaje. Después de la refactorización, hubo un proceso intermediario demonio entre el script controlador y el navegador. Los beneficios incluyeron la capacidad de controlar navegadores remotos y reducir la necesidad de portar el código a un número creciente de lenguajes. Con la liberación de Selenium 2, Selenium RC fue oficialmente descartado en favor de Selenium WebDriver.
Selenium WebDriver
Selenium WebDriver es el sucesor de Selenium RC. Selenium WebDriver acepta comandos (enviados en Selenese o vía el API de cliente) y los envía a un navegador. Esto se implementa a través de un controlador del navegador específico para cada navegador que envía los comandos y trae los resultados de regreso. La mayoría de los controladores del navegador lanzan y acceden a la aplicación de navegador (como Mozilla Firefox o Internet Explorer), pero también hay un controlador para HtmlUnit que simula un navegador. A diferencia de Selenium 1, donde el servidor Selenium RC era indispensable, en Selenium WebDriver no se requiere de un servidor especial para ejecutar las pruebas, en vez de ello WebDriver inicia una instancia del navegador y lo controla; sin embargo puede usarse Selenium Grid (ver abajo) para ejecutar pruebas en sistemas remotos (ver más abajo). Desde inicios de 2012, Simon Stewart de Google (inventor del WebDriver) y David Burns de la Fundación Mozilla se encuentran negociando con el W3C que WebDriver se convierta en un estándar de Internet, como tal Selenium-Webdriver (Selenium 2.0) apunta a ser la implementación de referencia del estándar WebDriver en varios lenguajes de programación. Selenium-WebDriver está completamente implementado y soportado en Java, Ruby, Python y C#. En la práctica, esto significa que la API de Selenium 2.0 tiene significativamente menos llamadas que el API de Selenium 1.0. Donde Selenium 1.0 intentaba proveer una interfaz rica en muchas operaciones, Selenium 2.0 intenta proveer de los bloques de construcción básicos con los cuales los desarrolladores puedan programar su propio lenguaje específico de dominio. Uno de ellos ya existe y es el proyecto Watir en Ruby que tiene una historia rica en buen diseño. Watir-WebDriver implementa el API de Watir como un envolvente del Selenium-Webdriver en Ruby. Watir-WebDriver se crea de forma completamente automática, basado en las especificaciones del WebDriver y HTML.
...