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);

  • 相关阅读:
    【BZOJ1023】仙人掌图(SHOI2008)-圆方树+DP+单调队列
    【BZOJ4816】数字表格(SDOI2017)-莫比乌斯反演+数论分块
    【BZOJ3529】数表(SDOI2014)-莫比乌斯反演+树状数组
    【BZOJ3714】Kuglarz(PA2014)-最小生成树
    javascript div元素后追加节点
    php多文本框提交
    有几数组表单,js怎么获得数组并动态相加输出到文本框
    SqlCommand.Parameters.add()方法
    ASP.net后台弹出消息对话框的方法!【转】
    Access中的SELECT @@IDENTITY
  • 原文地址:https://www.cnblogs.com/generalli2019/p/11419111.html
Copyright © 2011-2022 走看看