在自动化测试脚本的执行过程中,使用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] ------------------ 搜索功能 测试执行结束 ---------------