【问题标题】:How to start server for Selenium grid Java Maven setup如何为 Selenium 网格 Java Maven 设置启动服务器
【发布时间】:2013-04-05 11:16:59
【问题描述】:

我使用 Maven Java 设置 Selenium 框架。所以所有的依赖都存储在 POM.xml 在这里我有疑问..如何启动服务器 java -jar selenium-server-standalone-2.18.0.jar -role hub ..我应该再次将此 jar 放在某个文件夹中,我应该从该路径开始吗?或者我应该去 Maven Dependencies 文件夹 (.m2\Repositories) 吗?

谁能推荐我?

如果问题不清楚,请回复。我会用不同的方式解释。

谢谢 拉朱

【问题讨论】:

  • 检查 this 解释清楚的帖子。
  • 嗨,哼哼,我想你错过了发布链接。可以发一下链接吗
  • 点击上面的“this”这个词。这是一个超链接:)
  • 嗨哼,谢谢我明白了..我会通过那个链接
  • 嗨,下摆,是的,很好的解释。您是否有任何已设置的示例框架项目?那将是另一个很大的帮助

标签: selenium selenium-webdriver selenium-rc selenium-grid


【解决方案1】:

从 Maven 运行 Selenium Grid 可能不是一个好主意;这取决于您将要做什么以及如何做。

通常,您将针对几个/许多不同的环境并行运行 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>

【讨论】:

  • 您好,谢谢您的建议,非常感谢您的建议。
  • 不,我还没试过这个。但我仍在使用 Maven、Selenium 网格、Testng 设置混合框架。认为这是很好的组合吗?可以给点建议吗?
  • 我从未使用过 Hybrid,不知道。至于 Selenium Grid + TestNG,这是一个完全有效的选择,许多开发人员都在使用它。希望我的回答对你有所帮助。如果是这样,记得投票。如果有任何问题,请不要怀疑告诉我。
猜你喜欢
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
相关资源
最近更新 更多