使用testng侦听器对多个测试套件进行综合测试结果

时间:2018-01-04 22:08:33

标签: java testng listener suite

我有Sanity testsuite testng xml,其中包含多个测试套件,我想获得Sanity测试套件的结果并在控制台上显示。

我尝试使用IsuiteListener,我得到了各个测试套件的结果。

有人可以帮助我获得在健全测试套件下运行的所有测试套件的综合结果吗?

package utilities;

import java.util.Map;

import org.testng.ISuite;
import org.testng.ISuiteListener;
import org.testng.ISuiteResult;
import org.testng.Reporter;

public class Listener implements ISuiteListener 
{

    @Override
    public void onStart(ISuite arg0) {
        Reporter.log("About to begin executing Suite " + arg0.getName(), true);

    }

    @Override
    public void onFinish(ISuite suite) 
    {
        Map<String,ISuiteResult> results=suite.getResults();
        for(String key: results.keySet())
        {
             ISuiteResult con = results.get(key);

            int totaltestcases=con.getTestContext().getAllTestMethods().length;

        int passtestcases= con.getTestContext().getPassedTests().size();
        int failedtestcases=con.getTestContext().getFailedTests().size();
        int skippedtestcases=con.getTestContext().getSkippedTests().size();
        int percentage=(passtestcases*100)/totaltestcases;
        System.out.println("PASS PERCENTAGE : "+percentage+"%");

        }
    }



}

以下是Sanity Test Suite xml          

<suite name="Sanity Test Suite">
<listeners>

 <listener class-name="utilities.Listener"></listener>

 </listeners>
   <suite-files>
    <suite-file path="TestSuit_01.xml"/>
    <suite-file path="TestSuit_02.xml"/>

</suite-files>
</suite>

1 个答案:

答案 0 :(得分:0)

您应构建TestNG侦听器org.testng.IReporter的实现,该实现在所有套件运行完成后执行,然后通过<listeners>标记在套件xml文件中引用此侦听器。