TestNG中的并行多浏览器测试范围报告

问题描述

我正在使用 testNG 执行跨浏览器的并行测试,我试图在其中尝试扩展并行测试的范围报告,该测试具有发送浏览器名称的参数。 但是我的代码正在为两个浏览器生成两个单独的测试报告。有什么办法可以在一个文件中进行报告吗?提前致谢。

我的硒代码文件

enter code here
package demo_testng;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
 import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.NoSuchElementException;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.chrome.ChromeDriver;
 import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.ie.InternetExplorerDriver;
 import org.testng.Assert;
  import org.testng.annotations.AfterClass;
  import org.testng.annotations.AfterMethod;
  import org.testng.annotations.AfterSuite;
  import org.testng.annotations.AfterTest;
  import org.testng.annotations.BeforeClass;
  import org.testng.annotations.BeforeSuite;
   import org.testng.annotations.BeforeTest;
  import org.testng.annotations.Parameters;
  import org.testng.annotations.Test;

 import com.relevantcodes.extentreports.ExtentReports;
 import com.relevantcodes.extentreports.ExtentTest;
 import com.relevantcodes.extentreports.LogStatus;

  import demo_testng.Screenshots;
  import org.testng.ITestResult;

public class SeleniumLoginTest {

private WebDriver driver;
private String baseUrl;
ExtentReports report;
ExtentTest test;



@BeforeTest
@Parameters({"browser"})
public void beforeClass(String browser) {
    baseUrl = "*******";
    if (browser.equalsIgnoreCase("Chrome")) {
        
        driver = new ChromeDriver();
        report = new ExtentReports("C:\\Users\\DELL\\Documents\\selnium_java\\demo_testng\\New folder\\logintestFirefox.html");
        test = report.startTest("Verify NavLinks Firefox");
    
        test.log(LogStatus.INFO," browser Started...");
    } else if (browser.equalsIgnoreCase("firefox")) {
        
        driver = new FirefoxDriver();
        
        report = new ExtentReports("C:\\Users\\DELL\\Documents\\selnium_java\\demo_testng\\New folder\\logintestchrome.html");
        test = report.startTest("Verify NavLinks chrome");
        test.log(LogStatus.INFO," browser Started...");
    }
    
    
    //driver = new FirefoxDriver();
    

    // Maximize the browser's window
    driver.manage().window().maximize();
    test.log(LogStatus.INFO,"browser Maximized");
    driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
    driver.get(baseUrl);
    test.log(LogStatus.INFO,"Web application opened");
}

@Test
public void test1_validLogintest() throws Exception {
    JavascriptExecutor js = (JavascriptExecutor)driver;
    driver.get(baseUrl);
    test.log(LogStatus.INFO,"Web application opened");
    
    
    WebElement header= driver.findElement(By.cssSelector("#om"));
     
     int i = header.findElements(By.cssSelector("li a")).size();
     System.out.println(i);//Get number of links
     test.log(LogStatus.INFO,"getting all the links");
     for(int j = 0;j<i;j++){    //create loop based upon number of links to traverse all links
           //header= driver.findElement(By.cssSelector("#om li"));   // We are re-creating "footer" webelement as DOM changes after navigate.back()
              WebElement nav= driver.findElements(By.cssSelector("#om li a")).get(j);   // We are re-creating "footer" webelement as DOM changes after navigate.back()
               //WebElement elem =nav.findElements(By.tagName("a")).get(j);
               js.executeScript("arguments[0].click();",nav);
               
                  Thread.sleep(1000);
               System.out.println(driver.getTitle());
               if(driver.getTitle().contains("404")) {
                   Assert.assertFalse(driver.getTitle().contains("404"));
                   
                   
                   String link=driver.getcurrenturl();
                   
                   test.log(LogStatus.FAIL,"Link  Accesible:"+link);
                   
                  }
               else {
                   String link2=driver.getcurrenturl();
                   test.log(LogStatus.PASS,"Link  Accesible:"+link2);
               }
               }
}


    

@AfterTest
public void afterClass() {
    report.endTest(test);
    report.flush();
    driver.quit();
    
    
}

范围报告类

enter code here
package demo_testng;

 import com.relevantcodes.extentreports.ExtentReports;

  public class ExtentFactory {
 public static ExtentReports getInstance() {
    ExtentReports extent;
    String Path = "C:\\Users\\DELL\\Documents\\selnium_java\\demo_testng\\New 
    folder\\logintestFirefox.html";
    extent = new ExtentReports(Path,false);
    extent
     .addSystemInfo("Selenium Version","2.52");
     

    return extent;
}
}

我使用的xml文件

enter code here
 <!DOCTYPE suite SYstem "http://testng.org/testng-1.0.dtd">
 <suite name="Parallel TestSuite" parallel="tests" thread-count="2">
  <test name="Firefox Test">
  <parameter name="browser" value="firefox"></parameter>
  <classes>
    <class name="demo_testng.SeleniumLoginTest"></class>
   </classes>
  </test>
 <test name="Chrome Test">
 <parameter name="browser" value="chrome"></parameter>
  <classes>
    <class name="demo_testng.SeleniumLoginTest"></class>
  </classes>
  </test>
  </suite>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)