TestNG失败用例自动截图
参考: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失败用例自动截图的更多相关文章
- 【转载】扩展Robot Framework,实现失败用例自动再执行(失败重跑)
使用自动化脚本进行测试,经常受环境影响等各方面导致本能成功的脚本失败,下面介绍了RFS框架下,失败重跑的方法: 通过改写RobotFramework源代码增加--retry选项,实现test级别的失败 ...
- selenium 利用testNG对异常进行自动截图
哈哈哈,很久没写博客了,懒了. 因为一些原因最近需要把监听事件重新整理一下,开始没细想,直接copy网上的,其实结果发现报错很多,或者是达不到效果,然后把之前的代码翻出来,仔细看了一下.下面给一些需要 ...
- Unittest 支持 case 失败后自动截图功能的另外两种方式
原生的unittest框架是不支持case失败后自动截图的功能的,网上看了大家的解决办法,大体上分为两种:1.要么加装饰器2.也有人封装断言这里我们看看还有没有其他的更加方便的方法值得大家一起探讨一下 ...
- Robot Framework-失败用例自动重跑
使用自动化脚本进行测试,经常受环境影响等各方面导致本能成功的脚本失败,下面介绍了RFS框架下,失败重跑的方法: 通过改写RobotFramework源代码增加–retry选项,实现test级别的失败用 ...
- TestNG监听器实现用例运行失败自动截图、重运行功能
注: 以下内容引自 http://blog.csdn.net/sunnyyou2011/article/details/45894089 (此非原出处,亦为转载,但博主未注明原出处) 使用Testng ...
- Webdriver+Testng实现测试用例失败自动截图功能
testng执行测试用例的时候,如果用例执行失败会自动截图,方便后续排查问题 1.首先定义一个截图类: package com.rrx.utils; import java.io.File;impor ...
- testng 失败自动截图
testng执行case failed ,testng Listener会捕获执行失败,如果要实现失败自动截图,需要重写Listener的onTestFailure方法 那么首先新建一个Listene ...
- QTP场景恢复之用例失败自动截图
以下代码是在QC里运行QTP来执行脚本过程,当执行过程中发现用例失败后就会自动截图,然后把用例返回到最初始的状态,模拟了场景恢复的机制 Class QCImageErrorCapture Dim qt ...
- 如何解决testng执行用例失败自动重跑问题
注: 以下内容引自 http://blog.csdn.net/MenofGod/article/details/72846649 看过几个相关问题的帖子,内容类似,不过这篇解决问题的步骤和代码比较清晰 ...
随机推荐
- LeetCode(49)-Valid Parentheses
题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the ...
- 3 sum closest
Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...
- Liunx权限修改命令
语法: chmod 数值 文件名 例: chmod 644 mm.txt 命令执行后,文件mm.txt的权限值为 rw-r--r-- 详解: 权限分为 读.写.执行三种,分别用字母 ...
- orderBy新写法
通常,我们处理排序规则的处理方法是在sql 语句中order by create_time desc, 但是这时我们需要从控制器中一步步找到该方法,操作多. 我们试着将业务逻辑拆分到控制器 中, 把排 ...
- cannot import name '_imaging' 与No module named PIL解决方法
今天学习廖雪峰的python 第三方模块pillow一章. 直接使用from PIL import Image 会报"No module named PIL",显然这是没有安装pi ...
- clear read-only status问题的解决
IDEA系工具可能会报出的错误. 解决方法见官方文档吧:Changing Read-Only Status of Files : https://www.jetbrains.com/help/ide ...
- Redis实现简单消息队列
http://www.jianshu.com/p/9c04890615ba 任务异步化 打开浏览器,输入地址,按下回车,打开了页面.于是一个HTTP请求(request)就由客户端发送到服务器,服务器 ...
- ruby the diference between gets and gets.chomp()
ruby the diference between gets and gets.chomp() 二者都是可以获取用户命令行输入的函数,但是 gets获取内容后,后面 附带了 多余的换行符号'\n'; ...
- Fiddler抓包使用教程-断点调试
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/62896784 本文出自[赵彦军的博客] Fiddler 里面的断点调试有2种方式. ...
- 一些Gym三星单刷的比赛总结
RDC 2013, Samara SAU ACM ICPC Quarterfinal Qualification Contest G 思路卡成智障呀! Round 1:对着这个魔法阵找了半天规律,效果 ...