#multithreading #testng #extentreports
Вопрос:
Я использую 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.ITestResu<
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>