zoukankan      html  css  js  c++  java
  • 基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类

         基于上一篇的内容,这里我们开始写监听类Listener。我这里写监听类的思路是,继承TestListenerAdapter这个类,然后对其中的方法进行重写。网上也有很多资料,建议先学习一下,然后写出来。

    package webui.xUtils;
    
    import org.openqa.selenium.WebDriver;
    import org.testng.ITestContext;
    import org.testng.ITestResult;
    import org.testng.Reporter;
    import org.testng.TestListenerAdapter;
    
    
    public class TestNGListener extends TestListenerAdapter{
       private static WebDriver driver; 
       logUtil log = new logUtil(TestNGListener.class); 
       public static void setDriver(WebDriver driver) {    
          TestNGListener.driver = driver;    
    
        } 
    
      @Override
    
      //用例执行结束后,用例执行成功时调用
      public void onTestSuccess(ITestResult tr) {    
        log.info("测试步骤成功完成。"+"------Test Success!");    
        Reporter.log("测试步骤成功完成。"+"------Test Success!");
        super.onTestSuccess(tr);    
        } 
      @Override
    
      //用例执行结束后,用例执行失败时调用
      public void onTestFailure(ITestResult tr) {    
        log.error("测试步骤执行失败。"+"------Test Failure!");    
        Reporter.log("测试步骤执行失败。"+"------Test Failure!");
        super.onTestFailure(tr);
    
        //发生错误后截图的功能可以根据实际需求进行添加。
        //ScreenShot screenShot = new ScreenShot(driver);    
        //获取当前project目录    
        //String path = System.getProperty("user.dir").replace("\", "/");    
        //加上时间戳以区分截图    
        //    String curTime = TimeUtil.formatDate("yyyy-MM-dd");    
        //screenShot.saveScreenShot(path + "/img/", "testFail" + ".png");    
        } 
      @Override
    
      //用例执行结束后,用例执行skip时调用
      public void onTestSkipped(ITestResult tr) {    
        log.error("测试执行步骤跳过。"+"------Test Skipped!");    
        Reporter.log("测试执行步骤跳过。"+"------Test Skipped!");
        super.onTestSkipped(tr);    
        } 
      @Override
    
      //每次调用测试@Test之前调用
      public void onTestStart(ITestResult tr) {    
        log.info("------测试开始。内容:" + tr.getMethod().getDescription() +"------Start!");    
        Reporter.log("------测试开始。内容:" + tr.getMethod().getDescription() +"------Start!");
        super.onTestStart(tr);    
        } 
      @Override
    
      //在所有测试运行之后调用,并且所有的配置方法都被调用
      public void onFinish(ITestContext testContext) {    
        log.info("------结束:"+" ------Test Finish!");    
        Reporter.log("------结束:"+" ------Test Finish!");
        super.onFinish(testContext);    
        } 
    }

         这样,我们完成了对监听类的编写,在实际写测试用例的代码时候,加入注释@Listener({TestNGListener.class}),并且在进行初始化driver的时候来设置driver即可。例如:TestNGListener.setDriver(driver);

  • 相关阅读:
    LeetCode Count of Range Sum
    LeetCode 158. Read N Characters Given Read4 II
    LeetCode 157. Read N Characters Given Read4
    LeetCode 317. Shortest Distance from All Buildings
    LeetCode Smallest Rectangle Enclosing Black Pixels
    LeetCode 315. Count of Smaller Numbers After Self
    LeetCode 332. Reconstruct Itinerary
    LeetCode 310. Minimum Height Trees
    LeetCode 163. Missing Ranges
    LeetCode Verify Preorder Serialization of a Binary Tree
  • 原文地址:https://www.cnblogs.com/generalli2019/p/11419111.html
Copyright © 2011-2022 走看看