基于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);
基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类的更多相关文章
- 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample
到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...
- 基于Java+Selenium的WebUI自动化测试框架(五)------页面操作实现类
在编写完Log类和监听类之后,终于要回到正轨上来了.我们继续开始写UIExcutor的实现类. PS:如果你想让你的报告更加美观一些.推荐使用reportNG这个jar包. 在项目中导入reportn ...
- 基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器
对于自动化测试,尤其是UI的自动化测试.是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一. 对于手工测试和自动化测试的优劣,网上有很多论述,在这里不作展开讨论.但是, ...
- 基于Java+Selenium的WebUI自动化测试框架(八)-----读取元素(XML文件)
我们继续回到自动化测试框架的主线上来,在前面的文章中,我们定义一个页面元素的主要参数有:路径,找寻方式,等待时间,名称,这个四个参数.另外,我们还需要考虑一个问题,就是网站的页面. 举个例子来说,如果 ...
- 基于Java+Selenium的WebUI自动化测试框架(六)---浏览器初始化
本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.se ...
- 基于Java+Selenium的WebUI自动化测试框架(三)------记录LOG
在有了Position类和接口类之后,我们是不是立刻就要着手开始写实现类了呢?按照一般的顺序是这样.但是,我们这里先停一下.原因有二: 1)既然是写一个框架,我们希望总体的功能上是全面的.实现类中,我 ...
- 基于Java+Selenium的WebUI自动化测试框架(十三)-----基础页面类BasePage(Excel)
前面,我们讲了如何使用POI进行Excel的“按需读取”.根据前面我们写的BasePageX,我们可以很轻松的写出来基于这个“按需读取”的BasePage. package webui.xUtils; ...
- 基于Java+Selenium的WebUI自动化测试框架(十)-----读取Excel文件(JXL)
之前,我们使用了读取XML文件的方式来实现页面元素的读取,并做成了基础页面类.下面,我们来进行一些扩展,通过Excel来读取页面元素. Excel的使用,大多数人应该都不陌生.那么Java读取Exce ...
- 基于Java+Selenium的WebUI自动化测试框架(九)-----基础页面类(BasePage)
上篇我们写了java读取xml文件的类,实现了可以从xml文件读取元素的方式.那么,接下来我们需要考虑一个问题.我们拿了这些元素之后怎么去操作呢? 先来看看我们手工测试的时候是怎么进行的. 双击浏览器 ...
随机推荐
- 【CSS3 DEMO】扑克正反面翻牌效果
在线预览地址:http://dtdxrk.github.io/game/css3-demo/drawbox.html 用到两个属性: 一个是动画时间 transition-duration: 0.8s ...
- Git出现There is no tracking information for the current branch提示的解决办法
参考:https://blog.csdn.net/sinat_36246371/article/details/79738782 在执行git pull的时候,提示当前branch没有跟踪信息: Th ...
- C# sqlsugar依赖引用报错的问题解决
English Message : You need to refer to MySql.Data.dll↵Chinese Message : 需要引用MySql.Data.dll,请在Nuget安装 ...
- Java常用命令:jps、jstack、jmap、jstat(带有实例教程)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013310517/article/details/80990924 查看Java进程:jps ...
- Java的设计模式(7)— 生产者-消费者模式
生产者-消费者模式是一个经典的多线程设计模式,它为多线程间的协作提供了良好的解决方案.这个模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程.生产者线程负责提交用户请求,消费者线程则负责具体 ...
- JAVA从文本文件(txt)读取一百万条数据保存到数据库
Java读取大文本文件保存到数据库 1.追求效率 将文件读取到内存,效率比较高,经过测试读取1G左右的文本文件,机器内存消耗达到接近3个G,对内存消耗太大,不建议使用 2.通过调用第三方类库实现 通过 ...
- Python之reduce函数使用示例
#!/usr/bin/env python # -*- coding:utf8 -*- '''reduce:处理一个序列,然后把序列进行合并操作''' ###在python中没有reduce函数,所以 ...
- 剑指offer54:字符流中第一个不重复的字符
1 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中 ...
- stm32片上ADC转换实验
原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...
- 08 IO流(五)——文件字符流FileWriter/FileReader
对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c ...