基于上一篇的内容,这里我们开始写监听类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);

最新文章

  1. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)
  2. Python爬虫代理池
  3. Codeforces Round #361 Jul.6th A题 ☺译
  4. Oracle的内存结构
  5. Spring Controller 获取请求参数的几种方法
  6. GDAL读取tiff文件/C++源码
  7. 【HTML】Advanced1:Text: Time, Mark, and "Presentational"
  8. Spark 中的join方式(pySpark)
  9. angularjs中关于ng-if的一些理论
  10. asp.net Listbox控件用法
  11. EntityFramework6.X之DataAnnotations
  12. 一步一步学习Vue(十一)
  13. pycharm安装和首次使用
  14. 我们常说的 CAS 自旋锁是什么
  15. HTML和CSS查缺补漏
  16. es集群数据库~原理细节
  17. JavaScript 同步异步示意图
  18. 一种隐蔽性较高的Java ConcurrentModificationException异常场景
  19. 第四章:Android架构
  20. MySQL中的编码问题

热门文章

  1. 原生Js页面滚动延迟加载图片
  2. DB2 索引(2)
  3. 3.WXML语法
  4. mysql 严格模式 Strict Mode
  5. [bzoj5483][Usaco2018 Dec]Balance Beam_凸包_概率期望
  6. LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
  7. Javascript 闭包何时回收?
  8. vim 常用命令总结(排版精良,内容优质)
  9. pip install 遇到的问题
  10. Linux 进程地址空间及原理