Sélénium - Journalisation Log4j
Log4j est un cadre de journalisation d'audit qui donne des informations sur ce qui s'est passé pendant l'exécution. Il offre les avantages suivants -
Nous permet de comprendre l'application exécutée.
La sortie du journal peut être sauvegardée et analysée plus tard.
Aide au débogage, en cas d'échec de l'automatisation des tests.
Peut également être utilisé à des fins d'audit pour examiner l'état de santé de l'application.
Composants
1. Instance de la classe Logger.
2. Méthodes de niveau de journalisation utilisées pour consigner les messages comme l'une des suivantes -
- error
- warn
- info
- debug
- log
Exemple
Utilisons le même calculateur de pourcentage pour cette démo.
Step 1 - Téléchargez le fichier JAR log4j depuis https://logging.apache.org/log4j/1.2/download.html et téléchargez le format zippé du fichier JAR.
Step 2 - Créez un «Nouveau projet Java» en accédant au menu Fichier.
Step 3 - Entrez le nom du projet comme «log4j_demo» et cliquez sur «Suivant».
Step 4 - Cliquez sur Add External Jar et ajoutez 'Log4j-1.2.17.jar'.
Step 5 - Cliquez sur Ajouter un pot externe et ajoutez des bibliothèques Selenium WebDriver.
Step 6 - Cliquez sur Add External Jar et ajoutez les JAR Selenium WebDriver situés dans le dossier Libs.
Step 7 - Ajoutez un nouveau fichier XML à l'aide duquel nous pouvons spécifier les propriétés Log4j.
Step 8 - Entrez le nom du fichier journal sous la forme «Log4j.xml».
Step 9 - La structure finale des dossiers est indiquée ci-dessous.
Step 10 - Ajoutez maintenant les propriétés de Log4j qui seraient récupérées lors de l'exécution.
<?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- Maintenant, à des fins de démonstration, nous allons incorporer log4j dans le même test que nous avons effectué (calculateur de pourcentage). Ajoutez un fichier de classe dans la fonction «Main».
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();
}
}
Exécution
Lors de l'exécution, le fichier journal est créé sur le dossier racine comme indiqué ci-dessous. Vous NE POUVEZ PAS localiser le fichier dans Eclipse. Vous devez ouvrir «Windows Explorer» pour afficher la même chose.
Le contenu du fichier est indiqué ci-dessous.