TestNG失败用例自动截图

发表于:2018-6-08 11:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:钱先生    来源:博客园

  1. 首先写一个截屏方法
1 public class ScreenShotOnFailure {
2     public static final String SCREEN_SHOT_PATH = "test-output/screen-shot";
3     public static String SCREEN_SHOT_NAME = null;
4
5     public static void takeScreenShot() throws IOException {
6         File screenshotDir = new File(SCREEN_SHOT_PATH);
7         if(!screenshotDir.exists()) {
8             screenshotDir.mkdirs();
9         }
10
11         SimpleDateFormat smf = new SimpleDateFormat("yyyyMMddHHmmss");
12         SCREEN_SHOT_NAME = String.valueOf(smf.format(new Date())) + ".jpg";
13         FileUtils.copyFile(((TakesScreenshot)browser.getWebDriver()).getScreenshotAs(OutputType.FILE),
14                 new File(SCREEN_SHOT_PATH + "/"+ SCREEN_SHOT_NAME));
15     }
16 }
  2. 新建一个监听类,重写onTestFailure方法
1 import org.testng.ITestContext;
2 import org.testng.ITestListener;
3 import org.testng.ITestResult;
4 import static com.crewbudget.bean.ScreenShotOnFailure.SCREEN_SHOT_NAME;
5 import static com.crewbudget.bean.ScreenShotOnFailure.SCREEN_SHOT_PATH;
6
7 public class TestngRetryListener implements ITestListener{
8     public void onTestFailure(ITestResult result) {
9         try {
10             ScreenShotOnFailure.takeScreenShot();
11             System.out.println(result.getMethod().getMethodName()+"failed, the screenshot saved in "
12                     + SCREEN_SHOT_PATH +" screenshot name: "
13                     + SCREEN_SHOT_NAME);
14         } catch (Exception e) {
15             e.printStackTrace();
16         }
17     }
18
19     @Override
20     public void onTestStart(ITestResult result) {
21         // TODO Auto-generated method stub
22
23     }
24
25     @Override
26     public void onTestSuccess(ITestResult result) {
27         // TODO Auto-generated method stub
28
29     }
30
31     @Override
32     public void onTestSkipped(ITestResult result) {
33         // TODO Auto-generated method stub
34
35     }
36
37     @Override
38     public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
39         // TODO Auto-generated method stub
40
41     }
42
43     @Override
44     public void onStart(ITestContext context) {
45         // TODO Auto-generated method stub
46
47     }
48
49     @Override
50     public void onFinish(ITestContext context) {
51         // TODO Auto-generated method stub
52
53     }
54 }
  3. 在测试脚本中添加监听
  

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号