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

consolidated testresults for multiple testsuites using testng listeners

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

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

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

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+"%");

        }
    }



}

下面是健全性测试套件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>

您应该构建一个 TestNG 监听器 org.testng.IReporter 的实现,它会在所有套件 运行 完成后执行,然后在您的套件 xml 文件中通过<listeners> 标签。