seleniumWebDriver的API高级应用Log4j打印执行日志11_2
目标:使用Log4j在日志文件中打印执行日志,用于监控和后学调试测试脚本
例如:打开百度网页
操作步骤:
1.新建maven项目,引入selenium包,testNG框架,引入log4j包如下
pom.xml内容:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.44.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2.在项目根目录上新建名为Log4j.xml文件并配置如下内容:
<?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="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>
3.新建log的java class类,内容(示例类名toolLog,可定义其他名称)
import org.apache.log4j.Logger;
public class toolLog {
//初始化一个Logger对象
private static Logger log=Logger.getLogger(toolLog.class.getName());
//定义一个静态方法,可以打印自定义的某个测试用例开始执行的日志信息
public static voidstartTestCase(String sTestCaseName){
log.info("====执行当前用例之前的日志信息====");
log.info("********* "+sTestCaseName+" **********");
}
//定义一个静态方法,可以打印自定义的某个测试用例执行结束之后的日志信息
public static voidendTestCase(String sTestCaseName){
log.info("====执行当前用例之后的日志信息====");
log.info("********* "+"测试用例执行结束"+" **********");
}
//定义一个静态fatal方法,打印自定义的fatal级别日志信息
public static voidfatal(String message){
log.fatal(message);
}
//定义一个静态fatal方法,打印自定义的fatal级别日志信息
public static voiderror(String message){
log.error(message);
}
//定义一个静态fatal方法,打印自定义的fatal级别日志信息
public static voidwarn(String message){
log.warn(message);
}
//定义一个静态fatal方法,打印自定义的fatal级别日志信息
public static voidinfo(String message){
log.info(message);
}
//定义一个静态fatal方法,打印自定义的fatal级别日志信息
public static voiddebug(String message){
log.debug(message);
}
}
4.新建一个testNG框架类TestLog4j用来测试日志输出内容:
public class TestLog4j{
WebDriver driver;
@Test
public void f() {
toolLog.startTestCase("搜素");
driver.get("http://www.baidu.com");
toolLog.info("打开百度首页");
toolLog.endTestCase("搜索");
}
@BeforeMethod
public voidbeforeMethod() {
System.setProperty("webdriver.firefox.bin","D:\\firefox\\firefox.exe");
driver=newFirefoxDriver();
}
@AfterMethod
public voidafterMethod() throws InterruptedException {
Thread.sleep(3000);
driver.quit();
}
@BeforeClass
public voidbeforeClass() {
//读取log4j的配置文件log4j.xml的配置信息
DOMConfigurator.configure("log4j.xml");
}
}
5.执行完TestLog4j测试类会生成一个logfile.log,刷新当前项目进入log4j.log查看到如下预期结果:
2017-03-05 00:10:07,249 INFO [toolLog] ====执行当前用例之前的日志信息====
2017-03-05 00:10:07,249 INFO [toolLog] ********* 搜素 **********
2017-03-05 00:10:07,689 INFO [toolLog] 打开百度首页
2017-03-05 00:10:07,689 INFO [toolLog] ====执行当前用例之后的日志信息====
2017-03-05 00:10:07,689 INFO [toolLog] ********* 测试用例执行结束 **********