• Webdriver+Testng实现测试用例失败自动截图功能


           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.加上监听

    @Listeners({ DotTestListener.class })

    或者直接在testNG配置文件中添加

    <listeners>
    <listener class-name="com.rrx.utils.Listener" />
    </listeners>

  • 相关阅读:
    Unity 3D:控制相机旋转、移动、缩放等功能
    电子公文传输系统验收3-开发环境
    冲刺 day7
    电子公文传输系统2-贡献排序
    程序运行
    实验三-电子公文传输系统1-个人贡献
    thread同步测试
    第五章学习总结
    第三周学习java第四章学习总结及体会!
    第一章学习过程问题小结
  • 原文地址:https://www.cnblogs.com/liwei09k1/p/7987667.html
Copyright © 2020-2023  润新知