Какво е Log4j?
Log4j е бърза, гъвкава и надеждна система за регистриране (APIS), написана на Java, разработена в началото на 1996 г. Тя се разпространява под лиценза за софтуер Apache. Log4J е пренесен на C, C ++, C #, Perl, Python, Ruby и Eiffel Languages. Това е инструмент, използван за малки и големи проекти за автоматизация на Selenium.
Защо да използвам Log4j?
- Това е отворен код
- С Log4j е възможно да съхранявате подробности за потока на нашата Selenium Automation във файл или бази данни
- Log4j се използва както за големи, така и за малки проекти
- В Log4j използваме протоколи от дневник, а не оператори SOPL в кода, за да знаем състоянието на проекта, докато той се изпълнява
Log4j има три основни компонента
- Регистратори : Той е отговорен за регистрацията на информация. За да се приложат регистратори в проект, трябва да се изпълнят следните стъпки -
- Създайте екземпляр за клас на регистратор : Класът на регистратора е помощна програма, базирана на Java, която има всички генерични методи, вече внедрени за използване на log4j
- Определете нивото на Log4j : Основно има пет вида нива на регистрационни файлове
- Всички - Това ниво на регистриране ще регистрира всичко (включва всички дневници)
- DEBUG - отпечатва информацията за отстраняване на грешки и е полезна на етапа на разработка
- INFO - отпечатва информационно съобщение, което подчертава напредъка на приложението
- ПРЕДУПРЕЖДЕНИЕ - отпечатва информация относно дефектно и неочаквано поведение на системата.
- ГРЕШКА - съобщение за грешка при печат, което може да позволи на системата да продължи
- FATAL - отпечатва критична информация за системата, която причинява срив на приложението
- OFF - Без регистриране
- Допълнения : Използва се за доставяне на LogEvents до местоназначението им. Той решава какво ще се случи с информацията в дневника. С прости думи, той се използва за записване на регистрационните файлове във файл. Следват няколко вида Апендери
- ConsoleAppender регистрира стандартния изход
- File appender отпечатва регистрационни файлове към някакъв файл
- Подвижен файл за добавяне към файл с максимален размер
Забележка: В свойствата на log4j можем да извикаме appender с произволно име. Има и други приложения, но ние ще се ограничим до тези няколко.
- Оформления : Той отговаря за форматирането на регистрационната информация в различни стилове.
Класът Logger предоставя различни методи за обработка на дейности по регистриране. Той предоставя два статични метода за получаване на обект на регистратор.
Публичен статичен регистратор getRootLogger ()Публичен статичен регистратор getLogger (име на низ)
Как се конфигурира log4j?
За да конфигурираме log4j, трябва да решим кой приложение да приложим. Съответно ще бъдат зададени параметри на приложението.
- Ще използваме ниво DEBUG и RollingFileAppender
- Ще направим две конфигурации или регистрационни файлове,
- Първо: root logger, който ще записва всички генерирани от системата дневници в името на файла, т.е. Selenium.logs
- Второ: Ще запише информацията, генерирана от ръчни команди в код в името на файла - Manual.logs
- Оформлението ще бъде PatternLayout
#Root logger
log4j.rootLogger = ДЕБУГ, файлlog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900KBlog4j.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
#Application Logs
log4j.logger.devpinoyLogger = ДЕБУГ, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900KBlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {dd / 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 Class
Logger log = Logger.getLogger ("devpinoyLogger");
Използвайте "log", отнасящ се до променлива и метод за отстраняване на грешки, за да регистрирате информацията, която искаме.
log.debug ("- information--");
Какво представлява инструментът LogExpert?
- Инструментът LogExpert е инструмент за Windows, разработен за ограничаване на регистрационните файлове
- Това е безплатна програма за преглед на журнали с отворен код.
- Това е инструмент за анализ на журнали с множество функции като търсене, филтриране, маркиране и маркиране на регистрационните файлове
- В дневниците на този инструмент файловете се актуализират автоматично при отваряне
- В този инструмент можем да отворим множество регистрационни файлове в различни раздели
- Също така можем да коментираме отметки и има клавиш за бърз достъп за навигация между различните отметки. Също така можем да видим пълен списък с отметки и да навигираме от там
- Преки пътища на инструмента са дадени в помощния файл, за да могат да бъдат препратени към инструмента.
Стъпки за използване на Log4j със селен
Стъпка 1) В Eclipse създайте нов проект с име log4j_demo
Стъпка 2) Щракнете с десния бутон върху src -> Build Path -> Configure Build Path
Стъпка 2) Кликнете върху Библиотеки и добавете библиотека Log4J. Можете да го изтеглите от https://logging.apache.org/log4j/1.2/download.html
Стъпка 3) Създайте нов файл. Този файл ще включва цялата конфигурация на log4j
- Щракнете с десния бутон върху src -> New -> Other -> General -> File
- Дайте името на файла като "log4j.properties"
- Щракнете върху Finish
Създайте още два файла и им дайте имена като Selenium.logs и Manual.logs. Тези файлове ще съдържат всички регистрационни файлове, създадени от системни и ръчно регистрирани оператори
Стъпка 4) В log4j.properties копирайте цялата конфигурация.
Стъпка 5) Създайте основен клас:
- Щракнете с десния бутон върху пакета по подразбиране -> Нов -> Клас
- Дайте името на класа и щракнете върху край
Стъпка 6) Копирайте следния код в основния клас
внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;импортиране на org.apache.log4j.Logger;публичен клас LoggingDemo {/ *** @param аргументи* /публична статична 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 ("value");log.debug ("Получаване на USUnit стойност");Низ USUnit = driver.findElement (By.name ("us")). GetAttribute ("value");log.debug ("Получаване на UKUnit стойност");Низ UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Получаване на цялостно описание");Бележка на низа = 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 =" + бележка);driver.quit ();}}
В горния код посещаваме http://healthunify.com/bmicculator/и проверяваме BMI калкулатора. Въведеното тегло е 87 кг, а височината е 5 фута 10 инча. Скриптът проверява изхода в единици от Южна, САЩ и Великобритания.
Използвайки Logger.getLogger ("devpinoyLogger"), ние създаваме дневници на системно ниво
Използвайки метода log.debug, ние съхраняваме данни в Manual.log
Стъпка 7) Стартирайте скрипта. Отворете местоположението на Ръчни и Селени дневници, за да проверите данните за регистриране.
Как инструментът LogExpert може да се използва за анализ на регистрационни файлове
- Изтеглете инструмента от http://logexpert.codeplex.com/. Отидете в папката за изтегляне LogExpert
- Отворете LogExpert.exe
- Щракнете върху Файл -> Отваряне и прегледайте пътя, където се съхраняват файловете Manual.log и Selenium.log. Изберете файла
- Изберете опцията "Следване на опашката"
Избирането на опцията за следване на опашката позволява заделяне на регистрационни файлове, което означава, че LogExpert автоматично актуализира регистрационния файл, когато скриптът е във фаза на изпълнение. Ако използваме друг редактор като бележник, тогава трябва да затваряме и отваряме файла отново и отново, за да актуализираме дневниците. Но с ExpertTool в режим Следване на опашката това не е задължително.
Следващите изображения показват оформлението на дневниците
Използвайки инструмента LogExpert, човек може да отстранява грешки в дневниците, създадени от селен webdriver, както в този инструмент, веднъж може
- търсете какъвто и да е текст и регулярен израз,
- създайте отметка и ги коментирайте, а също така можете да навигирате между отметки, което не е възможно в нито един друг инструмент,
- Филтрирайте дневниците и търсете текстови диапазони, а също така можете да приложите друг филтър към предишните филтрирани дневници,
- Маркирайте различен ред, базиран на някои определени думи.
Този инструмент също помага за разделяне на данните в различни колони.