#java #selenium #selenium-grid
#java #selenium #selenium-grid
Вопрос:
Я использую selenium-grid и хочу узнать, как запустить мои тесты параллельно в том же браузере, например: Chrome
Проблема в том, что Chrome продолжает открывать только один экземпляр утилиты до завершения первого теста, а затем запускает следующий тест.
Пожалуйста, помогите мне 🙂
public WebDriver createDriverGrid() throws MalformedURLException {
String hubUrl = "http://localhost:4446/wd/hub";
ChromeOptions capabilities = new ChromeOptions();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "chrome");
driver.set(new RemoteWebDriver(new URL(hubUrl), capabilities));
return driver.get();
}
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GoogleTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="GoogleTest-CH" parallel="true">
<!--<parameter name="browser" value="chrome"></parameter>-->
<classes>
<class name="com.herokuapp.theinternet.tests.GoogleTests" />
</classes>
</test>
</suite>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="PositiveTest-CH" parallel="true">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
<!--<class name="com.herokuapp.theinternet.tests.PositiveTests" />-->
</classes>
</test>
</suite>
Комментарии:
1. Добро пожаловать в SO. Где
createDriverGrid
метод? является ли это частью@BeforeClass
?2. Это часть @BeforeMethod. « @BeforeMethod(alwaysRun = true) protected void setUp() выдает исключение MalformedURLException { // Создать драйвер BrowserDriverFactory factory = новый BrowserDriverFactory(); setCurrentThreadName(); драйвер = factory.createDriverGrid(); // развернуть драйвер окна браузера.manage().window().maximize(); } «
3. Также хотите знать, достаточно ли у вас узлов для запуска параллельных сценариев.
Ответ №1:
Если вы хотите запустить тест в параллельном выполнении, тогда вы пишете дважды свой метод тестирования. Согласно вашему TestNG.xml вы должны написать parallel=»tests» thread-count =»2″, что означает, что есть два метода тестирования, которые мы хотим выполнить параллельно.
Пожалуйста, замените ваш xml на приведенный ниже код:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" parallel="tests" thread-count="2">
<test name="PositiveTest-CH">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
<test name="PositiveTest-CH1">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
</suite>
Попробуйте это, и все будет работать нормально.
Ответ №2:
Вы можете достичь этого, используя конвейеры jenkins, без необходимости изменять исходный код
Комментарии:
1. как мы можем это сделать?