您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何将失败屏幕截图包含到testNG报告中

如何将失败屏幕截图包含到testNG报告中

是的,您可以在testng报告中包含指向屏幕截图的链接

您需要调用org.testng.Reporter.log方法以通过@Listeners({yourListener.class})注释您的测试类或所有测试类的父级,或将侦听器添加到您的中,从而将超链接写入testng报告testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYstem "http://testng.org/testng-1.0.dtd">
<suite name="default">
  <listeners>
    <listener class-name="ScreenshotListener" />
  </listeners>
  <test name="Test">
    <packages>
      <package name="someTests.*"/>
    </packages>
  </test>
</suite>

您需要首先创建一个Listener类,并将其添加到testng中。您可以从testng.org获取详细信息。搜索监听器。

创建该类后,应在其中编写一个重写该ontestfailure方法方法。每当testng识别出故障时,将执行此方法中的代码

您可以调用屏幕快照获取方法,并用于Reporter.log将超链接放入该屏幕截图。然后,您可以在失败的测试用例详细信息下找到此链接

import java.io.*;
import java.util.*;
import java.text.*;
import org.apache.commons.io.FileUtils;

import org.openqa.selenium.*;

import org.testng.*;

public class ScreenshotListener extends TestListenerAdapter {
    @Override
    public void onTestFailure(ITestResult result) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
        String methodName = result.getName();
        if(!result.isSuccess()){
            File scrFile = ((TakesScreenshot)SomeStaticWebDriver.driver).getScreenshotAs(OutputType.FILE);
            try {
                String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "/target/surefire-reports";
                File destFile = new File((String) reportDirectory+"/failure_screenshots/"+methodName+"_"+formater.format(calendar.getTime())+".png");
                FileUtils.copyFile(scrFile, destFile);
                Reporter.log("<a href='"+ destFile.getAbsolutePath() + "'> <img src='"+ destFile.getAbsolutePath() + "' height='100' width='100'/> </a>");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
其他 2022/1/1 18:18:53 有388人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶