基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类

时间:2022-12-15 17:28:41

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

基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类的更多相关文章

  1. 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample

    到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...

  2. 基于Java+Selenium的WebUI自动化测试框架(五)------页面操作实现类

    在编写完Log类和监听类之后,终于要回到正轨上来了.我们继续开始写UIExcutor的实现类. PS:如果你想让你的报告更加美观一些.推荐使用reportNG这个jar包. 在项目中导入reportn ...

  3. 基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器

    对于自动化测试,尤其是UI的自动化测试.是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一. 对于手工测试和自动化测试的优劣,网上有很多论述,在这里不作展开讨论.但是, ...

  4. 基于Java+Selenium的WebUI自动化测试框架(八)-----读取元素(XML文件)

    我们继续回到自动化测试框架的主线上来,在前面的文章中,我们定义一个页面元素的主要参数有:路径,找寻方式,等待时间,名称,这个四个参数.另外,我们还需要考虑一个问题,就是网站的页面. 举个例子来说,如果 ...

  5. 基于Java+Selenium的WebUI自动化测试框架(六)---浏览器初始化

    本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.se ...

  6. 基于Java+Selenium的WebUI自动化测试框架(三)------记录LOG

    在有了Position类和接口类之后,我们是不是立刻就要着手开始写实现类了呢?按照一般的顺序是这样.但是,我们这里先停一下.原因有二: 1)既然是写一个框架,我们希望总体的功能上是全面的.实现类中,我 ...

  7. 基于Java+Selenium的WebUI自动化测试框架(十三)-----基础页面类BasePage(Excel)

    前面,我们讲了如何使用POI进行Excel的“按需读取”.根据前面我们写的BasePageX,我们可以很轻松的写出来基于这个“按需读取”的BasePage. package webui.xUtils; ...

  8. 基于Java+Selenium的WebUI自动化测试框架(十)-----读取Excel文件(JXL)

    之前,我们使用了读取XML文件的方式来实现页面元素的读取,并做成了基础页面类.下面,我们来进行一些扩展,通过Excel来读取页面元素. Excel的使用,大多数人应该都不陌生.那么Java读取Exce ...

  9. 基于Java+Selenium的WebUI自动化测试框架(九)-----基础页面类(BasePage)

    上篇我们写了java读取xml文件的类,实现了可以从xml文件读取元素的方式.那么,接下来我们需要考虑一个问题.我们拿了这些元素之后怎么去操作呢? 先来看看我们手工测试的时候是怎么进行的. 双击浏览器 ...

随机推荐

  1. easyui 动态列

    $.post('${createLink(action:"build Columns url ")}', params, function(data){ var columns = ...

  2. java中Collection类及其子类

    1:对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. 2:集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java ...

  3. WebRtc VoiceEngine代码解析

    WebRtc中VoiceEngine可以完成大部分的VOIP相关人物,包括采集.自动增益.噪声消除.回声抑制.编解码.RTP传输.下边我们通过代码来解析Voe中处理流程: 创建VoiceEngine和 ...

  4. css笔记12:块元素和行内元素

    1.概念: 行内元素:又叫内联元素,内联元素只能容纳文本或者其他内联元素,常见的内联元素有<span><a> 块元素:块元素一般都是从新行开始,可容纳文本,其他内联元素和其他块 ...

  5. SQL SERVER 数据库邮件配置

    1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案.通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件.邮件中 ...

  6. Windows Server 2008 Enterprise使用12G内存

    开启PAE选项,用以下命令解决这个问题: 1.开始运行cmd2.输入 BCDEdit /set PAE forceenable 后回车3.重起系统显示12GB内存,一切正常

  7. 转:apache 的mod-status

    最近发现在apache的监控方面,apache 2开始自带的apache mod-status其实是个不错的工具,下面摘录并笔记之: 如果是linux的话,可以这样设置: 在httpd.conf中添加 ...

  8. springmvc整合swagger

    前言 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  9. Bulma - 基于 Flexbox 的现代化的 CSS 框架

    Bulma 是一个基于 Flexbox 的现代化的 CSS 框架,设计的初衷就是移动优先(Mobile First),模块化设计,可以轻松用来实现各种简单或者复制的内容布局,浏览器支持:浏览器支持:C ...

  10. vi 命令集

    一:跳到文件第一行 1. 输入:0或:1,然后回车: 2. 在键盘按下小写gg:   二:跳到文件最后一行 1. 输入:$,然后回车: 2. 在键盘按下大写G : 3. 在键盘按Shift + g: ...