Як використовувати Log4j у Selenium?
⚡ Розумний підсумок
Увійти4j Selenium є швидким, гнучким Java фреймворк для ведення журналу, який записує деталі потоку скриптів автоматизації. Він підтримує кілька рівнів журналу, додавачів та макетів, а також добре поєднується з LogExpert для аналізу згенерованих файлів журналу.
Що таке Log4j в Selenium?
Log4j — це швидкий, гнучкий та надійний фреймворк (API) для ведення журналу, написаний мовою... Java та розроблений на початку 1996 року. Він розповсюджується за ліцензією Apache Ліцензія на програмне забезпечення. Log4j було портовано на C, C++, C#, Perl, Python, Ruby та Eiffel. Це інструмент, який використовується для малого та великого масштабу Selenium проекти автоматизації.
Навіщо використовувати Log4j?
Log4j пропонує кілька практичних переваг для Selenium проекти:
- Це відкритий код.
- За допомогою Log4j можна зберігати деталі потоку Selenium автоматизація у файлі або базі даних.
- Log4j працює як для великих, так і для малих проектів.
- У Log4j оператори журналу замінюють оператори System.out.println у коді, щоб знати статус проекту під час його виконання.
Компоненти Log4j
Лісоруби
Логер відповідає за реєстрацію інформації. Щоб впровадити логери в проекті, необхідно виконати такі кроки.
Створіть екземпляр для класу Logger
Клас Logger – це Javaутиліта на основі , яка має всі загальні методи, що вже реалізовані для використання Log4j.
Визначте рівень Log4j
В основному існує сім видів рівнів журналу:
- ВСІ – Цей рівень ведення журналу записує все (він вмикає всі журнали).
- DEBUG – виводить інформацію для налагодження та корисна на етапі розробки.
- INFO – виводить інформаційні повідомлення, що висвітлюють хід виконання програми.
- WARN – виводить інформацію про несправну та неочікувану поведінку системи.
- ПОМИЛКА – виводить повідомлення про помилки, які можуть дозволити системі продовжити роботу.
- ФАТАЛЬНИЙ – виводить критично важливу для системи інформацію, яка призводить до аварійного завершення роботи програми.
- ВИМК. – Журнал не ведеться.
Додатки
Додавач (Appender) використовується для доставки подій журналу (LogEvents) до місця призначення. Він вирішує, що робити з інформацією журналу. Простими словами, він записує журнали у файл. Нижче наведено кілька типів Додавачів (Appender):
- ConsoleAppender записує дані у стандартний вивід.
- FileAppender друкує журнали у певний файл.
- RollingFileAppender записує дані у файл максимального розміру.
Примітка: У log4j.properties аппендером можна викликати будь-яке ім'я. Існують також інші аппендери, але тут основна увага зосереджена на цих кількох.
макети
Макет відповідає за форматування інформації журналу в різних стилях.
Клас Logger надає різні методи для обробки дій журналювання. Він надає два статичні методи для отримання об'єкта Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Як налаштовано Log4j?
Щоб налаштувати Log4j, виберіть, який додаток реалізувати. Параметри додатка встановлюються відповідно.
- Використовуйте рівень 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{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» використовується для налаштування максимальної кількості файлів для резервного копіювання.
- «Макет» використовується для встановлення формату файлу журналу.
- «Append» використовується для встановлення функції додавання. Коли для нього встановлено значення «false», щоразу створюється новий файл, а не повторно використовується старий файл для логування.
Як Log4j використовується в скрипті?
У коді «log» використовується як змінна посилання, що посилається на метод getLogger класу Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Використовуйте змінну посилання "log" та метод debug для запису необхідної інформації.
log.debug("--information--");
Що таке інструмент LogExpert?
LogExpert – це інструмент з такими характеристиками:
- LogExpert – це Windows інструмент, розроблений для обробки колод.
- Це безкоштовний переглядач журналів з відкритим кодом.
- Це інструмент аналізу журналів з кількома функціями, такими як пошук, фільтрація, додавання закладок та виділення журналів.
- Файли журналів автоматично оновлюються під час відкриття в цьому інструменті.
- Кілька файлів журналів можна відкрити в різних вкладках.
- До закладок можна додавати коментарі, а клавіша швидкого доступу дозволяє переходити між різними закладками. Для навігації доступний повний список закладок.
- У файлі довідки наведено скорочення клавіш для цього інструменту, щоб до них можна було звертатися за потреби.
Як використовувати Log4j в Selenium
Крок 1) In Eclipse, створіть новий проект з назвою log4j_demo.
Крок 2) Клацніть правою кнопкою миші на src -> Шлях збірки -> Налаштувати шлях збірки.
Крок 3) Натисніть на Бібліотеки та додайте бібліотеку Log4j. Її можна завантажити з https://logging.apache.org/log4j/1.2/download.html.
Крок 4) Створіть новий файл. Цей файл містить усю конфігурацію Log4j.
- Клацніть правою кнопкою миші на src -> Створити -> Інше -> Загальне -> Файл.
- Вкажіть ім'я файлу як «log4j.properties».
- Натисніть кнопку Готово.
Створіть ще два файли та назвіть їх 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 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 дюймів. Скрипт перевіряє вивід в одиницях СІ, США та Великобританії.
Використовуючи Logger.getLogger(“devpinoyLogger”), скрипт створює журнали системного рівня. За допомогою методу log.debug дані зберігаються в Manual.log.
Крок 8) Запустіть сценарій. Відкрийте розташування Manual і Selenium журнали для перевірки даних журналу.
Як інструмент LogExpert можна використовувати для аналізу журналів
- Завантажте інструмент з https://github.com/zarunbal/LogExpertПерейдіть до папки завантажень LogExpert.
- Відкрийте файл LogExpert.exe.
- Натисніть Файл -> Відкрити та перейдіть до шляху, де знаходяться файли Manual.log та SeleniumЗберігаються файли .log. Виберіть файл.
- Виберіть опцію «Слідувати за хвостом».
Вибір опції «Слідкувати за хвостом» активує відстеження журналів, що означає, що LogExpert автоматично оновлює файл журналу під час виконання скрипта. У будь-якому іншому редакторі, такому як Блокнот, файл потрібно неодноразово закривати та відкривати для оновлення журналів. Якщо LogExpert увімкнено режим «Слідкувати за хвостом», це не потрібно.
На наступних зображеннях показано розташування колод.
За допомогою LogExpert журнали, створені Selenium WebDriver можна налагоджувати. У цьому інструменті можна:
- Пошук будь-якого тексту та регулярного виразу.
- Створюйте закладки та коментуйте їх, а також переміщайтеся між закладками, що неможливо в жодному іншому інструменті.
- Фільтруйте журнали, знайдіть текстові діапазони та застосуйте інший фільтр до раніше відфільтрованих журналів.
- Виділіть різні рядки на основі певних слів.
Цей інструмент також допомагає розділити дані на різні стовпці.












