参考: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. UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)

    1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...

  2. LeetCode(24)-Balanced Binary Tree

    题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...

  3. The 13th tip of DB Query Analyzer, powerful processing EXCEL file

    The 13thtip of DB Query Analyzer, powerful processing EXCEL file MA Genfeng (Guangdong UnitollServic ...

  4. SpringBoot2.0之二 新建RESTfull风格项目

    1.新建一个Maven项目(具体方法可以参照 SpringBoot之一) 2.先建一个User类 package com.somta.springboot.pojo; public class Use ...

  5. pt-align

    pt-align的功能很简单,将其它工具的输出按列对其. 用法: pt-align [FILES] 如果没有指定文件,则默认读取标准输入的内容. 如,常用的vmstat的输出,阅读体验就不够人性化. ...

  6. 【转载】tomcat+nginx+redis实现均衡负载、session共享(一)

    http://www.cnblogs.com/zhrxidian/p/5432886.html 在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一 ...

  7. Android两级嵌套ListView滑动问题的解决

    Android下面两级嵌套ListView会出现滑动失效,解决方案,把两级Listview全换成NoScrollListView,代码如下: public class NoScrollListView ...

  8. Ext Js Sencha Cmd 命令 打包charts

    先进入charts包的目录下 cd D:\开发文档API\ext--gpl\packages\charts 在执行打包命令 sencha package build

  9. C#更改操作系统时间

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...

  10. LeeCode数组第15题三数之和

    题目:三数之和 内容: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中 ...