debugging selenium scripts with logs selenium tutorial 26
Ahora nos dirigimos hacia el final de nuestro más completo Tutoriales gratuitos para la herramienta de prueba de selenio . Los tutoriales que estamos publicando ahora son parte de la capacitación avanzada de Selenium.
En el tutorial anterior, mantuvimos nuestro enfoque en el Herramienta de integración continua denominada Hudson . Es una herramienta gratuita y tiene muchas más capacidades para construir el proyecto de prueba, ejecutar las clases de prueba de forma remota y enviar un correo electrónico de notificación a las partes interesadas informándoles sobre el estado de la aplicación con respecto a los casos de prueba aprobados y fallidos.
En el tutorial actual, avanzaríamos hacia algunos conceptos avanzados que ayudarían directa o indirectamente en optimizar el marco de automatización y aporta más visibilidad a los usuarios.
Por lo tanto, en el tutorial actual, discutiremos el función de registro, su potencial, capacidades de depuración y mucho más.
A veces, se considera que el registro es una sobrecarga del mecanismo de creación de scripts existente, pero los expertos consideran que es una de las mejores prácticas si se usa en la proporción exacta debido a las siguientes ventajas:
Ventajas de iniciar sesión en secuencias de comandos de selenio:
- Otorga una comprensión completa de la ejecución de conjuntos de pruebas
- Los mensajes de registro se pueden almacenar en archivos externos para el escrutinio posterior a la ejecución
- Los registros son un asistente excepcional para depurar los problemas y fallas de ejecución del programa.
- Las partes interesadas también pueden revisar los registros para determinar el estado de la aplicación.
Lo que vas a aprender:
Log4j: una API de registro basada en Java
Pasando a los detalles técnicos sobre el registro, analicemos el origen de la API que usaríamos a lo largo del log4j tutorial para generar registros. Log4j fue el resultado de los esfuerzos de colaboración de la gente de Secure Electronic Marketplace para Europa para desarrollar una utilidad que nos ayudaría a generar registros y, por lo tanto, log4j se convirtió en el centro de atención en el año 1996. Log4j es una herramienta de código abierto con licencia de IBM Public License.
Hay tres componentes principales que constituyen la implementación de log4j. Estos componentes representan los detalles sobre el nivel de registro, los formatos del mensaje de registro en el que se mostrarían y sus mecanismos de guardado.
Componentes de Log4j
- Madereros
- Anexos
- Diseños
# 1) Registradores
Es necesario realizar los siguientes pasos para implementar registradores en el proyecto.
Paso 1 : Creando una instancia de la clase Logger
Paso 2 : Definición del nivel de registro
Clase de registrador - Es una utilidad basada en java que ya tiene implementados todos los métodos genéricos para que podamos usar log4j.
Niveles de registro - Los niveles de registro se conocen popularmente como métodos de impresión. Se utilizan para imprimir los mensajes de registro. Existen principalmente cinco tipos de niveles de registro.
- error()
- advertir()
- info ()
- depurar()
- Iniciar sesión()
Por lo tanto, para poder generar registros, todo lo que tenemos que hacer es llamar a cualquiera de los métodos de impresión sobre la instancia del registrador. Lo analizaremos más ampliamente durante la fase de implementación.
# 2) Anexos
Ahora que sabemos cómo generar estos registros, lo siguiente que debería aparecer en nuestras mentes es ¿dónde puedo ver los registros? La respuesta a esta pregunta se encuentra en la definición de 'Anexos'.
Los anexos se utilizan constantemente para especificar la fuente / medio de datos donde se deben generar los registros. El alcance de las fuentes de datos se extiende desde varios medios externos como la consola, GUI, archivos de texto, etc.
# 3) Diseños
diferencia entre la prueba de humo y la prueba de cordura
En ocasiones, el usuario desea que cierta información se agregue al principio o al final de cada declaración de registro. Por ejemplo, deseo imprimir una marca de tiempo junto con mi declaración de registro. Por lo tanto, estos requisitos pueden cumplirse mediante 'Diseños'.
Los diseños son una utilidad que permite al usuario optar por el formato deseado en el que se renderizarán los registros. Los anexos y el diseño tienen un acoplamiento estrecho entre ellos. Por lo tanto, estamos obligados a mapear cada uno de los appenders con un diseño específico.
Tenga en cuenta que el usuario se aprovecha para definir varios appenders, cada mapa con un diseño distinto.
Ahora que conocemos los conceptos básicos de log4j y sus componentes, dirigiremos nuestro enfoque hacia el fenómeno de la implementación.
Entendamos todo el proceso de implementación paso a paso.
Instalación / Configuración
Para la instalación y configuración, estaríamos considerando el proyecto “Learning_Selenium” que ya hemos creado en las sesiones anteriores de esta serie.
Paso 1 : El primer y más importante paso es descargar el último jar para la API de log4j. El frasco se puede encontrar fácilmente en su sitio web de distribución oficial: ' http://logging.apache.org/log4j/1.2/download.html ”.
Paso 2 : El siguiente paso es configurar la ruta de compilación y proporcionar log4j.jar como una biblioteca externa.
Implementación
El registro mediante log4j se puede implementar y configurar de dos formas:
- Programáticamente mediante script
- Manualmente a través de archivos de configuración
Ambos métodos de configuración mencionados anteriormente tienen tanto méritos como deméritos. Para este tutorial, consideraríamos configurar log4j manualmente a través de archivos de configuración en función de su facilidad y simplicidad. El archivo de configuración es otro archivo XML para configurar artefactos relacionados con log4j.
Creación de archivo log4j.xml
Paso 1 . Cree un archivo log4j.xml. Copie y pegue el código a continuación en el archivo de configuración.
|_+_|Tutorial del archivo de configuración
consoleAppender
El appender de la consola se utiliza para imprimir las declaraciones de registro en la consola.
appender de archivos
El adjunto de archivos se utiliza para imprimir las declaraciones de registro dentro de un archivo externo. Se aprovecha al usuario para establecer un valor de activación y desactivación para la etiqueta adjunta que le indicaría al sistema que agregue y registre declaraciones a la creada anteriormente o que sobrescriba los registros creados anteriormente y genere los registros nuevos por completo.
|_+_|El valor del parámetro de archivo se establece en una ubicación particular para notificar al sistema que cree el archivo de registro anticipado en dicha ubicación. También especificamos el nombre del archivo de registro dentro del parámetro de valor.
Diseño
Como se discutió en las primeras secciones de este tutorial, los diseños se utilizan para especificar el mecanismo de representación de las declaraciones de registro. Log4j proporciona varios patrones de diseño. Se aprovecha al usuario para especificar el patrón deseado en el valor del parámetro ConversionPattern.
La salida del diseño anterior debería ser algo como:
01-07-2014 12:56:32 INFO (GmailLogin): mensaje de registro de muestra
En la salida de arriba:
- Primer campo: fecha de ejecución
- Segundo campo: tiempo exacto en hh: mm: ss en el que se ejecutó el paso de prueba
- Tercer campo: uno del nivel de registro
- Cuarto campo: nombre de la clase de prueba
- El quinto campo: mensaje de registro
Paso 2 . Tan pronto como hayamos terminado con la creación del archivo log4j.XML, el siguiente paso es colocar el archivo log4j.XML en la carpeta raíz / directorio base del proyecto.
Implementación a nivel de programa
Paso 3 : El siguiente paso es utilizar cualquiera de los configuradores para configurar y analizar el archivo log4j.xml.
Sintaxis:
cómo abrir un archivo torrentado en Windows|_+_|
Nota : Los registros se pueden implementar a nivel de clase también en lugar de a nivel de conjunto de pruebas. Todo lo que necesita hacer es realizar los cambios necesarios en la clase de prueba en lugar de en el conjunto de pruebas.
Paso 4 : El siguiente paso es crear una clase de prueba 'GmailLogin.java' bajo el proyecto. Implemente la funcionalidad de inicio de sesión de Gmail dentro de la clase.
Paso 5 : El siguiente paso es importar la clase de registrador para poder implementar las declaraciones de registro.
Sintaxis:
import org.apache.log4j.Logger;
Paso 6 : El siguiente paso en el proceso es crear una instancia del objeto de la clase Logger.
Sintaxis:
// Inicialización del objeto para el registro
estático Registros Iniciar sesión Logger.getLogger (Demo. clase .getName ());
Paso 7 : La variable de registro de tipo Logger creada anteriormente se utilizaría en toda la clase de prueba para generar las declaraciones de registro. Consulte el siguiente código para el mismo.
Sintaxis:
|_+_|Resultado en el archivo de registro
01-07-2014 12:56:11 INFO (GmailLogin): subió el archivo al sistema: FileExample.txt
01-07-2014 12:56:11 INFO (GmailLogin): Envío de cambios
01-07-2014 12:56:15 ERROR (GmailLogin): Inicio de sesión fallido.
ACTUALIZACIÓN en marzo de 2020
Registros
Un registro es un mensaje que estamos grabando o generando para cada transacción que hacemos. Podemos analizar los registros para comprobar qué salió bien o qué salió mal. Supongamos que si algún sistema se cierra abruptamente, luego de analizar los registros, podemos llegar a la causa raíz de la falla.
Por lo tanto, se generan registros en cada ciclo de desarrollo. De la misma manera, también podemos generar registros en nuestro código de Selenium para probar antes y después de cada condición de prueba o declaración de prueba, para verificar si todo funciona como se esperaba.
Marco log4j
Para generar estos archivos de registro en código Selenium, utilizamos el marco log4j proporcionado por Apache. Con este marco, podemos generar nuestros registros personalizados.
Hacer clic aquí para descargar log4j jar del repositorio de Maven.
Podemos generar registros de 2 formas:
- Usando el archivo log4j.properties
- Usando el archivo log4j.xml
Estos archivos contendrán la configuración sobre qué tipo de registros desea generar. Puede utilizar cualquiera de ellos. Si desea utilizar ambos, log4j.xml tendrá mayor prioridad. La forma preferida de generar registros es utilizando el archivo de propiedades, por lo que aquí exploraremos más sobre la generación a través del archivo de propiedades únicamente.
Implementación de log4j
Descargue el archivo jar log4j de la ruta anterior y agréguelo en la ruta de construcción de su proyecto. Cree el archivo log4j.properties y agregue el archivo de propiedades en paralelo a su carpeta de origen cuando esté usando una aplicación Java independiente.
El archivo Log4j.properties es un archivo de configuración que almacena valores en el par clave-valor.
Contiene 3 componentes principales:
- Registradores: Captura información de registro.
- Anexos : Publique la información de registro en un destino preferido diferente, como consolas, archivos, sockets, registros de eventos de NT, etc.
- Diseños : Formatee la información de registro en diferentes estilos como HTML, Diseño XML, etc.
Sintaxis del archivo log4j.properties
#1) Defina el registrador raíz con el nivel de registro INFO y el appender X (appender puede ser cualquier consola, archivo, sockets, registros de eventos NT).
|_+_|#2) Configure el appender llamado X para que sea un appender de archivo.
|_+_|#3) Defina el diseño del appender X.
|_+_|Ejemplo de log4j.properties
nombre del sistema operativo en la computadora
Cree un archivo log4j.properties, haciendo referencia a la sintaxis anterior:
# inicialice el registrador raíz con el nivel INFO e imprímalo en la consola usando stdout y fout.
|_+_|# agregue un ConsoleAppender a la salida estándar del registrador para escribir en la consola.
|_+_|# utilizar un patrón de diseño de formato de mensaje simple definido es% m% n, que imprime los mensajes de registro en una nueva línea.
|_+_|# agregue un FileAppender al logger fout.
|_+_|# El ARCHIVO del appender se define como org.apache.log4j.FileAppender. Escribe en un archivo llamado SoftwareTestingHelp.
|_+_|# use un patrón de mensaje más detallado.
|_+_|Diferentes niveles de registro
- DEPURAR
- INFO
- ADVERTIR
- ERROR
- FATAL
Cada nivel tiene su propia prioridad. Supongamos que si usamos el nivel “DEBUG”, registrará todos los mensajes de nivel como INFO >> WARN >> ERROR >> FATAL.
Supongamos que si usamos el nivel “ERROR”, ignorará DEBUG >> INFO >> WARN y solo registrará ERROR >> FATAL.
En todos estos niveles necesitamos definir en nuestro archivo de propiedades. Los registros se generarán, dependiendo de nuestra configuración.
Implementando los registros para el mismo ejemplo mencionado anteriormente:
Paso 1: Cree un objeto para la clase Logger.
|_+_|El método anterior ayuda a obtener el objeto del registrador. Este método tomará la clase o el nombre de la clase como argumento. Con este objeto de registrador, puede generar registros personalizados.
En este ejemplo, nos referimos al marco apache log4j, si está utilizando el marco TestNG, entonces necesita usar la clase de registro TestNG.
Aquí, hemos intentado generar el registro, sin implementar el archivo de propiedades.
No se generan registros ni en la consola ni en ningún archivo de registro creado. Se recibe un error en la consola porque el archivo de registro no está implementado correctamente. Para implementarlo, necesitamos usar la clase PropertyConfigurator. Siga el paso 2.
Paso 2: Inicialice el archivo Configurador de propiedades y pase el argumento como el nombre del archivo de propiedades log4j.
PropertyConfigurator.configure (“log4j.properties”);
Código completo para la generación de archivos de registro:
|_+_|
Archivo de propiedades:
Conclusión
En el tutorial actual, nos centramos en el implicación técnica al implementar el registro en un marco. Utilizamos la utilidad log4j para implementar el registro. Discutimos los componentes básicos que constituyen log4j desde una perspectiva de usabilidad. Con los Appenders y diseños, el usuario puede elegir el formato / patrón de registro deseado y la fuente / ubicación de datos.
En este tutorial, exploramos por qué se utilizan los registros en nuestro marco log4j de prueba y cubierto, y la implementación del marco log4j en Selenium para generar registros.
Siguiente tutorial n. ° 27 : En el próximo tutorial, discutiremos algunos temas más avanzados relacionados con secuencias de comandos eficientes y para solucionar escenarios donde se requiere que el usuario maneje eventos de mouse y teclado. Además, también discutiremos cómo almacenar más de un elemento web en una lista.
Lectura recomendada
- Tutoriales detallados de Eclipse para principiantes
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Scripts eficientes de Selenium y escenarios de resolución de problemas - Tutorial de Selenium n. ° 27
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales
- Cómo localizar elementos en los navegadores Chrome e IE para crear scripts de Selenium - Tutorial de Selenium n. ° 7
- Implementación de nuestro primer script de WebDriver - Tutorial de Selenium WebDriver # 10
- Configuración e instalación completa de WebDriver con Eclipse - Tutorial de Selenium n. ° 9