Log4j是審計(jì)日志框架,提供有關(guān)執(zhí)行過(guò)程中發(fā)生了什么樣的信息。它具有以下優(yōu)點(diǎn):
讓我們來(lái)了解應(yīng)用程序運(yùn)行。
日志輸出可以保存,可以在以后進(jìn)行分析。
有助于調(diào)試,以防自動(dòng)化測(cè)試失敗
也可用于審計(jì)目的看應(yīng)用的健康。
1,Logger類(lèi)的實(shí)例。
2,用于記錄該消息為以下之一日志級(jí)別的方法
error
warn
info
debug
log
讓我們同樣用百分比計(jì)算器這個(gè)演示。
第1步:從https://logging.apache.org/log4j/1.2/download.htmll下載log4j的JAR文件,并將下載JAR文件的解壓縮格式。
第2步:通過(guò)瀏覽到文件菜單中創(chuàng)建'New Java Project'。
第3步:輸入項(xiàng)目的名稱(chēng)為“log4j_demo”,然后單擊“Next”
第4步:單擊添加外部JAR,并添加“Log4j-1.2.17.jar”
第5步:單擊添加外部JAR,并添加Selenium webdriver的類(lèi)庫(kù)。
第6步:單擊添加外部JAR,并添加Selenium webdriver的JAR文件的位于libs文件夾中。
第7步:使用它我們可以指定Log4j的屬性添加一個(gè)新的XML文件。
第8步:輸入日志文件的名稱(chēng)為“log4j.xml”。
第9步:下面的最終文件夾結(jié)構(gòu)如下所示。
第10步:現(xiàn)在增加Log4j 這將被記錄執(zhí)行過(guò)程中的性能。
<?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>
第11步:現(xiàn)在用于演示的目的,我們將結(jié)合log4j在相同的測(cè)試,我們已經(jīng)完成(百分比計(jì)算器)。添加一個(gè)類(lèi)文件“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();
}
}
在執(zhí)行日志文件的根文件夾中創(chuàng)建如下圖所示。在Eclipse中不能找出文件。應(yīng)該打開(kāi)“Windows資源管理器”來(lái)顯示相同。
該文件的內(nèi)容如下所示。