Учебное пособие по Log4j с Selenium: загрузка, установка, использование & Пример

Содержание:

Anonim

Что такое 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 состоит из трех основных компонентов

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

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

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

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

Публичный статический регистратор getRootLogger ()Публичный статический регистратор getLogger (имя строки)

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

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

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

# Корневой регистратор

log4j.rootLogger = ОТЛАДКА, файлlog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \ Guru99 \ src \ Selenium.logslog4j.appender.file.maxFileSize = 900 КБlog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c  {1} :% L -% m% nlog4j.appender.file.Append = false

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

log4j.logger.devpinoyLogger = ОТЛАДКА, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900 КБlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {дд / MM / yyyy HH: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \ Guru99 \ src \ Manual.logslog4j.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 ("- информация--");

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

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

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

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

Шаг 2) Щелкните правой кнопкой мыши src -> Путь сборки -> Настроить путь сборки

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

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

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

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

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

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

  1. Щелкните правой кнопкой мыши пакет по умолчанию -> Создать -> Класс
  2. Дайте название класса и нажмите "Готово"

Шаг 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 Заглушка автоматически сгенерированного методаДрайвер WebDriver = новый FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("открытие веб-сайта");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("вводимый вес");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug («выбор килограммов»);driver.findElement (By.name ("opt1")). sendKeys ("килограммы");log.debug («выбор высоты в футах»);driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug («выбор высоты в дюймах»);driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug («Нажатие на вычисление»);driver.findElement (By.name ("cc")). click ();log.debug ("Получение значения SIUnit");Строка SIUnit = driver.findElement (By.name ("si")). GetAttribute ("значение");log.debug ("Получение значения USUnit");Строка USUnit = driver.findElement (By.name («нас»)). GetAttribute («значение»);log.debug ("Получение значения UKUnit");Строка UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug («Получение общего описания»);Строка 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 ("примечание =" + примечание);driver.quit ();}}

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

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

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

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

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

  1. Загрузите инструмент с http://logexpert.codeplex.com/. Перейдите в папку загрузки LogExpert
  2. Откройте LogExpert.exe
  3. Щелкните Файл -> Открыть и перейдите к пути, по которому хранятся файлы Manual.log и Selenium.log. Выберите файл
  4. Выберите вариант «Следить за хвостом».

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

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

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

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

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