Selenio - Log4j Logging
Log4j è un framework di registrazione dei controlli che fornisce informazioni su ciò che è accaduto durante l'esecuzione. Offre i seguenti vantaggi:
Ci consente di comprendere l'esecuzione dell'applicazione.
È possibile salvare l'output del registro che può essere analizzato in seguito.
Aiuta nel debug, in caso di errori dell'automazione del test.
Può essere utilizzato anche a scopo di controllo per esaminare l'integrità dell'applicazione.
Componenti
1. Istanza della classe Logger.
2. Metodi a livello di registro utilizzati per registrare i messaggi come uno dei seguenti:
- error
- warn
- info
- debug
- log
Esempio
Usiamo lo stesso calcolatore percentuale per questa demo.
Step 1 - Scarica il file JAR log4j da https://logging.apache.org/log4j/1.2/download.html e scarica il formato Zipped del file JAR.
Step 2 - Crea "Nuovo progetto Java" accedendo al menu File.
Step 3 - Immettere il nome del progetto come "log4j_demo" e fare clic su "Avanti".
Step 4 - Fai clic su Aggiungi jar esterno e aggiungi "Log4j-1.2.17.jar".
Step 5 - Fare clic su Aggiungi jar esterno e aggiungere le librerie Selenium WebDriver.
Step 6 - Fare clic su Aggiungi jar esterno e aggiungere il JAR Selenium WebDriver che si trova nella cartella Libs.
Step 7 - Aggiungi un nuovo file XML utilizzando il quale possiamo specificare le proprietà di Log4j.
Step 8 - Immettere il nome del file di registro come "Log4j.xml".
Step 9 - La struttura della cartella finale è mostrata di seguito.
Step 10 - Ora aggiungi le proprietà di Log4j che verrebbero rilevate durante l'esecuzione.
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j = "http://jakarta.apache.org/log4j/" debug = "false">
<appender name = "fileAppender" class = "org.apache.log4j.FileAppender">
<param name = "Threshold" value = "INFO" />
<param name = "File" value = "percent_calculator.log"/>
<layout class = "org.apache.log4j.PatternLayout">
<param name = "ConversionPattern"
value = "%d{yyyy-MM-dd HH:mm:ss} [%c] (%t:%x) %m%n" />
</layout>
</appender>
<root>
<level value = "INFO"/>
<appender-ref ref = "fileAppender"/>
</root>
</log4j:configuration>
Step 11- Ora a scopo dimostrativo, incorporeremo log4j nello stesso test che abbiamo eseguito (calcolatore percentuale). Aggiungi un file di classe nella funzione "Principale".
package log4j_demo;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class log4j_demo {
static final Logger logger = LogManager.getLogger(log4j_demo.class.getName());
public static void main(String[] args) {
DOMConfigurator.configure("log4j.xml");
logger.info("# # # # # # # # # # # # # # # # # # # # # # # # # # # ");
logger.info("TEST Has Started");
WebDriver driver = new FirefoxDriver();
//Puts a Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch website
driver.navigate().to("http://www.calculator.net/");
logger.info("Open Calc Application");
//Maximize the browser
driver.manage().window().maximize();
//Click on Math Calculators
driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
logger.info("Clicked Math Calculator Link");
//Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
logger.info("Clicked Percent Calculator Link");
//Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10");
logger.info("Entered Value into First Text Box");
//Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50");
logger.info("Entered Value into Second Text Box");
//Click Calculate Button
driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr/td[2]/input")).click();
logger.info("Click Calculate Button");
//Get the Result Text based on its xpath
String result =
driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/span/font/b")).getText();
logger.info("Get Text Value");
//Print a Log In message to the screen
logger.info(" The Result is " + result);
if(result.equals("5")) {
logger.info("The Result is Pass");
} else {
logger.error("TEST FAILED. NEEDS INVESTIGATION");
}
logger.info("# # # # # # # # # # # # # # # # # # # # # # # # # # # ");
//Close the Browser.
driver.close();
}
}
Esecuzione
Al momento dell'esecuzione, il file di registro viene creato nella cartella principale come mostrato di seguito. NON È POSSIBILE individuare il file in Eclipse. Dovresti aprire "Windows Explorer" per mostrare lo stesso.
Il contenuto del file è mostrato di seguito.