Iniciar sesión en 4j Selenium: Cómo descargar y utilizar el archivo de propiedades Log4j
¿Qué es Log4j? Selenium?
Log4j es un marco de registro (APIS) rápido, flexible y confiable escrito en Java desarrollado a principios de 1996. Se distribuye bajo el APACHE Licencia de software. Log4J ha sido portado a C, C++, C#, Perl, Python, Idiomas Ruby y Eiffel. Es una herramienta utilizada a pequeña y gran escala. Selenium Proyectos de automatización.
¿Por qué utilizar Log4j?
- Es una fuente abierta
- Con Log4j, es posible almacenar los detalles del flujo de nuestro Selenium Automatización en un archivo o bases de datos.
- Log4j se utiliza tanto para proyectos grandes como pequeños.
- En Log4j, utilizamos declaraciones de registro en lugar de declaraciones SOPL en el código para conocer el estado de un proyecto mientras se ejecuta.
Componentes de Log4j
Madereros
Es responsable de registrar la información. Para implementar registradores en un proyecto, se deben realizar los siguientes pasos:
Crear una instancia para la clase de registrador
La clase Logger es una Java-Utilidad basada en que tiene todos los métodos genéricos ya implementados para usar log4j.
Definir el nivel de Log4j
Básicamente hay cinco tipos de niveles de registro
- Todo: este nivel de registro registrará todo (activa todos los registros)
- DEBUG: imprime la información de depuración y es útil en la etapa de desarrollo
- INFO – imprimir mensaje informativo que destaca el progreso de la solicitud
- ADVERTENCIA: imprime información sobre el comportamiento defectuoso e inesperado del sistema.
- ERROR: imprime un mensaje de error que podría permitir que el sistema continúe
- FATAL: imprime información crítica del sistema que está provocando que la aplicación falle
- APAGADO: sin registro
Anexos
Se utiliza para enviar eventos de registro a su destino. Decide qué sucederá con la información de registro. En palabras simples, se utiliza para escribir los registros en un archivo. A continuación, se muestran algunos tipos de anexos
- ConsoleAppender registra la salida estándar
- El agregador de archivos imprime registros en algún archivo
- Anexador de archivo rodante a un archivo con tamaño máximo
Nota: En las propiedades de log4j podemos llamar al appender con cualquier nombre. También hay otros anexos, pero nos limitaremos a estos pocos.
Diseños
Es responsable de formatear la información de registro en diferentes estilos.
La clase Logger proporciona diferentes métodos para manejar las actividades de registro. Proporciona dos métodos estáticos para obtener un objeto Logger.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
¿Cómo está configurado log4j?
Para configurar log4j tenemos que decidir qué appender implementar. En consecuencia, se establecerán los parámetros del appender.
- Usaremos el nivel DEBUG y RollingFileAppender
- Haremos dos configuraciones o logs,
- Primero: registrador raíz, que escribirá todos los registros generados por el sistema en el nombre del archivo, es decir Selenium.registros
- Segundo: escribirá la información generada por los comandos manuales en código en el nombre del archivo: Manual.logs
#Registrador raíz
log4j.rootLogger=DEBUG,file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs log4j.appender.file.maxFileSize=900KB log4j.appender.file.maxBackupIndex=5 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c<strong>{1}</strong>:%L - %m%n log4j.appender.file.Append=false
#Registros de aplicaciones
log4j.logger.devpinoyLogger=DEBUG, dest1 log4j.appender.dest1=org.apache.log4j.RollingFileAppender log4j.appender.dest1.maxFileSize=900KB log4j.appender.dest1.maxBackupIndex=6 log4j.appender.dest1.layout=org.apache.log4j.PatternLayout log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n log4j.appender.dest1.File=D:\\ Guru99\\src\\Manual.logs log4j.appender.dest1.Append=false
En el ejemplo anterior, hemos configurado log4j para iniciar sesión en dos archivos diferentes denominados como Selenium.log y Manual.log.
- file y dest1 son los dos identificadores.
- "Archivo" se utiliza para dar el nombre del archivo en el que se guardarán los registros.
- “maxFileSize” se utiliza para configurar el tamaño máximo del archivo de registro. Cuando el archivo alcance este tamaño, se creará un nuevo archivo con el mismo nombre y el nombre del archivo anterior se agregará como índice.
- “maxBackupIndex” se utiliza para configurar la cantidad máxima de archivos a respaldar.
- “diseño” se utiliza para establecer el formato del archivo de registro.
- “Agregar” se utiliza para configurar la función de agregar. Si se establece en falso, cada vez que se cree un archivo nuevo en lugar del archivo antiguo se utilizará para iniciar sesión.
¿Cómo se usa log4j dentro del script?
En el código, hemos utilizado "log" como variable de referencia que hace referencia al método getLogger de la clase Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Utilice la variable de referencia "registro" y el método de depuración para registrar la información que queremos.
log.debug("--information--");
¿Qué es una herramienta LogExpert?
- La herramienta LogExpert es una herramienta para Windows desarrollado para seguir los troncos
- Es un visor de registros gratuito y de código abierto.
- Es una herramienta de análisis de registros con múltiples funciones como búsqueda, filtrado, marcado y resaltado de los registros.
- En los registros de esta herramienta, los archivos se actualizan automáticamente cuando se abren
- En esta herramienta, podemos abrir varios archivos de registro en diferentes pestañas.
- También podemos poner comentarios en los marcadores y existe la tecla de acceso directo para navegar entre diferentes marcadores. También podemos ver la lista completa de marcadores y navegar desde allí.
- Los accesos directos de la herramienta se proporcionan en el archivo de ayuda para que se puedan consultar la herramienta.
Cómo utilizar Log4j en Selenium
Paso 1) In Eclipse crear un nuevo proyecto con el nombre log4j_demo
Paso 2) Haga clic derecho en src -> Ruta de compilación -> Configurar ruta de compilación
Paso 3) Haga clic en Bibliotecas y Agregar biblioteca Log4J. Puedes descargarlo desde https://logging.apache.org/log4j/1.2/download.html
Paso 4) Crea un nuevo archivo. Este archivo incluirá toda la configuración de log4j.
- Haga clic derecho en src -> Nuevo -> Otro -> General -> Archivo
- Indique el nombre del archivo como "log4j.properties"
- Haga clic en Finalizar
Cree dos archivos más y asígneles nombres como Selenium.logs y Manual.logs. Estos archivos contendrán todos los registros creados por el sistema y las declaraciones registradas manualmente.
Paso 5) En log4j.properties copie toda la configuración.
Paso 6) Crear clase principal:
- Haga clic derecho en el paquete predeterminado -> Nuevo -> Clase
- Dé el nombre de la clase y haga clic en finalizar.
Paso 7) Copie el siguiente código en la clase principal
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.apache.log4j.Logger; public class LoggingDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WebDriver driver = new FirefoxDriver(); Logger log = Logger.getLogger("devpinoyLogger"); driver.get("https://healthunify.com/bmicalculator/"); log.debug("opening webiste"); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); log.debug("entring weight"); driver.findElement(By.name("wg")).sendKeys("87"); log.debug("selecting kilograms"); driver.findElement(By.name("opt1")).sendKeys("kilograms"); log.debug("selecting height in feet"); driver.findElement(By.name("opt2")).sendKeys("5"); log.debug("selecting height in inchs"); driver.findElement(By.name("opt3")).sendKeys("10"); log.debug("Clicking on calculate"); driver.findElement(By.name("cc")).click(); log.debug("Getting SIUnit value"); String SIUnit = driver.findElement(By.name("si")).getAttribute("value"); log.debug("Getting USUnit value"); String USUnit = driver.findElement(By.name("us")).getAttribute("value"); log.debug("Getting UKUnit value"); String UKUnit = driver.findElement(By.name("uk")).getAttribute("value"); log.debug("Getting overall description"); String note = driver.findElement(By.name("desc")).getAttribute("value"); System.out.println("SIUnit = " + SIUnit); System.out.println("USUnit = " + USUnit); System.out.println("UKUnit = " + UKUnit); System.out.println("note = " + note); driver.quit(); } }
En el código anterior, visitamos https://healthunify.com/bmicalculator/y verificar la calculadora de IMC. El peso ingresado es 87 kg y la altura es 5 pies y 10 pulgadas. El script comprueba la salida en unidades de SE, EE. UU. y Reino Unido.
Usando Logger.getLogger(“devpinoyLogger”) creamos registros a nivel del sistema
Usando el método log.debug almacenamos datos en Manual.log
Paso 8) Ejecute el script. Abra la ubicación de Manual y Selenium logs para comprobar los datos de registro.
Cómo se puede utilizar la herramienta LogExpert para analizar registros
- Descarga la herramienta de https://github.com/zarunbal/LogExpert . Vaya a la carpeta de descargas de LogExpert
- Abra LogExpert.exe
- Haga clic en Archivo -> Abrir y busque la ruta donde se encuentra Manual.log y SeleniumLos archivos .log se almacenan. Seleccione el archivo
- Selecciona la opción “Seguir cola”
Al seleccionar la opción Seguir cola, se habilita el seguimiento de los registros, lo que significa que LogExpert actualiza automáticamente el archivo de registro cuando el script está en la fase de ejecución. Si utilizamos cualquier otro editor como el Bloc de notas, tendremos que cerrar y volver a abrir el archivo una y otra vez para actualizar los registros. Pero con ExpertTool en modo Follow Tail esto no es necesario.
Las siguientes imágenes muestran la disposición de los registros.
Con la herramienta LogExpert, se pueden depurar los registros creados por el controlador web de Selenium, ya que en esta herramienta se puede
- buscar cualquier texto y expresión regular,
- crear marcadores y comentarlos y también puede navegar entre marcadores, lo que no es posible en ninguna otra herramienta,
- Filtre los registros y busque rangos de texto y también puede aplicar otro filtro a los registros filtrados anteriores.
- Resalte una línea diferente basada en algunas palabras determinadas.
Esta herramienta también ayuda a dividir los datos en diferentes columnas.