问题描述
我想像这样使用Maven执行Selenium Grid测试:
mvn verify-Dtest = BaseTest -Dprop.selenium.server.url = http:// localhost:4444 / wd / hub
-Dprop.browser = chrome
-Dprop.version = 80.0.3987.106
我使用junit5 ParameterResolver接口将ChromeDriver注入到Test构造函数中
@ExtendWith(ChromeRemoteWebDriverParameterResolver.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class MultibrowserDemoTest {
RemoteWebDriver driver;
public MultibrowserDemoTest(RemoteDriver driver) {
this.driver = driver.getDriver();
}
@SneakyThrows
@Test
public void testGrid() {
driver.get("https://www.google.com/");
WebElement search = driver.findElement(By.name("q"));
search.sendKeys("junit5 extensions");
search.submit();
}
@Afterall()
void tearDown() {
driver.quit();
}
}
工作正常。但是我看不到如何实现多浏览器测试执行。
比方说,我想添加多个浏览器-Dprop.browser = chrome,firefox,opera,ie11
我创建了多个实现ParameterResolver接口的类。但是junit5不允许我将它们全部注入到我的Test Class中。它也不会创建Test类的新实例。
我试图使用TestInstanceFactory创建我的Test类的新实例,并应用ParameterResolver接口的单独实现,但是它对我不起作用。
最终结果:我可以使用Selenium Grid在多个浏览器中并行运行相同的测试,并且只有一个测试类可以使用单独的Webdriver实例化多次。