zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    解决MyBatis的Mapper XML错误,系统起不来,也不报错问题
    tomcat启动卡在“INFO com.alibaba.druid.pool.DruidDataSource
    加速github访问速度
    LAN、WAN和WLAN的区别
    面试记录一
    C++纯虚函数(接口类)的使用
    CentOS 安装 Docker CE
    通过 plsql 连接远程 Oracle
    Yum 软件仓库配置
    qW3xT.2,解决挖矿病毒
  • 原文地址:https://www.cnblogs.com/liwei09k1/p/7987667.html
Copyright © 2011-2022 走看看