在自动化测试脚本的执行过程中,使用log4j在日志文件中打印执行日志,用于监控和后续调试脚本。
Log4j.xml 文件
<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="logfile.log" />
<!-- 设置日志输出的样式 -->`
<layout class="org.apache.log4j.PatternLayout">
<!-- 日志输出格式 -->
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
</layout>
</appender>
<root>
<!-- 设置日志级别 -->
<level value="INFO" />
<appender-ref ref="fileAppender" />
</root>
</log4j:configuration>
Log工具类
import org.apache.log4j.Logger; public class Log { // 初始化Log4j日志
private static Logger Log = Logger.getLogger(Log.class.getName()); // 打印测试用例开头的日志
public static void startTestCase(String sTestCaseName) {
Log.info("------------------ " + sTestCaseName + " " +"开始执行 ------------------");
} //打印测试用例结束的日志
public static void endTestCase(String sTestCaseName) {
Log.info("------------------ " + sTestCaseName + " " +"测试执行结束 ---------------"); } public static void info(String message) {
Log.info(message);
} public static void warn(String message) {
Log.warn(message);
} public static void error(String message) {
Log.error(message);
} public static void fatal(String message) {
Log.fatal(message);
} public static void debug(String message) {
Log.debug(message);
} }
测试代码
import org.apache.log4j.xml.DOMConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; public class Log4jTest { WebDriver driver; @BeforeMethod
public void beforeMethod(){
System.setProperty("webdriver.chrome.driver", "e:\\chromedriver.exe");
driver = new ChromeDriver();
} @AfterMethod
public void afterMethod(){
driver.quit();
} @BeforeClass
public void beforeClass(){
DOMConfigurator.configure("log4j.xml");
} @Test
public void test(){
String url = "http://www.baidu.com";
Log.startTestCase("搜索功能");
driver.get(url);
Log.info("打开百度首页");
driver.findElement(By.id("kw")).sendKeys("selenium");
Log.info("输入搜索关键字'selenium'");
driver.findElement(By.id("su")).click();
Log.info("单击搜索按钮");
Log.endTestCase("搜索功能");
}
}
输出的日志文件如下:
2019-05-14 22:36:53,100 INFO [Log] ------------------ 搜索功能 开始执行 ------------------
2019-05-14 22:36:58,747 INFO [Log] 打开百度首页
2019-05-14 22:36:58,943 INFO [Log] 输入搜索关键字'selenium'
2019-05-14 22:36:59,050 INFO [Log] 单击搜索按钮
2019-05-14 22:36:59,050 INFO [Log] ------------------ 搜索功能 测试执行结束 ---------------