java+selenium 日志输出

1、利用Testng的Reporter类

java代码:


打开Testng生成的html报告 :(在项目目录 下)



2、用Log4 j实现日志输出

1、导入log4j-1.2.15.jar

2、新建一个Log4j.properties文件,并设置成utf-8编码格式,编辑内容如下:

log4j.rootLogger=INFO,CONSOLE,R,HTML,TTCC  
   
// 定义一个appender  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.R=org.apache.log4j.RollingFileAppender  
log4j.appender.TTCC=org.apache.log4j.RollingFileAppender  
log4j.appender.HTML=org.apache.log4j.FileAppender  
   
// 定义log文件保存路径,三种日志文件格式  
log4j.appender.R.File=./Log/testlog.log  
log4j.appender.TTCC.File=./Log/testlog1.log  
log4j.appender.HTML.File=./Log/application.html  
  
// 定义layout和pattern  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern= %5p [%t] (%F:%L)- %m%n  
log4j.appender.R.layout=org.apache.log4j.PatternLayout  
log4j.appender.R.layout.ConversionPattern=%d - %c -%p - %m%n  
log4j.appender.TTCC.layout=org.apache.log4j.TTCCLayout  
log4j.appender.TTCC.layout.DateFormat=ISO8601  
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout  
log4j.appender.HTML.layout.Title=Application log  
log4j.appender.HTML.layout.LocationInfo=true  

3、新建一个Log文件夹

4、java代码如下:


运行成功了,Log文件夹下面有新生成的日志文件

3、纯java方式实现日志输出

目录结构:


Logger.java代码:

package Framwork;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Logger {
	public static String OutputFileName=getDateTimeByFormat(new Date(),"yyyyMMdd_HHmmss");
	private static OutputStreamWriter outputStreamWriter;
	private static String logFileName;
	public static boolean LogFlag=true;
	
	//构造函数
	public Logger() {}
	
	private static void WriteLog(String logEntry) {
		try {
			logFileName=".\\Log"+"\\"+OutputFileName+".log";
			if(outputStreamWriter==null) {
				File logFile=new File(logFileName);
				if(!logFile.exists()) {
					logFile.createNewFile();
				}
				outputStreamWriter=new OutputStreamWriter(new FileOutputStream(logFileName),"utf-8");
			}
			outputStreamWriter.write(logEntry,0,logEntry.length());
			outputStreamWriter.flush();
		}catch(Exception e) {
			System.out.println(LogType.LogTypeName.ERROR.toString()+":Failed to write the file"+logFileName);
			e.printStackTrace();
		}
	}
	private static String getDateTimeByFormat(Date date,String format) {
		SimpleDateFormat df=new SimpleDateFormat(format);
		return df.format(date);
	}
	public static void Output(LogType.LogTypeName logTypeName,String logMessage) {
		Date date=new Date();
		String logTime=getDateTimeByFormat(date,"yyyy-MM-dd HH:mm:ss.SSS");
		String logEntry=logTime+""+logTypeName.name()+":"+logMessage+"\r\n";
		System.out.print(logEntry);
		if(LogFlag) {
			WriteLog(logEntry);
		}
	}

}

LogType.java代码:

package Framwork;

public class LogType {
	public LogType() {}
	public enum LogTypeName{
		//
		INFO,
		//
		ERROR,
		//
		WARNING,
		//
		DEBUG;
	}
}

Testbaidu.java代码:

package testSuite;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

import Framwork.Logger;
import Framwork.LogType;

public class Testbaidu {

	public static void main(String[] args) {
		System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		logger.Output(LogType.LogTypeName.INFO,"启动chrome浏览器");
		
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
		logger.Output(LogType.LogTypeName.INFO,"隐式等待10秒");
		
		driver.get("https://www.baidu.com");
		logger.Output(LogType.LogTypeName.INFO,"打开百度首页");
		
		driver.findElement(By.id("kw")).sendKeys("selenium");
		logger..Output(LogType.LogTypeName.INFO,"在搜索框输入selenium");
	}
}

运行成功,Log4j方式最好

如果你想丰富的日志输出,你就用Log4j,Lo4j有一个小问题就是,不太方便设置日志文件名称是当前系统的时间,所以,log4j前面写死了日志名称,每次执行都会覆盖之前的日志。但是本篇用java打印日志的方法就不会发生这样情况,每次自动化运行都有日志保存,方便追溯错误。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值