【问题标题】:Selenium Grid /Sauce Labs Plugin / Ant setupSelenium Grid /Sauce Labs 插件 / Ant 设置
【发布时间】:2012-12-31 20:59:12
【问题描述】:

我正在尝试使用 ANT 来启动 Selenium Grid 实例。使用此处找到的响应 How can I run Selenium 2 Grid from an Ant build? ,我能够使用以下 build.xml 成功启动网格

<project name="selenium-grid" default="launch-hub" basedir=".">
  <property name="selenium.version" value="2.28.0"/>
  <property name="sauce.version" value="1.0.8"/>
  <path id="selenium.classpath">
    <pathelement path="${basedir}/"/>
    <fileset dir="${basedir}/">
      <include name="selenium-server-standalone-${selenium.version}.jar"/>      
      <include name="sauce-grid-plugin-${sauce.version}.jar"/>  
    </fileset>
    <pathelement path="${java.class.path}/"/>
  </path>
  <target name="launch-hub"
          description="Launch Selenium Hub">
    <java classname="org.openqa.grid.selenium.GridLauncher"
          classpathref="selenium.classpath"
          fork="true"
          failonerror="true">       
      <arg value="-role"/>
      <arg value="hub"/>      
    </java>    
  </target>
</project>
蚂蚁发射中心

继续前进,我想将 Sauce Labs Grid 插件与 Selenium Grid 一起使用,可以在此处找到:https://github.com/rossrowe/sauce-grid-plugin/wiki 按照 wiki,我可以使用 DOS 中的以下命令在我的 windows 机器上启动这两个

java -cp selenium-server-standalone-2.25.0.jar;sauce-grid-plugin-1.0.7.jar org.openqa.grid.selenium.GridLauncher -role hub -servlets com.saucelabs.grid.SauceOnDemandAdminServlet ,com.saucelabs.grid.SauceOnDemandConsoleServlet

现在我想通过将目标“launch-hub”添加到 Sauce labs“servlet”的参数来合并 Sauce lab Servlet(抱歉在发布真实代码时遇到问题)

arg value="-servlets"
arg value="com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet"

我使用

重新启动
ant launch
这里是windows返回的错误: 发射中心: [java] 1 月 17 日。 2013 10:58:40 org.openqa.grid.selenium.GridLauncher 主 [java] INFO:启动 selenium 网格服务器 [java] 1 月 17 日。 2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet [java] 注意:指定的类:com.saucelabs.grid.SauceOnDemandAdminServlet 无法实例化 com.sau celabs.grid.SauceOnDemandAdminServlet [java] 1 月 17 日。 2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet [java] 注意:指定的类:com.saucelabs.grid.SauceOnDemandConsoleServlet 无法实例化 com.s aucelabs.grid.SauceOnDemandConsoleServlet [java] 2013-01-17 10:58:50.806:INFO:osjs.Server:jetty-7.x.y-SNAPSHOT [java] 2013-01-17 10:58:50.866:INFO:osjsh.ContextHandler:started o.s.j.s.ServletContextHandler{/,null} [java] 2013-01-17 10:58:50.876:INFO:osjs.AbstractConnector:Started SocketConnector@0.0.0.0:4444`在此处输入代码

Selenium Grid 启动但没有 servlet,因此没有 Saucelabs 访问权限

有什么想法吗?

更新 使用 1.0.7 的酱汁插件让它工作。不支持 1.0.8 版

【问题讨论】:

    标签: ant selenium saucelabs


    【解决方案1】:

    通过使用带有额外参数的 build.xml,我能够使用 Sauce Grid 插件成功运行网格服务器,例如

    <project name="selenium-grid" default="launch-hub" basedir=".">
        <property name="selenium.version" value="2.25.0"/>
        <property name="sauce.version" value="1.0.8"/>
        <path id="selenium.classpath">
            <pathelement path="${basedir}/"/>
            <fileset dir="${basedir}">
                <include name="selenium-server-standalone-${selenium.version}.jar"/>
                <include name="sauce-grid-plugin-${sauce.version}.jar"/>
            </fileset>
            <pathelement path="${java.class.path}/"/>
        </path>
        <target name="launch-hub"
                description="Launch Selenium Hub">
            <java classname="org.openqa.grid.selenium.GridLauncher"
                  classpathref="selenium.classpath"
                  fork="true"
                  failonerror="true">
                <arg value="-servlets"/>
                <arg value="com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet"/>
                <arg value="-role"/>
                <arg value="hub"/>
            </java>
        </target>
     </project>
    

    通过查看 Selenium Grid 代码,生成输出中出现的错误是在抛出 ClassNotFoundException 时生成的...您可以检查一下 sauce-grid-plugin jar 文件是否位于 ${basedir }?

    【讨论】:

    • 感谢您的快速回复。不幸的是,这对我不起作用。是的,两个 jar 都在 ${basedir} 中。我在使用 Selenium 独立服务器 2.25.0 时遇到了 NullPointerException。使用 2.28.0 允许 Grid 启动减去 servlet:-/
    • 好的,你能用 -debug 标志(例如 ant -debug)运行 ant 并附加日志输出吗?在我的环境中,它包括以下内容: Executing ..snip..java' with arguments: '-classpath' '/Developer/workspace/sauce-grid-plugin:/Developer/workspace/sauce-grid-plugin/ sauce-grid-plugin-1.0.8.jar:/Developer/workspace/sauce-grid-plugin/selenium-server-standalone-2.25.0.jar: 'org.openqa.grid.selenium.GridLauncher' '-servlets' 'com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet' '-role' 'hub' (为格式化道歉:)
    • 请随时在 Sauce Grid 插件 issues register 中提出问题:)
    • 嘿罗斯。仍然相同的错误 'com.saucelabs.grid.SauceOnDemandConsoleServlet 无法实例化','指定的类:com.saucelabs.grid.SauceOnDemandConsoleServlet 无法实例化' 这是调试的输出 - 执行 '...java.exe'带参数:'-classpath''C:\grid3\lib;C:\grid3\lib\sauce-grid-plugin-1.0.8.jar;C:\grid3\lib\selenium-server-standalone- 2.25.0.jar''org.openqa.grid.selenium.GridLauncher''-servlets''com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet''-role''hub'
    • 刚刚看到您关于 1.0.7 工作的更新...我认为 1.0.8 jar 可能以某种方式损坏(尽管它在我的环境中工作)。我刚推了 1.0.9 版,你看看能不能用?
    猜你喜欢
    • 2016-08-27
    • 2018-02-17
    • 2014-05-02
    • 2017-03-24
    • 2018-01-01
    • 2014-10-02
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多