Перейти к содержимому

Фотография

Распараллеливание Thucydides тестов с помощью Selenium Grid


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 s.kaliberda

s.kaliberda

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Kaliberda Sergey
  • Город:Dnipropetrovsk

Отправлено 23 ноября 2012 - 11:59

Всем привет!

У нас на проекте планируется использовать Thucydides фреймворк. Одно из требований - распараллеливание тестов.

Там есть вариант распараллеливания с помощью parallel batches, но хотелось попробовать именно с помощью selenium grid.

С версии 0.8.26 появилась возможность использования RemoteWebDriver.

Возможно ли через RemoteWebDriver послать тесты на selenium grid hub и таким образом их распараллелить?

Может быть у кого-то есть умные мысли по этому поводу или же может быть кто-то уже применил этот вариант распараллеливания.

Буду благодарен за любые коментарии
  • 0

#2 s.kaliberda

s.kaliberda

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Kaliberda Sergey
  • Город:Dnipropetrovsk

Отправлено 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 не нужно, без них тоже все работает отлично.
  • 2

#3 alex7kir

alex7kir

    Активный участник

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 27 ноября 2012 - 08:33

Сергей, а вы stories писали как: чистый JUnit, easyb, JBehave?
  • 0

#4 s.kaliberda

s.kaliberda

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Kaliberda Sergey
  • Город:Dnipropetrovsk

Отправлено 27 ноября 2012 - 08:47

Сергей, а вы stories писали как: чистый JUnit, easyb, JBehave?


Пока что JUnit. Но в будущем планирую посмотреть на JBehave. Хотя я не уверен, что получится распараллелить тесты с помощью JBehave, а у нас это основное требование.
Если есть варианты по распараллеливанию с помощью JBehave, буду рад их услышать.
  • 0

#5 alex7kir

alex7kir

    Активный участник

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 27 ноября 2012 - 09:01


Сергей, а вы stories писали как: чистый JUnit, easyb, JBehave?


Пока что JUnit. Но в будущем планирую посмотреть на JBehave. Хотя я не уверен, что получится распараллелить тесты с помощью JBehave, а у нас это основное требование.
Если есть варианты по распараллеливанию с помощью JBehave, буду рад их услышать.


Вот в этом-то и вопрос. :-)
Ваш метод не работает для JBehave-тестов.
Есть мысли попробовать механизмы самого JBehave, но я пока тоже только изучаю это...
  • 0

#6 Julia_Sh

Julia_Sh

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Юлия
  • Город:Новосибирск

Отправлено 27 февраля 2013 - 05:42

Разобрался с этой проблемой. Может быть кому-то будет интересно.

Во первых нужно распаралелить тесты с помощью 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 не нужно, без них тоже все работает отлично.

В этой связке maven - обязателен?
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных