Влезте в системата Selenium: Как да изтеглите и използвате файла със свойства на Log4j
Какво е Log4j в Selenium?
Log4j е бърза, гъвкава и надеждна рамка за регистриране (APIS), написана на Java разработен в началото на 1996 г. Той се разпространява под Apache Лиценз за софтуер. Log4J е пренесен към C, C++, C#, Perl, Python, Ruby и Eiffel Languages. Това е инструмент, използван за малък до голям мащаб Selenium Проекти за автоматизация.
Защо да използвате Log4j?
- Това е отворен код
- С Log4j е възможно да се съхраняват подробности за потока на нашия Selenium Автоматизация във файл или бази данни
- Log4j се използва както за големи, така и за малки проекти
- В Log4j използваме log оператори, а не SOPL оператори в кода, за да знаем състоянието на проект, докато се изпълнява
Log4j компоненти
Дървачи
Той отговаря за регистриране на информация. За да внедрите регистратори в проект, трябва да изпълните следните стъпки
Създайте екземпляр за клас logger
Класът Logger е a Java-базирана помощна програма, която вече е внедрила всички общи методи за използване на log4j
Дефинирайте нивото Log4j
Основно има пет вида нива на журнал
- Всички – Това ниво на регистриране ще регистрира всичко (включва всички регистрационни файлове)
- DEBUG – отпечатва информацията за отстраняване на грешки и е полезна в етапа на разработка
- INFO – отпечатване на информационно съобщение, което подчертава напредъка на приложението
- ПРЕДУПРЕЖДЕНИЕ – отпечатване на информация относно неправилно и неочаквано поведение на системата.
- ГРЕШКА – отпечатване на съобщение за грешка, което може да позволи на системата да продължи
- ФАТАЛНО – отпечатайте критична информация за системата, която причинява срив на приложението
- ИЗКЛ. – Без регистриране
Допълнители
Използва се за доставяне на LogEvents до местоназначението им. Той решава какво ще се случи с информацията в регистрационния файл. С прости думи, той се използва за запис на регистрационните файлове във файл. Следват няколко типа Appenders
- ConsoleAppender влиза в стандартен изход
- File appender отпечатва регистрационни файлове към някакъв файл
- Добавяне на файлове към файл с максимален размер
Забележка: В свойствата на log4j можем да извикаме appender с произволно име. Има и други добавки, но ние ще се ограничим до тези няколко.
Формати
Той отговаря за форматирането на регистрационната информация в различни стилове.
Класът Logger предоставя различни методи за обработка на дейности по регистриране. Той предоставя два статични метода за получаване на Logger Object.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Как е конфигуриран log4j?
За да конфигурираме log4j, трябва да решим кой appender да внедрим. Съответно ще бъдат зададени параметрите на appender.
- Ще използваме ниво DEBUG и RollingFileAppender
- Ще направим две конфигурации или регистрационни файлове,
- Първо: root регистратор, който ще запише всички генерирани от системата журнали в име на файл, т.е Selenium.дневници
- Второ: Ще запише информацията, генерирана от ръчни команди в код в името на файла - Manual.logs
#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<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 Class
Logger log = Logger.getLogger("devpinoyLogger");
Използвайте референтна променлива „log“ и метод за отстраняване на грешки, за да регистрирате информацията, която искаме.
log.debug("--information--");
Какво представлява инструментът LogExpert?
- Инструментът LogExpert е инструмент за Windows разработен за опашка на трупите
- Това е безплатна програма за преглед на журнали с отворен код.
- Това е инструмент за анализ на регистрационни файлове с множество функции като търсене, филтриране, маркиране и подчертаване на регистрационните файлове
- В регистрационните файлове на този инструмент файловете се актуализират автоматично при отваряне
- В този инструмент можем да отворим множество регистрационни файлове в различни раздели
- Можем също така да поставяме коментари върху отметки и има клавиш за бърз достъп за навигация между различни отметки. Можем също да видим пълен списък с отметки и да навигираме от там
- Преките пътища на инструмента са дадени в помощния файл, така че да могат да бъдат препратени към инструмента.
Как да използвате Log4j in Selenium
Стъпка 1) In Eclipse създайте нов проект с име log4j_demo
Стъпка 2) Щракнете с десния бутон върху src -> Build Path -> Configure Build Path
Стъпка 3) Кликнете върху Библиотеки и Добавяне на библиотека Log4J. Можете да го изтеглите от https://logging.apache.org/log4j/1.2/download.html
Стъпка 4) Създайте нов файл. Този файл ще включва цялата конфигурация на log4j
- Щракнете с десния бутон върху src -> New -> Other -> General -> File
- Дайте името на файла като „log4j.properties“
- Щракнете върху Finish
Създайте още два файла и им дайте имена като Selenium.logs и Manual.logs. Тези файлове ще съдържат всички регистрационни файлове, създадени от системата и ръчно регистрирани отчети
Стъпка 5) В log4j.properties копирайте цялата конфигурация.
Стъпка 6) Създайте основен клас:
- Щракнете с десния бутон върху пакета по подразбиране -> Нов -> Клас
- Дайте името на класа и щракнете върху край
Стъпка 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 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(); } }
В горния код посещаваме https://healthunify.com/bmicalculator/и проверете калкулатора на BMI. Въведеното тегло е 87 кг, а височината е 5 фута 10 инча. Скриптът проверява изхода в единици SE, US и UK.
С помощта на Logger.getLogger(“devpinoyLogger”) създаваме регистрационни файлове на ниво система
Използвайки метода log.debug, ние съхраняваме данни в Manual.log
Стъпка 8) Стартирайте скрипта. Отворете местоположението на Ръководство и Selenium регистрационни файлове, за да проверите данните за регистриране.
Как инструментът LogExpert може да се използва за анализ на регистрационни файлове
- Изтеглете инструмента от https://github.com/zarunbal/LogExpert . Отидете в папката за изтегляне на LogExpert
- Отворете LogExpert.exe
- Щракнете върху Файл -> Отваряне и Прегледайте до пътя, където Manual.log и Selenium.log файлове се съхраняват. Изберете файла
- Изберете опцията „Следване на опашката“.
Избирането на опцията за следване на опашката позволява проследяване на регистрационни файлове, което означава, че LogExpert автоматично актуализира лог файла, когато скриптът е във фаза на изпълнение. Ако използваме друг редактор като notepad, тогава трябва да затваряме и отваряме отново файла отново и отново, за да актуализираме регистрационните файлове. Но с ExpertTool в режим Follow Tail това не е необходимо.
Следващите изображения показват оформлението на трупите
Използвайки инструмента LogExpert, човек може да отстранява грешки в регистрационни файлове, създадени от уебдрайвера на selenium, както в този инструмент веднъж може
- търсене на произволен текст и регулярен израз,
- създавайте отметки и ги коментирайте, а също така можете да навигирате между отметките, което не е възможно в никой друг инструмент,
- Филтрирайте регистрационните файлове и търсете текстови диапазони и също така можете да приложите друг филтър към предишните филтрирани журнали,
- Маркирайте различен ред въз основа на определени думи.
Този инструмент също помага за разделянето на данните в различни колони.