7、实现脚本执行失败 时自动截图并保存出错信息到文件中

自动化脚本如果失败了,凭借什么去快速定位呢?当然是截图和出错信息了,这里就来实现这两个功能。

方法是重写TestListenerAdapter中的onTestFailure和onTestSkipped方法,在方法中添加截图和保存出错信息到文本的方法。

新建一个webtestListener.java文件:

代码如下:

package framework;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;


import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;




public class webtestListener extends TestListenerAdapter{

public static WebDriver driver;

@Override
public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr);
takeScreenShot(tr);
savelog(tr);
}

@Override
public void onTestSkipped(ITestResult tr) {
super.onTestSkipped(tr);
takeScreenShot(tr);
savelog(tr);
}

public void takeScreenShot(ITestResult tr){
String path = System.getProperty("user.dir") + "\\runlog\\";
String dir = tr.getName();
System.out.println("------------>testName="+dir);
String filename = path + dir;
System.out.println("---------->filename="+filename);
File f = new File(filename);
if(!f.exists()){
f.mkdir();
}
File f1 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
File f2 = new File(filename + "\\" + "fail.png");
try {
FileUtils.copyFile(f1, f2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void savelog(ITestResult tr){
String path = System.getProperty("user.dir") + "\\runlog\\";
String dir = tr.getName();
System.out.println("------------>testName="+dir);
String filename = path + dir;
System.out.println("---------->filename="+filename);
File f = new File(filename);
if(!f.exists()){
f.mkdir();
}
File f1 = new File(filename + "\\log.txt");
try {
PrintWriter pw = new PrintWriter(f1);
Throwable t = tr.getThrowable();
t.printStackTrace();
t.printStackTrace(pw);
pw.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

}


重点在于:

7、实现脚本执行失败 时自动截图并保存出错信息到文件中


7、实现脚本执行失败 时自动截图并保存出错信息到文件中


7、实现脚本执行失败 时自动截图并保存出错信息到文件中