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

使用Testng框架搭建自动测试框架,经常会需要增加失败自动截图,以及失败重跑功能,下面介绍一下不修改Testng的源码,通过监听器的方式来实现自动截图、重跑、以及自定义生成的Html结果文件功能。

自动截图功能
1、新建一个Java类继承TestListenerAdapter
2、重写onTestFailure、onTestSkipped等方法,在这些方法中加入截图操作
3、在testng.xml文件中配置自己编写的监听器类


<listeners>

<listener class-name="***.testng.TestngListener" /> </listeners>




public class TestngListener extends TestListenerAdapter private static Logger logger = Logger.getLogger(TestngListener.class); public static final String CONFIG = "config.properties"@Override public void onTestFailure(ITestResult tr) super.onTestFailure(tr); logger.info(tr.getName() + " Failure"); takeScreenShot(tr); @Override public void onTestSkipped(ITestResult tr) super.onTestSkipped(tr); logger.info(tr.getName() + " Skipped"); takeScreenShot(tr); @Override public void onTestSuccess(ITestResult tr) super.onTestSuccess(tr); logger.info(tr.getName() + " Success"); @Override public void onTestStart(ITestResult tr) super.onTestStart(tr); logger.info(tr.getName() + " Start"); @Override public void onFinish(ITestContext testContext) super.onFinish(testContext); /** * 自动截图,保存图片到本地以及html结果文件中 * @param tr */ private void takeScreenShot(ITestResult tr) SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); String mDateTime = formatter.format(

相关文章: