参考:https://blog.csdn.net/wangxin1982314/article/details/50247245

1. 首先写一个截屏方法 

 public class ScreenShotOnFailure {
public static final String SCREEN_SHOT_PATH = "test-output/screen-shot";
public static String SCREEN_SHOT_NAME = null; public static void takeScreenShot() throws IOException {
File screenshotDir = new File(SCREEN_SHOT_PATH);
if(!screenshotDir.exists()) {
screenshotDir.mkdirs();
} SimpleDateFormat smf = new SimpleDateFormat("yyyyMMddHHmmss");
SCREEN_SHOT_NAME = String.valueOf(smf.format(new Date())) + ".jpg";
FileUtils.copyFile(((TakesScreenshot)browser.getWebDriver()).getScreenshotAs(OutputType.FILE),
new File(SCREEN_SHOT_PATH + "/"+ SCREEN_SHOT_NAME));
}
}

2. 新建一个监听类,重写onTestFailure方法  

 import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import static com.crewbudget.bean.ScreenShotOnFailure.SCREEN_SHOT_NAME;
import static com.crewbudget.bean.ScreenShotOnFailure.SCREEN_SHOT_PATH; public class TestngRetryListener implements ITestListener{
public void onTestFailure(ITestResult result) {
try {
ScreenShotOnFailure.takeScreenShot();
System.out.println(result.getMethod().getMethodName()+"failed, the screenshot saved in "
+ SCREEN_SHOT_PATH +" screenshot name: "
+ SCREEN_SHOT_NAME);
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void onTestStart(ITestResult result) {
// TODO Auto-generated method stub } @Override
public void onTestSuccess(ITestResult result) {
// TODO Auto-generated method stub } @Override
public void onTestSkipped(ITestResult result) {
// TODO Auto-generated method stub } @Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub } @Override
public void onStart(ITestContext context) {
// TODO Auto-generated method stub } @Override
public void onFinish(ITestContext context) {
// TODO Auto-generated method stub }
}

3. 在测试脚本中添加监听

  

 

TestNG失败用例自动截图的更多相关文章

  1. 【转载】扩展Robot Framework,实现失败用例自动再执行(失败重跑)

    使用自动化脚本进行测试,经常受环境影响等各方面导致本能成功的脚本失败,下面介绍了RFS框架下,失败重跑的方法: 通过改写RobotFramework源代码增加--retry选项,实现test级别的失败 ...

  2. selenium 利用testNG对异常进行自动截图

    哈哈哈,很久没写博客了,懒了. 因为一些原因最近需要把监听事件重新整理一下,开始没细想,直接copy网上的,其实结果发现报错很多,或者是达不到效果,然后把之前的代码翻出来,仔细看了一下.下面给一些需要 ...

  3. Unittest 支持 case 失败后自动截图功能的另外两种方式

    原生的unittest框架是不支持case失败后自动截图的功能的,网上看了大家的解决办法,大体上分为两种:1.要么加装饰器2.也有人封装断言这里我们看看还有没有其他的更加方便的方法值得大家一起探讨一下 ...

  4. Robot Framework-失败用例自动重跑

    使用自动化脚本进行测试,经常受环境影响等各方面导致本能成功的脚本失败,下面介绍了RFS框架下,失败重跑的方法: 通过改写RobotFramework源代码增加–retry选项,实现test级别的失败用 ...

  5. TestNG监听器实现用例运行失败自动截图、重运行功能

    注: 以下内容引自 http://blog.csdn.net/sunnyyou2011/article/details/45894089 (此非原出处,亦为转载,但博主未注明原出处) 使用Testng ...

  6. Webdriver+Testng实现测试用例失败自动截图功能

    testng执行测试用例的时候,如果用例执行失败会自动截图,方便后续排查问题 1.首先定义一个截图类: package com.rrx.utils; import java.io.File;impor ...

  7. testng 失败自动截图

    testng执行case failed ,testng Listener会捕获执行失败,如果要实现失败自动截图,需要重写Listener的onTestFailure方法 那么首先新建一个Listene ...

  8. QTP场景恢复之用例失败自动截图

    以下代码是在QC里运行QTP来执行脚本过程,当执行过程中发现用例失败后就会自动截图,然后把用例返回到最初始的状态,模拟了场景恢复的机制 Class QCImageErrorCapture Dim qt ...

  9. 如何解决testng执行用例失败自动重跑问题

    注: 以下内容引自 http://blog.csdn.net/MenofGod/article/details/72846649 看过几个相关问题的帖子,内容类似,不过这篇解决问题的步骤和代码比较清晰 ...

随机推荐

  1. SharePoint 自定义列表页面定制续—[保存模板后不能正常使用]

    背景:SharePoint列表的四个基本页样式不是特别的好,所以很多情况都需要重新定制,然而经过定制后,又发生了新的问题,就是存成模板,再建新的列表的时候,定制的页面不能正常显示了. 1. 定制后的页 ...

  2. LeetCode(33)-Pascal's Triangle II

    题目: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return ...

  3. HTML5的canvas标签制作黑客帝国里的简单画面

    1.加入canvas标签 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> ...

  4. VirtualBox虚拟机网络设置(四种方式)

    原文地址: https://www.douban.com/group/topic/15558388/ VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT, ...

  5. 没人看系列-----html随笔

    <!DOCTYPE> 目录 没人看系列-----html/css详解 前言 不多说这段时间写了好多好多前端的东西,以至于自己重新返回看了一遍前端的所有技术.故此做个总结,准备学东西的请绕行 ...

  6. springMVC中添加restful 风格

    RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...

  7. android 开发中,经常遇到http://dl-ssl.google.com/ 无法访问的问题解决

    window - android sdk manager 在选择某个版本sdk安装时,总是出现http://dl-ssl.google.com/无法链接的问题,那是因为qiang太高了,不过也还是有办 ...

  8. linux/unix解压缩

    转自:http://blog.sina.com.cn/s/blog_6f2d29af01015ac6.html zip: 压缩: zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][ ...

  9. mysql8绿色免安装win64版本(自带heidisql.exe客户端)应该兼容老版第三方工具。

    https://pan.baidu.com/s/1cvQ4AJX6rmqSpMhBQTPz4Q 如果缺c库,自己去找下. 使用方法:先执行initdb.bat初始化数据 如果要安装为服务:执行inst ...

  10. UML小白入门基础教程

    面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™,统一建模语言),这篇课程的目的 ...