Распараллеливание Thucydides тестов с помощью Selenium Grid
#1
Отправлено 23 ноября 2012 - 11:59
У нас на проекте планируется использовать Thucydides фреймворк. Одно из требований - распараллеливание тестов.
Там есть вариант распараллеливания с помощью parallel batches, но хотелось попробовать именно с помощью selenium grid.
С версии 0.8.26 появилась возможность использования RemoteWebDriver.
Возможно ли через RemoteWebDriver послать тесты на selenium grid hub и таким образом их распараллелить?
Может быть у кого-то есть умные мысли по этому поводу или же может быть кто-то уже применил этот вариант распараллеливания.
Буду благодарен за любые коментарии
#2
Отправлено 26 ноября 2012 - 14:40
Во первых нужно распаралелить тесты с помощью junit(версия выше 4.7)
Кусок pom.xml, в котором распараллеваем тесты:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>**/*Story.java</include>
</includes>
<parallel>classes</parallel>
<threadCount>5</threadCount>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Важно! Распаралелвать нужно классы, когда пытался распараллелить методы, вываливался эксепшин.
Дальше запускаем Selenium Grid:
java -jar selenium-server.jar -role hub
И несколько нодов на разных портах
java -jar selenium-server-standalone-2.25.0.jar -role node -hub http://hubip:4444/grid/register -port 5556
Запускаем наши тесты:
mvn clean verify -Dwebdriver.remote.url=http://hubip:4444/wd/hub
Как видим, запуск через RemoteWebDriver происходит всего лишь с помощью установки системной проперти webdriver.remote.url. Запускать parallel batches не нужно, без них тоже все работает отлично.
#3
Отправлено 27 ноября 2012 - 08:33
#4
Отправлено 27 ноября 2012 - 08:47
Сергей, а вы stories писали как: чистый JUnit, easyb, JBehave?
Пока что JUnit. Но в будущем планирую посмотреть на JBehave. Хотя я не уверен, что получится распараллелить тесты с помощью JBehave, а у нас это основное требование.
Если есть варианты по распараллеливанию с помощью JBehave, буду рад их услышать.
#5
Отправлено 27 ноября 2012 - 09:01
Сергей, а вы stories писали как: чистый JUnit, easyb, JBehave?
Пока что JUnit. Но в будущем планирую посмотреть на JBehave. Хотя я не уверен, что получится распараллелить тесты с помощью JBehave, а у нас это основное требование.
Если есть варианты по распараллеливанию с помощью JBehave, буду рад их услышать.
Вот в этом-то и вопрос. :-)
Ваш метод не работает для JBehave-тестов.
Есть мысли попробовать механизмы самого JBehave, но я пока тоже только изучаю это...
#6
Отправлено 27 февраля 2013 - 05:42
В этой связке maven - обязателен?Разобрался с этой проблемой. Может быть кому-то будет интересно.
Во первых нужно распаралелить тесты с помощью junit(версия выше 4.7)
Кусок pom.xml, в котором распараллеваем тесты:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>**/*Story.java</include>
</includes>
<parallel>classes</parallel>
<threadCount>5</threadCount>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Важно! Распаралелвать нужно классы, когда пытался распараллелить методы, вываливался эксепшин.
Дальше запускаем Selenium Grid:
java -jar selenium-server.jar -role hub
И несколько нодов на разных портах
java -jar selenium-server-standalone-2.25.0.jar -role node -hub http://hubip:4444/grid/register -port 5556
Запускаем наши тесты:
mvn clean verify -Dwebdriver.remote.url=http://hubip:4444/wd/hub
Как видим, запуск через RemoteWebDriver происходит всего лишь с помощью установки системной проперти webdriver.remote.url. Запускать parallel batches не нужно, без них тоже все работает отлично.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных