Webdriver+Testng实现测试用例失败自动截图功能
2017-12-08 17:22
519 查看
testng执行测试用例的时候,如果用例执行失败会自动截图,方便后续排查问题
1.首先定义一个截图类:
package com.rrx.utils;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
public class ScreenShort {
public WebDriver driver;
public ScreenShort(WebDriver driver) {
this.driver = driver;
}
public void takeScreenshot(String screenPath){
try {
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(screenPath));
} catch (IOException e) {
System.out.println("Screen shot error: " + screenPath);
}
}
public void takeScreenshot(){
String screenName=String.valueOf(new Date().getTime()+".jpg");
File file=new File("C://Users//Administrator//workspace//Selenium"+File.separator+"test-output");
//System.out.println(File.separator);//就是一个/
if (!file.exists())
file.mkdirs();
String screenPath = file.getAbsolutePath() + "\\" + screenName;
this.takeScreenshot(screenPath);
}
}
2.实现testng的listener接口并重写OnTestFailure方法
package com.rrx.utils;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class Listener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult tr){
try {
ScreenShort sc=new ScreenShort(DriverFactory.getDriver());
sc.takeScreenshot();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
3.加上监听
或者直接在testNG配置文件中添加
<listeners>
<listener class-name="com.rrx.utils.Listener" />
</listeners>
1.首先定义一个截图类:
package com.rrx.utils;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
public class ScreenShort {
public WebDriver driver;
public ScreenShort(WebDriver driver) {
this.driver = driver;
}
public void takeScreenshot(String screenPath){
try {
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(screenPath));
} catch (IOException e) {
System.out.println("Screen shot error: " + screenPath);
}
}
public void takeScreenshot(){
String screenName=String.valueOf(new Date().getTime()+".jpg");
File file=new File("C://Users//Administrator//workspace//Selenium"+File.separator+"test-output");
//System.out.println(File.separator);//就是一个/
if (!file.exists())
file.mkdirs();
String screenPath = file.getAbsolutePath() + "\\" + screenName;
this.takeScreenshot(screenPath);
}
}
2.实现testng的listener接口并重写OnTestFailure方法
package com.rrx.utils;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class Listener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult tr){
try {
ScreenShort sc=new ScreenShort(DriverFactory.getDriver());
sc.takeScreenshot();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
3.加上监听
@Listeners
({ DotTestListener.
class
})
或者直接在testNG配置文件中添加
<listeners>
<listener class-name="com.rrx.utils.Listener" />
</listeners>
相关文章推荐
- Webdriver+Testng实现测试用例失败自动截图功能
- TestNG监听器实现用例运行失败自动截图、重运行功能
- TestNG监听器实现用例运行失败自动截图、重运行功能
- selenium webdriver实现自动截图与Junit导出report测试报告
- TestNG实现用例运行失败自动截图和重跑
- Testng实现用例失败自动截图
- TestNG监听器实现用例运行失败自动截图、重运行功能
- Selenium Webdriver实现截图功能
- 修改testNG源码,实现失败用例自动再执行
- 在TestNG中运行WebDriver测试用例
- UI自动化测试系列之TestNG----失败用例自动重试功能二
- Selenium Webdriver实现截图功能的示例
- TestNg实现失败自动重跑功能
- TestNG监听器实现失败自动截图、重跑、自定义html结果文件功能
- selenium web driver 实现截图功能
- TestNg实现失败自动重跑功能---WIP
- UI自动化测试系列之TestNG----失败用例自动重试功能
- Selenium webdriver实现截图功能
- 使用testng listener实现测试用例失败重跑功能
- Hudson保存WebDriver测试执行失败的截图