selenium phantomjs tutorial
En este artículo, la automatización de selenio con PhantomJS se explica con ejemplos de código:
PhantomJS es un navegador sin cabeza que se utiliza principalmente para la automatización sin GUI.
El rendimiento y la ejecución que ocurren en este navegador es más rápido y generalmente se usa en escenarios donde no se requiere monitoreo manual y en aquellas aplicaciones que son completamente automatizables.
PhantomJS es muy recomendable en caso de ejecución de un script durante la noche, donde no se requiere supervisión humana ya que la ejecución es rápida. También proporciona opciones para una captura de pantalla automática para el seguimiento manual del proceso de ejecución del script.
Lo que vas a aprender:
- Utilización de PhantomJS en la automatización de páginas web
- PhantomJS y Selenium para automatización web (básico)
- PhantomJS y Selenium para automatización web (avanzado)
- Captura de pantalla e informe posteriores a la ejecución
- Recomendación para utilizar PhantomJS como navegador de prueba
- Lectura recomendada
Utilización de PhantomJS en la automatización de páginas web
En este artículo, utilizaremos la herramienta de automatización Selenium para realizar la automatización funcional en el navegador PhantomJS.
PhantomJS en realidad crea una instancia de un navegador que no tiene una interfaz GUI, pero tiene todo el estándar de un navegador con una interfaz GUI como (Firefox, IE, etc.), scripts DOM estándar, llamadas Ajax, etc.
Objetivo de usar PhantomJS con Selenium
Es muy importante comprender el objetivo de usar PhantomJS con Selenium.
Todos sabemos que Selenium es una herramienta de automatización funcional que se utiliza para automatizar diversas funcionalidades de aplicaciones web.
Ahora, el objetivo de PhantomJS es ligeramente diferente, ya que es un navegador sin GUI y su uso principal es automatizar los casos de prueba con caídas en la categoría de prueba de humo / pruebas de validación y no en la automatización regresiva de pruebas en toda regla.
Si automatizamos usando Selenium y PhantomJS, debemos tener cuidado al elegir los casos de prueba. Otra parte importante es el seguimiento del estado de ejecución de los casos de prueba, ya que no podemos ver físicamente la ejecución.
PhantomJS y Selenium para automatización web (básico)
Al igual que cualquier otro navegador con interfaz GUI (Firefox, IE, Chrome, etc.), también para PhantomJS, Selenium tiene una API estándar para admitir la automatización.
Ilustremos lo mismo con un código simple:
|_+_|Se inicia el fragmento de código anterior Sitio web oficial de selenio en el navegador PhantomJS y realiza una operación de clic en la pestaña de descarga. Luego calcula el número de encabezados etiquetados con h3 del contenido principal en la página de descarga y lo imprime.
lanzando char a int c ++
Después de la ejecución de cada operación, se realiza una captura de pantalla para el seguimiento manual.
cómo abrir un archivo .bin en Windows 10
Ahora integraremos la misma funcionalidad de prueba dentro de un marco con seguimiento de registros junto con la captura de pantalla. También agreguemos el envío automático de correos junto con la integración del informe de extensión para darle un ajuste de automatización completo, de modo que podamos rastrear el resultado de la ejecución más adelante.
PhantomJS y Selenium para automatización web (avanzado)
Imagen de la estructura del marco
El marco es como sugiere la imagen y está compuesto por:
- Los componentes reutilizables que pueden ser reutilizados por todos y cada uno de los scripts de prueba.
- El componente de prueba que se creará con cada nuevo caso de prueba.
- Los componentes de recursos que son las entradas del marco como (localizadores de elementos web, URL, etc.)
Aquí, el proyecto se basa en Maven junto con el marco de prueba TestNG. Además, hemos utilizado el Informe de extensión. Pero no voy a entrar en los detalles de un proyecto o informe de extensión de Maven, sino que me mantengo enfocado en PhantomJS.
Los detalles del código para cada uno de los componentes se dan a continuación. Este marco está destinado a centrarse en la implementación de phantomJS, por lo que el marco está diseñado en base a eso, pero definitivamente se puede extender este marco de acuerdo con la propia especificación comercial.
Primero, veremos qué dependencias necesitamos declarar en POM.xml para ejecutar este proyecto
|_+_|POM.xml
Componentes reutilizables
|_+_|InitiateBrowser.java
Este fragmento de código está asociado con la iniciación del navegador.
Aquí el nombre del navegador está codificado. Pero se puede externalizar (en propiedades / hoja de Excel). Uno puede elegir qué navegador usar, y aquí hemos usado PhantomJS.
|_+_|PropertyReader.java
Este fragmento de código está asociado con el archivo de propiedades de lectura que hemos utilizado como localizador de elementos web y contenedor de URL.
|_+_|ReuseableMethods.java
Este fragmento de código trata con varias funciones de Selenium que usamos regularmente en nuestros scripts, pero hemos separado estas funciones de los scripts de prueba para reducir las líneas de código en el marco y aumentar su usabilidad.
|_+_|SendMail.java
Esta pieza de código trata sobre el envío de un correo automático después de la ejecución del caso de prueba.
Componentes de prueba
|_+_|TestScripts.java
Este es el caso de prueba real donde:
- Lanzamos la URL.
- Hacemos clic en la pestaña de descarga y verificamos que se pueda hacer clic en el enlace de descarga o no.
- Estamos leyendo todos los encabezados h3 en la pestaña de descargas de la página.
- Estamos validando el recuento de los encabezados h3.
Componentes reutilizables
|_+_|ScreenShotLocations.java
|_+_|APPURL.properties
|_+_|ObjectRepository.properties
el mejor servidor privado de world of warcraft
Estos son los insumos que se alimentan a este marco, ya que el marco está diseñado para estar basado en datos.
- ScreenShotLoc.java almacena la ubicación de la captura de pantalla en la unidad y la ubicación del controlador del navegador.
- APPURL.properties almacena la URL de la aplicación involucrada en la prueba.
- ObjectRepository.properties almacena localizadores de elementos web.
Captura de pantalla e informe posteriores a la ejecución
Ahora vamos a ver el informe posterior a la ejecución:
Escenario positivo: La captura de pantalla anterior es el informe generado cuando todos los pasos de prueba de los casos de prueba automatizados se ejecutan con éxito.
Escenario negativo: La captura de pantalla anterior es el informe generado cuando todos los pasos de prueba de los casos de prueba automatizados no se ejecutan correctamente.
Captura de pantalla de correo automatizado:
Recomendación para utilizar PhantomJS como navegador de prueba
A continuación se ofrecen algunas recomendaciones sobre cuándo utilizar PhantomJS como navegador de prueba.
- La ejecución es rápida con buen rendimiento.
- Un buen candidato para la automatización si no se requiere monitoreo manual ya que el navegador no es menos GUI.
- Muy recomendable cuando los casos de prueba están diseñados para realizar pruebas de humo o casos de prueba donde solo se tienen en cuenta los puntos de validación.
- No recomendado para pruebas funcionales regresivas.
Lectura sugerida = >> Capturas de pantalla en Selenium
¡¡Feliz lectura!!
Lectura recomendada
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- 7 factores que afectan la estimación de prueba del proyecto de automatización de selenio - Tutorial de selenio n. ° 32
- Appium Studio para Eclipse: automatización integral de Appium / Selenium de Eclipse
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Tutorial de Selenium Grid: configuración y ejemplo de pruebas entre navegadores
- Tutorial de ChromeDriver Selenium: Pruebas de Selenium Webdriver en Chrome
- Scripts eficientes de Selenium y escenarios de resolución de problemas: tutorial de Selenium n. ° 27
- Depuración de scripts de Selenium con registros (Tutorial de Log4j) - Tutorial de Selenium n. ° 26