Πώς να χρησιμοποιήσετε το Log4j στο Selenium?
⚡ Έξυπνη Σύνοψη
Συνδεθείτε4j Selenium είναι γρήγορο, ευέλικτο Java Πλαίσιο καταγραφής που καταγράφει λεπτομέρειες ροής σεναρίων αυτοματισμού. Υποστηρίζει πολλαπλά επίπεδα καταγραφής, προσαρτήματα και διατάξεις και συνδυάζεται καλά με το LogExpert για την ανάλυση των δημιουργημένων αρχείων καταγραφής.

Τι είναι το Log4j in 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 – εκτυπώνει ενημερωτικά μηνύματα που επισημαίνουν την πρόοδο της εφαρμογής.
- ΠΡΟΕΙΔΟΠΟΙΗΣΗ – εκτυπώνει πληροφορίες σχετικά με ελαττωματική και μη αναμενόμενη συμπεριφορά συστήματος.
- ΣΦΑΛΜΑ – εκτυπώνει μηνύματα σφάλματος που ενδέχεται να επιτρέψουν στο σύστημα να συνεχίσει.
- FATAL – εκτυπώνει κρίσιμες πληροφορίες συστήματος που προκαλούν διακοπή λειτουργίας της εφαρμογής.
- ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ – Δεν γίνεται καταγραφή.
Προσαρτήματα
Ένας Appender χρησιμοποιείται για την παράδοση των LogEvents στον προορισμό τους. Αποφασίζει τι θα συμβεί με τις πληροφορίες καταγραφής. Με απλά λόγια, γράφει αρχεία καταγραφής σε ένα αρχείο. Ακολουθούν μερικοί τύποι Appender:
- Το ConsoleAppender καταγράφει την τυπική έξοδο.
- Το FileAppender εκτυπώνει αρχεία καταγραφής σε ένα συγκεκριμένο αρχείο.
- Το RollingFileAppender γράφει σε ένα αρχείο με μέγιστο μέγεθος.
Σημείωση: Στο log4j.properties, ένα αρχείο appender μπορεί να κληθεί με οποιοδήποτε όνομα. Υπάρχουν και άλλα appender, αλλά η έμφαση εδώ δίνεται σε αυτά τα λίγα.
σχεδιαγράμματα
Η διάταξη είναι υπεύθυνη για τη μορφοποίηση των πληροφοριών καταγραφής σε διαφορετικά στυλ.
Η κλάση Logger παρέχει διαφορετικές μεθόδους για τη διαχείριση των δραστηριοτήτων καταγραφής. Παρέχει δύο στατικές μεθόδους για την απόκτηση ενός αντικειμένου Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Πώς έχει ρυθμιστεί το Log4j;
Για να ρυθμίσετε το Log4j, αποφασίστε ποιον προσαρτητή θα υλοποιήσετε. Οι παράμετροι του προσαρτητή ορίζονται ανάλογα.
- Χρησιμοποιήστε το επίπεδο DEBUG και το RollingFileAppender.
- Δημιουργούνται δύο διαμορφώσεις ή αρχεία καταγραφής:
- Πρώτον: ένα πρόγραμμα καταγραφής root, το οποίο καταγράφει όλα τα αρχεία καταγραφής που δημιουργούνται από το σύστημα σε ένα αρχείο με το όνομα 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.
- αρχείο και dest1 είναι τα δύο αναγνωριστικά.
- Η λέξη «Αρχείο» χρησιμοποιείται για να δώσει το όνομα αρχείου στο οποίο αποθηκεύονται τα αρχεία καταγραφής.
- Το «maxFileSize» χρησιμοποιείται για τη διαμόρφωση του μέγιστου μεγέθους του αρχείου καταγραφής. Όταν το αρχείο φτάσει σε αυτό το μέγεθος, δημιουργείται ένα νέο αρχείο με το ίδιο όνομα και το παλιό όνομα αρχείου λαμβάνει ένα επίθημα ευρετηρίου.
- Το «maxBackupIndex» χρησιμοποιείται για τη διαμόρφωση του μέγιστου αριθμού αρχείων για δημιουργία αντιγράφων ασφαλείας.
- Το "layout" χρησιμοποιείται για να ορίσετε τη μορφή του αρχείου καταγραφής.
- Η συνάρτηση "Append" χρησιμοποιείται για τον ορισμό της συνάρτησης προσάρτησης. Όταν έχει οριστεί σε false, δημιουργείται ένα νέο αρχείο κάθε φορά αντί να επαναχρησιμοποιείται το παλιό αρχείο για καταγραφή.
Πώς χρησιμοποιείται το Log4j μέσα σε ένα σενάριο;
Στον κώδικα, το "log" χρησιμοποιείται ως μεταβλητή αναφοράς που αναφέρεται στη μέθοδο getLogger της κλάσης Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Χρησιμοποιήστε τη μεταβλητή αναφοράς "log" και τη μέθοδο εντοπισμού σφαλμάτων για να καταγράψετε τις πληροφορίες που χρειάζεστε.
log.debug("--information--");
Τι είναι ένα εργαλείο LogExpert;
Το LogExpert είναι ένα εργαλείο με τα ακόλουθα χαρακτηριστικά:
- Το LogExpert είναι ένα Windows εργαλείο που αναπτύχθηκε για την παρακολούθηση των κορμών.
- Είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα προβολής αρχείων καταγραφής.
- Είναι ένα εργαλείο ανάλυσης αρχείων καταγραφής με πολλαπλές λειτουργίες, όπως αναζήτηση, φιλτράρισμα, προσθήκη σελιδοδεικτών και επισήμανση αρχείων καταγραφής.
- Τα αρχεία καταγραφής ενημερώνονται αυτόματα όταν ανοίγονται σε αυτό το εργαλείο.
- Μπορείτε να ανοίξετε πολλά αρχεία καταγραφής σε διαφορετικές καρτέλες.
- Μπορείτε να προσθέσετε σχόλια στους σελιδοδείκτες και ένα πλήκτρο συντόμευσης σας επιτρέπει να πλοηγείστε μεταξύ διαφορετικών σελιδοδεικτών. Διατίθεται μια πλήρης λίστα σελιδοδεικτών για πλοήγηση.
- Οι συντομεύσεις του εργαλείου παρέχονται στο αρχείο βοήθειας, ώστε να μπορείτε να ανατρέχετε σε αυτές όποτε χρειάζεται.
Πώς να χρησιμοποιήσετε το Log4j in 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 ίντσες. Το σενάριο ελέγχει την έξοδο σε μονάδες SI, 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 ενημερώνει αυτόματα το αρχείο καταγραφής ενώ εκτελείται το σενάριο. Με οποιοδήποτε άλλο πρόγραμμα επεξεργασίας όπως το Σημειωματάριο, το αρχείο πρέπει να κλείνεται και να ανοίγεται ξανά επανειλημμένα για την ενημέρωση των αρχείων καταγραφής. Με το LogExpert σε λειτουργία "Ακολουθήστε την ουρά", αυτό δεν απαιτείται.
Οι παρακάτω εικόνες δείχνουν τη διάταξη των αρχείων καταγραφής.
Χρησιμοποιώντας το LogExpert, τα αρχεία καταγραφής που δημιουργούνται από το Selenium Το WebDriver μπορεί να εντοπιστεί σφάλματα. Σε αυτό το εργαλείο, μπορείτε να κάνετε τα εξής:
- Αναζήτηση για οποιοδήποτε κείμενο και κανονική έκφραση.
- Δημιουργήστε σελιδοδείκτες και σχολιάστε τους, καθώς και πλοηγηθείτε μεταξύ τους, κάτι που δεν είναι δυνατό σε κανένα άλλο εργαλείο.
- Φιλτράρετε τα αρχεία καταγραφής, αναζητήστε εύρη κειμένου και εφαρμόστε ένα άλλο φίλτρο στα αρχεία καταγραφής που είχαν φιλτραριστεί προηγουμένως.
- Επισημάνετε διαφορετικές γραμμές με βάση συγκεκριμένες λέξεις.
Αυτό το εργαλείο βοηθά επίσης να χωρίσετε τα δεδομένα σε διαφορετικές στήλες.











