Как да използвате Log4j в Selenium?

⚡ Умно обобщение

Влезте в системата Selenium е бърз, гъвкав Java рамка за регистриране, която записва подробности за потока на скриптове за автоматизация. Тя поддържа множество нива на регистриране, допълващи елементи и оформления и се съчетава добре с LogExpert за анализ на генерираните регистрационни файлове.

  • 🔘 Компоненти: Log4j е изграден около регистратори, приложения и оформления, които заедно записват, маршрутизират и форматират събития в лога за Selenium проекти за автоматизация.
  • ☑️ Нива на лог файловете: Седем нива (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) контролират колко детайли се записват по време на изпълнението на скрипта и отстраняването на грешки.
  • Прилагащи елементи: ConsoleAppender, FileAppender и RollingFileAppender решават дали записите в лога отиват в конзолата, статичен файл или подвижен набор от файлове.
  • 🧪 Конфигурация: Файлът log4j.properties дефинира главните и приложните регистратори, файловите пътища, максималния размер на файла, индекса на резервното копие и правилата за форматиране на PatternLayout.
  • 🛠️ Преглед на LogExpert: Безплатният инструмент LogExpert е опашки Selenium и Ръчни лог файлове в реално време, с филтриране, маркиране, маркиране и преглед в няколко раздела.

Как да използвате Log4j в Selenium

Какво е Log4j в Selenium?

Log4j е бърза, гъвкава и надеждна рамка (API) за регистриране, написана на Java и разработен в началото на 1996 г. Разпространява се под Apache Софтуерен лиценз. Log4j е портиран на C, C++, C#, Perl, Python, Ruby и Eiffel. Това е инструмент, използван за малки и големи мащаби Selenium проекти за автоматизация.

Защо да използвате Log4j?

Log4j предлага няколко практически предимства за Selenium проекти:

  • Той е с отворен код.
  • С Log4j е възможно да се съхраняват подробности за потока на Selenium автоматизация във файл или база данни.
  • Log4j работи както за големи, така и за малки проекти.
  • В Log4j, log операторите заместват System.out.println операторите в кода, за да се знае състоянието на проекта, докато той се изпълнява.

Log4j компоненти

Log4j компоненти

Дървачи

Логерът е отговорен за регистрирането на информация. За да внедрите логери в проект, трябва да се изпълнят следните стъпки.

Създайте екземпляр за класа Logger

Класът Logger е Java-базирана помощна програма, която вече има всички генерични методи, имплементирани за използване на Log4j.

Дефинирайте нивото Log4j

Основно има седем вида нива на лог файлове:

  1. ВСИЧКИ – Това ниво на регистриране записва всичко (включва всички регистрационни файлове).
  2. DEBUG – отпечатва информация за отстраняване на грешки и е полезна на етапа на разработка.
  3. ИНФО – отпечатва информационни съобщения, които показват напредъка на приложението.
  4. ПРЕДУПРЕЖДЕНИЕ – отпечатва информация относно неправилно и неочаквано поведение на системата.
  5. ГРЕШКА – отпечатва съобщения за грешки, които биха могли да позволят на системата да продължи работата си.
  6. ФАТАЛЕН – отпечатва критична за системата информация, която причинява срив на приложението.
  7. ИЗКЛ. – Няма записване.

Допълнители

Appender се използва за доставяне на LogEvents до тяхното местоназначение. Той решава какво ще се случи с информацията от лога. С прости думи, той записва логове във файл. Следват няколко вида Appender:

  1. ConsoleAppender регистрира данните в стандартния изход.
  2. FileAppender отпечатва лог файлове в определен файл.
  3. RollingFileAppender записва във файл с максимален размер.

Забележка: В log4j.properties, appender може да бъде извикан с произволно име. Има и други appender-и, но фокусът тук е върху тези няколко.

Формати

Оформлението е отговорно за форматирането на информацията за регистриране в различни стилове.

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

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

Как е конфигуриран Log4j?

За да конфигурирате Log4j, решете кой appender да имплементирате. Параметрите на appender-а се задават съответно.

  • Използвайте DEBUG ниво и RollingFileAppender.
  • Създават се две конфигурации или лога:
    • Първо: root логър, който записва всички генерирани от системата логове във файл с име Selenium.logs.
    • Второ: регистратор на приложения, който записва информация, генерирана от ръчни команди в код, във файла с име Manual.logs.
  • Използваното оформление е PatternLayout.

#Root регистратор

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{1}:%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” се използва за задаване на формата на лог файла.
  • „Append“ се използва за задаване на функцията за добавяне. Когато е зададено на „false“, всеки път се създава нов файл, вместо да се използва повторно старият файл за регистриране.

Как се използва Log4j в скрипт?

В кода „log“ се използва като референтна променлива, препращаща към метода getLogger на класа Logger.

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

Използвайте референтната променлива „log“ и метода за дебъгване, за да регистрирате необходимата информация.

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

Какво представлява инструментът LogExpert?

LogExpert е инструмент със следните характеристики:

  1. LogExpert е Windows инструмент, разработен за обработка на трупи.
  2. Това е безплатен прегледник на лог файлове с отворен код.
  3. Това е инструмент за анализ на лог файлове с множество функции, като търсене, филтриране, маркиране и маркиране на лог файлове.
  4. Лог файловете се актуализират автоматично, когато се отварят в този инструмент.
  5. Няколко лог файлове могат да бъдат отворени в различни раздели.
  6. Към отметките могат да се добавят коментари, а клавишна комбинация позволява навигация между различните отметки. За навигация е наличен пълен списък с отметки.
  7. В помощния файл са дадени преките пътища на инструмента, така че да могат да бъдат използвани при необходимост.

Как да използвате Log4j in Selenium

Стъпка 1) In Eclipse, създайте нов проект с име log4j_demo.

Използвайте Log4j In Selenium

Стъпка 2) Щракнете с десния бутон върху src -> Път за изграждане -> Конфигуриране на път за изграждане.

Използвайте Log4j In Selenium

Стъпка 3) Кликнете върху Библиотеки и добавете библиотеката Log4j. Тя може да бъде изтеглена от https://logging.apache.org/log4j/1.2/download.html.

Използвайте Log4j In Selenium

Стъпка 4) Създайте нов файл. Този файл съдържа цялата конфигурация на Log4j.

  1. Щракнете с десния бутон върху src -> Ново -> Друго -> Общи -> Файл.
  2. Дайте името на файла като „log4j.properties“.
  3. Щракнете върху Готово.

Създайте още два файла и ги наименувайте Selenium.logs и Manual.logs. Тези файлове съдържат всички лог файлове, създадени от системата, и ръчно регистрираните отчети.

Използвайте Log4j In Selenium

Стъпка 5) В log4j.properties копирайте цялата конфигурация.

Използвайте Log4j In Selenium

Стъпка 6) Създайте основния клас:

  1. Щракнете с десния бутон върху пакета по подразбиране -> Нов -> Клас.
  2. Дайте име на класа и щракнете върху „Готово“.

Използвайте Log4j In Selenium

Стъпка 7) Копирайте следния код в основния клас.

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 website");
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
         log.debug("entering 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 inches");
         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();
    }
}

В горния код, скриптът посещава https://healthunify.com/bmicalculator/ и проверява калкулатора на ИТМ. Въведеното тегло е 87 кг, а височината е 5 фута и 10 инча. Скриптът проверява изхода в мерни единици SI, US и UK.

Използвайки Logger.getLogger(“devpinoyLogger”), скриптът създава лог файлове на системно ниво. Използвайки метода log.debug, данните се съхраняват в Manual.log.

Стъпка 8) Стартирайте скрипта. Отворете местоположението на Ръководство и Selenium лог файлове за проверка на данните от логването.

Как инструментът LogExpert може да се използва за анализ на регистрационни файлове

  1. Изтеглете инструмента от https://github.com/zarunbal/LogExpertОтидете в папката за изтегляне на LogExpert.

    Инструментът LogExpert може да се използва за анализиране на регистрационни файлове

  2. Отворете LogExpert.exe.
  3. Кликнете върху Файл -> Отвори и отидете до пътя, където се намират Manual.log и Selenium.log файловете се съхраняват. Изберете файла.
  4. Изберете опцията „Следвай опашката“.

    Инструментът LogExpert може да се използва за анализиране на регистрационен файл

    Избирането на „Следвай опашката“ активира проследяването на лог файловете, което означава, че LogExpert автоматично актуализира лог файла, докато скриптът се изпълнява. С всеки друг редактор, като Notepad, файлът трябва да се затваря и отваря отново многократно, за да се актуализират лог файловете. С LogExpert в режим „Следвай опашката“ това не е необходимо.

    Следните изображения показват разположението на трупите.

    Инструментът LogExpert може да се използва за анализиране на регистрационен файл

    Инструментът LogExpert може да се използва за анализиране на регистрационен файл

С помощта на LogExpert, лог файловете, създадени от Selenium WebDriver може да бъде дебъгван. В този инструмент може да се:

  • Търсене на произволен текст и регулярен израз.
  • Създавайте отметки и коментирайте ги, както и навигирайте между отметките, което не е възможно в никой друг инструмент.
  • Филтрирайте лог файловете, търсете текстови диапазони и приложете друг филтър към предварително филтрираните лог файлове.
  • Маркирайте различни редове въз основа на определени думи.

Този инструмент също помага за разделянето на данните в различни колони.

Въпроси и Отговори

Log4j 1.x достигна края на жизнения си цикъл през 2015 г. и използва файл със свойства или XML файл за конфигурация. Log4j 2.x предлага по-добра производителност, асинхронни регистратори, поддръжка на ламбда и подобрена сигурност след корекциите на Log4Shell, което го прави препоръчителният избор за нови проекти.

Log4j поддържа конфигурируеми нива на лог файлове, постоянен файлов изход, подвижни резервни копия и структурирани модели. System.out.println записва само в конзолата и не може да бъде филтриран или архивиран. Log4j прави Selenium резултатите от тестовете са по-лесни за сортиране, одит и възпроизвеждане.

Да. Асистентите с изкуствен интелект могат да анализират голям Log4j изход, да клъстерират повтарящи се грешки и да откриват модели на първопричини в Selenium бягания. Те подчертават нестабилни локатори, бавни стъпки и се натрупват traces, превръщайки суровите лог записи в приоритетни действия за QA инженерите.

Платформите за наблюдаемост, задвижвани от изкуствен интелект, приемат Log4j потоци, откриват аномалии в реално време и прогнозират повреди, преди те да засегнат потребителите. Моделите за машинно обучение оценяват тежестта, дедуплицират шумни събития и задействат интелигентни предупреждения, замествайки ръчните работни процеси на grep с проактивно наблюдение.

Не. LogExpert е популярен безплатен Windows прегледник с проследяване на опашката и филтриране, но алтернативите включват BareTail, glogg, Klogg и пълни платформи като Splunk, Graylogили ELK стека за централизиран анализ на много машини.

Обобщете тази публикация с: