Limberthblog.files.wordpress.com



Selenium WebDriver un Ambiente de Pruebas Limberth Jesús Vásquez Quesadalvasquezq@ucenfotec.ac.crUniversidad CenfotecIngeniería en Desarrollo de SoftwareAbstractoSelenium automatiza los navegadores. ?Eso es todo! Lo que hagas con ese poder depende de ti. Principalmente, es para la automatización de aplicaciones web con fines de pruebas, pero ciertamente no se limita a eso. Las tareas aburridas de administración basadas en web pueden (?y deben!) ser automatizadas. Una definición muy concreta y directa, pero vamos a ampliar un poco más la definición.Palabras claveSelenium Selenium WebDriver Selenium GridSelenium IDEFirefox Test’sPruebas automáticasfindElement()IntroducciónSelenium es un conjunto de herramientas de código abierto que nos ayuda a automatizar acciones que un usuario puede realizar sobre aplicaciones web. Cada herramienta dentro de este conjunto tiene un enfoque diferente para apoyar el proceso de automatización de pruebas.Desarrollo del temaHoy en día muchas empresas software, por su negocio quieren ser ágiles. Quieren sacar productos más rápido al mercado y adelantarse a la competencia, mejorando para ello la calidad de su proceso, producto y equipos software.Una de las claves para agilizar ese proceso, detectar errores antes, en puntos del desarrollo en los que nos cueste menos solucionarlos y así desarrollar con más seguridad, es la optimización y automatización de ciertos procesos y pruebas (muy relacionado con Integración Continua). En las pruebas de software, la automatización de pruebas consiste en el uso de software especial (casi siempre separado del software que se prueba) para controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados. La automatización de pruebas permite incluir pruebas repetitivas y necesarias dentro de un proceso formal de pruebas ya existente o bien adicionar pruebas cuya ejecución manual resultaría difícil.Algunas pruebas de software tales como las pruebas de regresión intensivas de bajo nivel pueden ser laboriosas y consumir mucho tiempo para su ejecución si se realizan manualmente. Adicionalmente, una aproximación manual puede no ser efectiva para encontrar ciertos tipos de defectos, mientras que las pruebas automatizadas ofrecen una alternativa que lo permite. Una vez que una prueba ha sido automatizada, ésta puede ejecutarse repetitiva y rápidamente en particular con productos de software que tienen ciclos de mantenimiento largo, ya que incluso cambios relativamente menores en la vida de una aplicación pueden inducir fallos en funcionalidades que anteriormente operaban de manera correcta.En este artículo nos enfocaremos en WebDriver sin embargo para entenderlo antes debemos saber que es selenium y cómo funciona.Selenium es un conjunto de herramientas de código abierto que nos ayuda a automatizar acciones que un usuario puede realizar sobre aplicaciones web. Cada herramienta dentro de este conjunto tiene un enfoque diferente para apoyar el proceso de automatización de pruebas.Los cuatro componentes de Selenium son:Selenium IDE: es un entorno de desarrollo integrado para scripts de Selenium. Se implementa como una extensión de Firefox y permite grabar, editar y depurar pruebas. Este IDE incluye todo el Selenium Core, que permite grabar y reproducir de forma fácil las pruebas en el entorno real en el cual se ejecutarán. Se recomienda su uso para prototipos de pruebas, debido a que no es capaz de generar ciclos ni condiciones.Selenium RC (Remote Control): es una herramienta para automatizar pruebas de interfaz de usuario (UI) de aplicaciones web. Consta de dos componentes: a) un servidor que actúa como proxy para controlar e interactuar con un navegador web. b) bibliotecas para crear programas para el servidor usando una amplia gama de lenguajes de programación. Fue la herramienta original de Selenium para pruebas web pero a partir de la versión 2 fue integrado con WebDriver y se prefiere usar este último.Selenium WebDriver: también es una herramienta para automatizar pruebas UI de aplicaciones web pero implementa un enfoque más moderno y estable que Selenium RC. WebDriver, a diferencia de RC no utiliza un middleware sino que controla el navegador comunicándose directamente con él.Selenium Grid: se especializan en ejecutar múltiples pruebas a través de diferentes navegadores, sistemas operativos y máquinas. Puede conectarse con Selenium Remote especificando el navegador, la versión del navegador y el sistema operativo que desee. Hay dos elementos principales: hub y nodos.Por lo que profundizando en pruebas de Selenium WebDriver podemos decir que es un framework de automatización web que permite ejecutar casos de prueba sobre distintos navegadores. Debido a que es posible utilizar lenguajes de programación para la creación de scripts de pruebas, podemos tener estructuras de control como condiciones y bucles para controlar el comportamiento. Algunos de los lenguajes soportados son: Java, C#, Python, Ruby, PHP y JavaScript.ArquitecturaSelenium maneja el navegador directamente desde nuestro código, sin embargo este proceso es un poco más complejo de lo que pareciera. La arquitectura de WebDriver está dividida en tres partes principales: lenguaje de vinculación, WebDriver API y drivers.Para ver cómo es que interactúan las partes entre sí, digamos que se ha escrito el script de prueba usando Java (lenguaje de vinculación) para comunicarse con la API de WebDriver. El código generado va a emitir comandos a través del WebDriver wire protocol, el cual es un servicio REST capaz de interpretar dichos comandos. El driver es un ejecutable que básicamente escucha en un puerto de la máquina local cuando se ejecutan las pruebas y espera que los comandos entren. Una vez que los comandos son captados por el driver, estos son interpretados y ejecutados sobre el navegador.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 controlaConclusiónEl uso de selenium webDriver permite la automatización en procesos de desarrollo y revisión de software o aplicaciones web por medio del uso de diferentes herramientas de código abierto, Cada herramienta dentro de este conjunto tiene un enfoque diferente para apoyar el proceso de automatización de prueba y además nos brinda múltiples ventajas como: El selenio es una herramienta de código abierto. portabilidad en diferentes lenguajes de scripting (java, c#, Ruby, Phython,PHP…)soporte a navegadores (Chrome, Firefox, Safari)Soporte en ambientes populares (Windows, Linux, OS X)Manejo RemotoSu uso no posee costoDepuraciónOpciones de Record And PlayReferencias bibliográficasSeleniumHQ. “Introduction to Selenium”. Guru99. . Honnamane & R. Bar. “Jumpstarting DevOps with Continuous Testing”. Cognizant 20-20 Insights. Jesús Vásquez Quesada, estudiante de ingeniería en desarrollo de software, Universidad Cenfotec. Estoy en mi segundo a?o de carrera y me encuentro entre el cuarto y quinto cuatrimestre. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download