Запуск Selenium Grid из Maven может быть плохой идеей; это зависит от того, что и как вы собираетесь делать.
Обычно вы запускаете тесты Selenium параллельно в нескольких/многих разных средах, и это требует значительных ресурсов. Когда вы запускаете процессы из Maven, они запускаются в его основном потоке (как дочерние потоки), поэтому их ресурсы ограничены конфигурацией Maven. Это зависит от ваших машин и конфигураций, но запуск сетки из Maven и параллельное выполнение нескольких тестов Selenium (концентратор и пара узлов по 5 экземпляров в каждом) на одной средней машине, скорее всего, заставят Maven зависнуть из-за отсутствия памяти. Чтобы этого избежать, можно подкорректировать конфигурацию, запускать тесты последовательно (не параллельно, только на одном узле) и т. д., но опять же: это зависит от того, что и как вы хотите делать и, возможно, стоит рассмотреть другие способы запуска вашего Селеновые тесты.
Тем не менее, если вы просто хотите попробовать, как работает Selenium Grid, или это всего лишь пара конкретных тестов, которые будут выполняться, вы можете использовать maven-antrun-plugin
и запустить свой хаб и узлы следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>pre-integration-test</phase> <!-- your Selenium tests should run in integration phase -->
<configuration>
<target>
<java classname="org.openqa.grid.selenium.GridLauncher"
classpathref="maven.test.classpath"
failonerror="true"
fork="false">
<arg line="-role hub"/>
</java>
<java classname="org.openqa.grid.selenium.GridLauncher"
classpathref="maven.test.classpath"
failonerror="true"
fork="false">
<arg line="-role node
-browser 'browserName=firefox,version=19.0,maxInstances=3'
-browser 'browserName=internet explorer 64bits,version=9.0,maxInstances=2'
-hub http://localhost:4444/grid/register
-port 5555
-timeout 40000"/>
</java>
<java classname="org.openqa.grid.selenium.GridLauncher"
classpathref="maven.test.classpath"
failonerror="true"
fork="false">
<arg line="-role node
-browser 'browserName=chrome,version=24.0.1312.56,maxInstances=3'
-browser 'browserName=internet explorer 64bits,version=9.0,maxInstances=2'
-hub http://localhost:4444/grid/register
-port 5556
-timeout 40000"/>
</java>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
У вас должна быть эта зависимость в вашем pom.xml:
<dependency>
<groupId>org.seleniumhq.selenium.server</groupId>
<artifactId>selenium-server-standalone</artifactId>
<version>2.30.0</version>
<scope>test</scope>
</dependency>
person
Sergio Pelin
schedule
08.04.2013