Экстентный вывод отчета не создается должным образом, когда мы запускаем скрипты с использованием параллельного выполнения TestNG. (Расширенный отчет версии 3.1)

public class ExtentReports_Basecode {

    static Random rand = new Random();
    static long drand = (long)(rand.nextDouble()*10000000000L);

    public WebDriver dr;
    public static ExtentHtmlReporter htmlReporter;
    public static ExtentReports extent;
    public static  ExtentTest test;

    private static String filePath = "D://" + drand + "ExtentReports_Bindu.html";

    @BeforeSuite
    public void setup()    {

        htmlReporter = new ExtentHtmlReporter(filePath);
        extent = new ExtentReports();
        extent.attachReporter(htmlReporter);

        extent.setSystemInfo("OS", "Windows10");
        extent.setSystemInfo("Host Name", "Bindu");
        extent.setSystemInfo("Environment", "rose");
        extent.setSystemInfo("User Name", "1234_ws");

        //htmlReporter.config().setChartVisibilityOnOpen(true);
        htmlReporter.config().setDocumentTitle("AutomationTesting.in Demo Report");
        htmlReporter.config().setReportName("Favourite Automation Report");
        htmlReporter.config().setTheme(Theme.DARK);
    }

    @BeforeMethod
    public void startTest(Method m)
    {
        test = extent.createTest(m.getName(),"This is the description of Test" + m.getName());

    }

    @AfterMethod
    public static void getResult(ITestResult result){

        if(result.getStatus()== ITestResult.FAILURE){
            test.log(Status.FAIL,MarkupHelper.createLabel(result.getName() + "Test case FAILED due to below issues:",ExtentColor.RED));
            test.fail(result.getThrowable());
        }
        else if(result.getStatus()== ITestResult.SUCCESS){  
            test.log(Status.PASS,MarkupHelper.createLabel(result.getName() + "Test Case PASSED",ExtentColor.GREEN));

        }
        else{
            test.log(Status.SKIP,MarkupHelper.createLabel(result.getName() + "Test Case Skipped",ExtentColor.YELLOW));
            test.skip(result.getThrowable());
        }

    }


    @AfterSuite
    public void teardown(){
            extent.flush();
    }


}

Скрипт1:

public class sc1 extends ExtentReports_Basecode{

    public WebDriver dr;
    public Report report = null;
    String inputSheetPath ="TestData/InputData/DataSheet.xls" ;

    @BeforeTest
    public void launchBrowser() {
        System.out.println("launching Chrome browser"); 
        dr = Driver.getChromeDriver();
    }

    @Test
    private void sc1_95_Fav(){

        System.out.println("sc1"); }
}
}

Script2:
public class sc2 extends ExtentReports_Basecode{

    public WebDriver dr;
    public Report report = null;
        String inputSheetPath ="TestData/InputData/DataSheet.xls" ;

    @BeforeTest
    public void launchBrowser() {
        System.out.println("launching Chrome browser"); 
        dr = Driver.getChromeDriver();
    }

    @Test
    private void sc2_83_Fav() {

                }
}
}

XML TestNG:

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <!--<suite name="Parallel test Suite">-->
    <suite name="My suite" parallel="classes" thread-count="10">
    <test name="name">

        <classes>
    <!-- To Add Any Class  start -->

         <class name="OpenUI.Favourites.sc1"/> 
         <class name="OpenUI.Favourites.sc2"/>

    <!--To Add Any Class  End -->

    </classes>
  </test> 
</suite>

в отчете о степени я получаю результаты во 2-м тестовом примере. Может кто-нибудь, пожалуйста, подскажет, где я пропустил и как правильно увидеть результат, используя параллельное тестирование отчета о степени с помощью TestNG. Как показано на изображении, результаты первого теста показаны во втором тесте, если что-то получится провалил неудачный вывод, показанный в последнем тесте, а не в фактическом неудачном тесте PS: он работает нормально, когда я запускаю последовательно один за другим с помощью testNG.


person Adi Sake    schedule 13.11.2019    source источник


Ответы (2)


Следуйте этому шаблону, надеюсь, ваша проблема будет решена

WebDriver driver;
ExtentHtmlReporter htmlReporter;
ExtentReports extent;
ExtentTest test;



        @BeforeTest
        public void setUp() {
            // where we need to generate the report

            htmlReporter = new ExtentHtmlReporter("Your report Path");
            extent = new ExtentReports();
            extent.attachReporter(htmlReporter);
            // Set our document title, theme etc..
            htmlReporter.config().setDocumentTitle("Rehomes");
            htmlReporter.config().setReportName("Rehomes Production Testing");
            htmlReporter.config().setTestViewChartLocation(ChartLocation.TOP);
            htmlReporter.config().setTheme(Theme.DARK);


                        }
       }
        @Test
        public void HomepageLogo() throws Exception {
            test = extent.createTest("rentalhomesHomePage");
            //Your Test

        }

      @AfterMethod
      public void setTestResult(ITestResult result) throws IOException {


          if (result.getStatus() == ITestResult.FAILURE) {
              test.log(Status.FAIL, result.getName());
              test.log(Status.FAIL,result.getThrowable());
              //test.fail("Screen Shot : " + test.addScreenCaptureFromPath(screenShot));
          } else if (result.getStatus() == ITestResult.SUCCESS) {
              test.log(Status.PASS, result.getName());
              //test.pass("Screen Shot : " + test.addScreenCaptureFromPath(screenShot));
          } else if (result.getStatus() == ITestResult.SKIP) {
              test.skip("Test Case : " + result.getName() + " has been skipped");
          }

          extent.flush();
      driver.close();

        }
    }
person Zakaria Shahed    schedule 13.11.2019

Спасибо за ответ, но, к сожалению, вышеупомянутая работа работает и дает только один тест, созданный в виде отчета, если попытаться таким образом. Можете ли вы предложить какой-либо другой способ решить эту проблему?

person Madhu    schedule 13.11.2019
comment
Пожалуйста, используйте комментарии, не оставляйте комментарии в качестве ответа - person Abito Prakash; 13.11.2019