问题描述
我正在使用 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 (将#修改为@)