Hướng dẫn sử dụng Log4j với Selenium: Tải xuống, cài đặt, sử dụng & Thí dụ

Mục lục:

Anonim

Log4j là gì?

Log4j là một khung ghi nhật ký (APIS) nhanh, linh hoạt và đáng tin cậy được viết bằng Java được phát triển vào đầu năm 1996. Nó được phân phối theo Giấy phép Phần mềm Apache. Log4J đã được chuyển sang các ngôn ngữ C, C ++, C #, Perl, Python, Ruby và Eiffel. Nó là một công cụ được sử dụng cho các dự án Tự động hóa Selenium quy mô nhỏ đến lớn.

Tại sao sử dụng Log4j?

  • Nó là một mã nguồn mở
  • Với Log4j, có thể lưu trữ chi tiết luồng của Tự động hóa Selenium của chúng tôi trong một tệp hoặc cơ sở dữ liệu
  • Log4j được sử dụng cho các dự án lớn cũng như nhỏ
  • Trong Log4j, chúng tôi sử dụng các câu lệnh nhật ký thay vì các câu lệnh SOPL trong mã để biết trạng thái của một dự án trong khi nó đang thực thi

Log4j có ba thành phần chính

  1. Loggers : Đó là trách nhiệm cung cấp thông tin đăng nhập. Để triển khai trình ghi nhật ký vào một dự án cần thực hiện các bước sau:
  • Tạo một thể hiện cho lớp trình ghi nhật ký : Lớp trình ghi nhật ký là một tiện ích dựa trên Java có tất cả các phương thức chung đã được triển khai để sử dụng log4j
  • Xác định cấp độ Log4j : Chủ yếu có năm loại cấp độ nhật ký
    1. Tất cả - Mức độ ghi nhật ký này sẽ ghi lại mọi thứ (nó bật tất cả các bản ghi)
    2. Gỡ lỗi - in thông tin gỡ lỗi và hữu ích trong giai đoạn phát triển
    3. THÔNG TIN - in thông báo thông tin làm nổi bật tiến trình của ứng dụng
    4. CẢNH BÁO - in thông tin về hành vi hệ thống bị lỗi và không mong muốn.
    5. LỖI - in thông báo lỗi có thể cho phép hệ thống tiếp tục
    6. FATAL - in thông tin quan trọng của hệ thống khiến ứng dụng gặp sự cố
    7. TẮT - Không ghi nhật ký
  1. Appenders : Nó được sử dụng để cung cấp LogEvents đến đích của chúng. Nó quyết định điều gì sẽ xảy ra với thông tin nhật ký. Nói một cách dễ hiểu, nó được sử dụng để ghi nhật ký vào tệp. Sau đây là một số loại Trình bổ sung
    1. ConsoleAppender ghi nhật ký vào đầu ra tiêu chuẩn
    2. File appender in nhật ký vào một số tệp
    3. Rolling file appender vào một tệp có kích thước tối đa

    Lưu ý: Trong thuộc tính log4j, chúng ta có thể gọi appender bằng bất kỳ tên nào. Cũng có những phần mềm phụ khác nhưng chúng tôi sẽ hạn chế ở một số phần nhỏ này.

  2. Bố cục : Nó chịu trách nhiệm định dạng thông tin ghi nhật ký theo các kiểu khác nhau.

Lớp Logger cung cấp các phương thức khác nhau để xử lý các hoạt động ghi nhật ký. Nó cung cấp hai phương thức tĩnh để lấy một Đối tượng Logger.

Public static Logger getRootLogger ()Trình ghi nhật ký tĩnh công khai getLogger (Tên chuỗi)

Log4j được cấu hình như thế nào?

Để cấu hình log4j, chúng ta phải quyết định appender sẽ triển khai. Theo đó, các thông số của appender sẽ được thiết lập.

  • Chúng tôi sẽ sử dụng cấp DEBUG và RollingFileAppender
  • Chúng tôi sẽ thực hiện hai cấu hình hoặc nhật ký,
    • Đầu tiên: root logger, sẽ ghi tất cả các bản ghi do hệ thống tạo ra trong tên tệp, tức là Selenium.logs
    • Thứ hai: Sẽ ghi thông tin được tạo bởi các lệnh thủ công trong mã vào tên tệp- Manual.logs
  • Bố cục sẽ là PatternLayout

#Root logger

log4j.rootLogger = GỠ LỖI, tệplog4j.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

# Nhật ký ứng dụng

log4j.logger.devpinoyLogger = DEBUG, 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

Trong ví dụ trên, chúng ta đã cấu hình log4j để đăng nhập vào hai tệp khác nhau có tên là Selenium.log và Manual.log.

  • tệp và đích là hai định danh.
  • "Tệp" được sử dụng để đặt tên tệp mà nhật ký sẽ được lưu
  • "maxFileSize" được sử dụng để định cấu hình kích thước tối đa của tệp nhật ký. Khi tệp đạt đến kích thước này, một tệp mới sẽ được tạo với cùng tên và tên tệp cũ sẽ được thêm làm Chỉ mục cho nó.
  • "maxBackupIndex" được sử dụng để định cấu hình số lượng tệp tối đa được sao lưu.
  • "layout" được sử dụng để đặt định dạng của tệp nhật ký.
  • "Nối" được sử dụng để thiết lập chức năng nối thêm. Nếu nó được đặt thành false, thì mỗi khi một tệp mới sẽ được tạo thay vì tệp cũ sẽ được sử dụng để ghi nhật ký

Làm thế nào log4j được sử dụng trong script?

Trong mã, chúng tôi đã sử dụng "log" làm biến tham chiếu tham chiếu đến phương thức getLogger của Lớp Logger

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

Sử dụng biến tham chiếu "nhật ký" và phương thức gỡ lỗi để ghi lại thông tin chúng tôi muốn.

log.debug ("- thông tin--");

Công cụ LogExpert là gì?

  1. Công cụ LogExpert là một công cụ dành cho Windows được phát triển để điều chỉnh các bản ghi
  2. Nó là trình xem nhật ký mã nguồn mở và miễn phí.
  3. Nó là một công cụ phân tích nhật ký với nhiều tính năng như tìm kiếm, lọc, đánh dấu trang và đánh dấu các nhật ký
  4. Trong nhật ký công cụ này, các tệp được cập nhật tự động khi mở
  5. Trong công cụ này, chúng ta có thể mở nhiều tệp nhật ký trong các tab khác nhau
  6. Chúng tôi cũng có thể đặt nhận xét trên các dấu trang và có phím tắt để điều hướng giữa các dấu trang khác nhau. Chúng tôi cũng có thể xem danh sách dấu trang hoàn chỉnh và điều hướng từ đó
  7. Các phím tắt của công cụ được cung cấp trong tệp trợ giúp để chúng có thể được tham chiếu đến công cụ.

Các bước sử dụng Log4j với Selenium

Bước 1) Trong Eclipse, tạo một dự án mới với tên log4j_demo

Bước 2) Nhấp chuột phải vào src -> Build Path -> Configure Build Path

Bước 2) Nhấp vào Thư viện và Thêm Thư viện Log4J. Bạn có thể tải xuống từ https://logging.apache.org/log4j/1.2/download.html

Bước 3) Tạo một tệp mới. Tệp này sẽ bao gồm tất cả cấu hình log4j

  1. Nhấp chuột phải vào src -> New -> Other -> General -> File
  2. Đặt tên tệp là "log4j.properties"
  3. Nhấp vào Kết thúc

Tạo thêm hai tệp và đặt tên cho chúng như Selenium.logs và Manual.logs. Các tệp này sẽ chứa tất cả các bản ghi được tạo bởi hệ thống và các câu lệnh được ghi thủ công

Bước 4) Trong log4j.properties sao chép toàn bộ cấu hình.

Bước 5) Tạo lớp chính:

  1. Nhấp chuột phải vào gói mặc định -> Mới -> Lớp
  2. Đặt tên lớp và nhấp vào kết thúc

Bước 6) Sao chép mã sau vào lớp chính

nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập org.apache.log4j.Logger;lớp công khai LoggingDemo {/ *** @param args* /public static void main (String [] args) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự độngTrình điều khiển WebDriver = mới FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("đang mở webiste");driver.manage (). timeouts (). implicitWait (20, TimeUnit.SECONDS);log.debug ("trọng lượng dẫn");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("chọn kg");driver.findElement (By.name ("opt1")). sendKeys ("kilogam");log.debug ("chọn chiều cao tính bằng feet");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("chọn chiều cao tính bằng inch");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Đang nhấp vào tính toán");driver.findElement (By.name ("cc")). click ();log.debug ("Nhận giá trị SIUnit");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("value");log.debug ("Nhận giá trị USUnit");String USUnit = driver.findElement (By.name ("us")). GetAttribute ("value");log.debug ("Nhận giá trị UKUnit");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Lấy mô tả tổng thể");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 ();}}

Trong đoạn mã trên, chúng tôi truy cập http://healthunify.com/bmicalculator/and xác minh máy tính BMI. Trọng lượng nhập vào là 87kg và chiều cao là 5 Feet 10 inch. Tập lệnh kiểm tra đầu ra theo đơn vị SE, US và UK.

Sử dụng Logger.getLogger ("devpinoyLogger"), chúng tôi tạo nhật ký cấp hệ thống

Sử dụng phương thức log.debug, chúng tôi lưu trữ dữ liệu vào Manual.log

Bước 7) Chạy tập lệnh. Mở vị trí của nhật ký Thủ công và Selenium để kiểm tra dữ liệu ghi nhật ký.

Cách sử dụng công cụ LogExpert để phân tích nhật ký

  1. Tải xuống công cụ từ http://logexpert.codeplex.com/. Đi tới thư mục tải xuống LogExpert
  2. Mở LogExpert.exe
  3. Nhấp vào Tệp -> Mở và Duyệt đến đường dẫn nơi các tệp Manual.log và Selenium.log được lưu trữ. Chọn tệp
  4. Chọn tùy chọn "Đuôi theo dõi"

    Việc chọn tùy chọn đuôi theo dõi cho phép nối đuôi nhật ký có nghĩa là LogExpert tự động cập nhật tệp nhật ký khi tập lệnh đang trong giai đoạn thực thi. Nếu chúng ta sử dụng bất kỳ trình soạn thảo nào khác như notepad thì chúng ta phải đóng và mở lại tệp nhiều lần để cập nhật nhật ký. Nhưng với ExpertTool ở Chế độ Đuôi theo dõi, điều này không bắt buộc.

    Hình ảnh sau đây cho thấy bố cục của các bản ghi

Sử dụng công cụ LogExpert, người ta có thể gỡ lỗi nhật ký được tạo bởi trình duyệt web selen như trong công cụ này một lần có thể

  • tìm kiếm bất kỳ văn bản và biểu thức chính quy nào,
  • tạo dấu trang và nhận xét chúng và cũng có thể điều hướng giữa các dấu trang mà không thể thực hiện được trong bất kỳ công cụ nào khác,
  • Lọc các nhật ký và tìm kiếm các phạm vi văn bản và cũng có thể áp dụng một bộ lọc khác cho các nhật ký đã lọc trước đó,
  • Đánh dấu dòng khác nhau dựa trên một số từ nhất định.

Công cụ này cũng giúp phân vùng dữ liệu thành các cột khác nhau.