Учебники

43) Log4j и LogExpert

Что такое Log4j?

Log4j — это быстрая, гибкая и надежная среда ведения журналов (APIS), написанная на Java, разработанная в начале 1996 года. Она распространяется под лицензией Apache Software License. Log4J был портирован на языки C, C ++, C #, Perl , Python , Ruby и Eiffel. Это инструмент, используемый для небольших и крупных проектов Selenium Automation.

Зачем использовать Log4j?

  • Это открытый исходный код
  • С Log4j можно хранить детали потока нашей Selenium Automation в файле или базах данных
  • Log4j используется как для больших, так и для небольших проектов
  • В Log4j мы используем операторы журнала, а не операторы SOPL в коде, чтобы знать состояние проекта во время его выполнения

Log4j имеет три основных компонента

Log4j с учебником по Selenium

  1. Регистраторы : Он отвечает за регистрацию информации. Для внедрения регистраторов в проект необходимо выполнить следующие шаги:
  • Создайте экземпляр для класса logger. Класс Logger — это утилита на основе Java, в которой есть все уже реализованные универсальные методы для использования log4j.
  • Определите уровень Log4j : в первую очередь существует пять видов уровней журнала
    1. Все — этот уровень регистрации будет регистрировать все (он включает все журналы)
    2. DEBUG — распечатывает отладочную информацию и полезна на стадии разработки
    3. INFO — распечатать информационное сообщение, которое освещает ход работы приложения
    4. ПРЕДУПРЕЖДЕНИЕ — печатать информацию о неисправном и неожиданном поведении системы.
    5. ОШИБКА — распечатать сообщение об ошибке, которое может позволить системе продолжить
    6. FATAL — печатает критическую информацию о системе, которая вызывает сбой приложения
    7. OFF — нет регистрации
  1. Appenders : используется для доставки LogEvents к месту назначения. Он решает, что произойдет с информацией журнала. Проще говоря, он используется для записи журналов в файл. Ниже приведены несколько типов приложений
    1. ConsoleAppender регистрирует стандартный вывод
    2. Файл appender распечатывает логи в какой-то файл
    3. Подкачка файла appender к файлу с максимальным размером

    Примечание: в свойствах log4j мы можем вызвать appender с любым именем. Есть и другие дополнения, но мы ограничимся этими немногими.

  2. Макеты : он отвечает за форматирование информации журнала в разных стилях.

Класс Logger предоставляет различные методы для обработки действий регистрации. Он предоставляет два статических метода для получения объекта Logger.

Public static Logger getRootLogger()
Public static Logger getLogger(String name)

Как настроен log4j?

Чтобы настроить log4j, мы должны решить, какой appender реализовать. Соответственно, параметры appender будут установлены.

  • Мы будем использовать уровень DEBUG и RollingFileAppender
  • Мы сделаем две конфигурации или журналы,
    • Первый: корневой логгер, который запишет все сгенерированные системой логи в имени файла, т.е. Selenium.logs
    • Второй: запишет информацию, сгенерированную ручными командами в коде, в имя файла — Manual.logs
  • Макет будет PatternLayout

# Root logger

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

# Журналы приложений

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

В приведенном выше примере мы настроили log4j для входа в два разных файла с именами Selenium.log и Manual.log.

  • file и dest1 — это два идентификатора.
  • «Файл» используется для указания имени файла, в котором будут сохраняться логи
  • «maxFileSize» используется для настройки максимального размера файла журнала. Когда файл достигнет этого размера, будет создан новый файл с тем же именем, и старое имя файла будет добавлено в качестве индекса к нему.
  • «maxBackupIndex» используется для настройки максимального количества файлов для резервного копирования.
  • «layout» используется для установки формата файла журнала.
  • «Добавить» используется для установки функции добавления. Если установлено значение false, то каждый раз будет создаваться новый файл, а не старый файл будет использоваться для регистрации

Как log4j используется в скрипте?

В коде мы использовали «log» в качестве ссылочной переменной, ссылающейся на метод getLogger класса Logger

Logger log = Logger.getLogger("devpinoyLogger");

Используйте «log», ссылающуюся на переменную и метод отладки, чтобы записать нужную нам информацию.

log.debug("--information--");

Что такое инструмент LogExpert?

  1. LogExpert — это инструмент для Windows, разработанный для отслеживания логов
  2. Это бесплатный и с открытым исходным кодом просмотра журнала.
  3. Это инструмент анализа журналов с множеством функций, таких как поиск, фильтрация, создание закладок и выделение журналов.
  4. В этом журнале инструментов файлы автоматически обновляются при открытии
  5. В этом инструменте мы можем открыть несколько файлов журнала на разных вкладках
  6. Мы также можем оставлять комментарии к закладкам, и для быстрого перехода между различными закладками есть клавиша быстрого доступа. Мы также можем увидеть полный список закладок и перейти оттуда
  7. Ярлыки инструмента приведены в файле справки, чтобы их можно было ссылаться на инструмент.

Шаги для использования Log4j с Selenium

Шаг 1) В Eclipse создайте новый проект с именем log4j_demo

Log4j с учебником по Selenium

Шаг 2) Щелкните правой кнопкой мыши по src -> Build Path -> Configure Build Path

Log4j с учебником по Selenium

Шаг 2) Нажмите «Библиотеки» и добавьте библиотеку Log4J. Вы можете скачать его с https://logging.apache.org/log4j/1.2/download.html

 

Log4j с учебником по Selenium

Шаг 3) Создайте новый файл. Этот файл будет включать всю конфигурацию log4j

  1. Щелкните правой кнопкой мыши на src -> New -> Other -> General -> File
  2. Дайте имя файла как «log4j.properties»
  3. Нажмите на Готово

Создайте еще два файла и дайте им имена, такие как Selenium.logs и Manual.logs. Эти файлы будут содержать все журналы, созданные системой и выписанные вручную выписки

Log4j с учебником по Selenium

Шаг 4) В log4j.properties скопируйте всю конфигурацию.

Log4j с учебником по Selenium

Шаг 5) Создайте основной класс:

  1. Щелкните правой кнопкой мыши на пакете по умолчанию -> Новый -> Класс
  2. Дайте имя классу и нажмите на финиш

Log4j с учебником по Selenium

Шаг 6) Скопируйте следующий код в основной класс

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("http://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();
	}
}

В приведенном выше коде мы посещаем http://healthunify.com/bmicalculator/ и проверяем калькулятор ИМТ. Введенный вес составляет 87 кг, а высота составляет 5 футов 10 дюймов. Скрипт проверяет вывод в единицах SE, US и UK.

Используя Logger.getLogger («devpinoyLogger»), мы создаем журналы системного уровня

Используя метод log.debug, мы сохраняем данные в Manual.log

Шаг 7) Запустите скрипт. Откройте местоположение журналов Manual и Selenium, чтобы проверить данные журналов.

Как инструмент LogExpert можно использовать для анализа журналов

  1. Загрузите инструмент с http://logexpert.codeplex.com/ . Перейти в папку загрузки LogExpert

    Log4j с учебником по Selenium

  2. Откройте LogExpert.exe
  3. Нажмите Файл -> Открыть и перейдите к пути, где хранятся файлы Manual.log и Selenium.log. Выберите файл
  4. Выберите опцию «Следовать за хвостом»

    Log4j с учебником по Selenium

    Выбор опции follow tail включает отслеживание журналов, что означает, что LogExpert автоматически обновляет файл журнала, когда сценарий находится в фазе выполнения. Если мы используем любой другой редактор, такой как блокнот, то нам нужно снова и снова закрывать файл, чтобы обновить журналы. Но с ExpertTool в режиме Follow Tail это не требуется.

    На следующих изображениях показано расположение журналов

    Log4j с учебником по Selenium

    Log4j с учебником по Selenium

С помощью инструмента LogExpert можно отлаживать журналы, созданные веб-драйвером selenium, как в этом инструменте,

  • поиск любого текста и регулярного выражения,
  • создавать закладки и комментировать их, а также может перемещаться между закладками, что невозможно в любом другом инструменте,
  • Фильтровать журналы и искать текстовые диапазоны, а также может применить другой фильтр к предыдущим отфильтрованным журналам,
  • Выделите другую строку на основе определенных слов.

Этот инструмент также помогает разбить данные на разные столбцы.