Я использую селеновые огурцы Maven Framework с Junit. Мне нужно запустить тест параллельно. Что мне нужно, так это запускать свои файлы функций одновременно в Chrome и Firefox. Я искал столько дней и только получал решение для TestNG. Как мне этого добиться? Может кто-нибудь помочь мне решить это? Мой файл TestRunnerTest.java выглядит следующим образом:
package testRunner;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/resources/"
, glue= {"stepDefinition"}
, plugin = { "com.vimalselvam.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"},
monochrome = true
public class TestRunnerTest {
public static WebDriver driver;
public static String timeStamp = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a").format(new Date());
public static String browserName;
private static TestRunnerTest sharedInstance = new TestRunnerTest();
private TestRunnerTest() { }
public static TestRunnerTest getInstance() {
return sharedInstance;
}
@BeforeClass
public static void before() {
browserName = System.getProperty("browserName");
// System.out.println(browserName);
if(browserName==null)
{
browserName= "chrome";
}
if (browserName.equalsIgnoreCase("Chrome"))
{
System.setProperty("webdriver.chrome.driver", "E:\\ChromeDriverNew\\chromedriver.exe");
driver=new ChromeDriver();
}
else if (browserName.equalsIgnoreCase("Firefox"))
{
System.setProperty("webdriver.gecko.driver","E:\\geckoNew\\geckodriver.exe");
driver = new FirefoxDriver();
}
else {
System.out.println("Error Message----> "
+ "browser name not mentioned properly");
System.exit(0);
}
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@AfterClass
public static void after() {
Runtime.getRuntime().addShutdownHook(new Thread()
{
public void run()
{
try {
Reporter.loadXMLConfig(new File("config/report.xml"));
// Reporter.setSystemInfo("os", "Windows");
// Reporter.addScreenCaptureFromPath("ScreenShot/screenshot.png");
Files.move(Paths.get("target/cucumber-reports"), Paths.get("target/cucumber-reports_ "+
LocalDateTime.now().format(DateTimeFormatter.ofPattern("L-d-YYYY h-m-s")) + "_" + browserName),
StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
}
});
if(driver!=null)
driver.quit();
}
}
И мое базовое определение таково:
public class baseDefinition {
public Boolean beforsuit=true;
public String baseurl = "https://click2rail-dev.cloudiumedge.com";
private static TestRunnerTest runner_TestObj = TestRunnerTest.getInstance();
public WebDriver driver = runner_TestObj.driver;
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new
Date());
}
Теперь мне нужно запустить тест в нескольких браузерах (Chrome, Firefox, IE) одновременно. Какие изменения мне нужно сделать в файле TestRunner.java и файле baseDefinition? Было бы очень полезно, если бы вы, ребята, помогли мне с решением, так как я новичок. Я искал так много раз ... Но я получаю решения с TestNG.