Selenium Grid / плагин Sauce Labs / настройка Ant

Я пытаюсь использовать ANT для запуска экземпляра Selenium Grid. Используя найденный здесь ответ, Как я могу запустить Selenium 2 Grid из сборки Ant?, я смог успешно запустить Grid, используя следующий 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>
ant launch-hub

Двигаясь дальше, я хотел бы использовать плагин Sauce Labs Grid с Selenium Grid, который можно найти здесь: https://github.com/rossrowe/sauce-grid-plugin/wiki Следуя вики, я могу запустить их на моем компьютере с Windows, используя следующее из DOS

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

Теперь я хочу включить сервлеты лаборатории Sauce, добавив к цели "launch-hub" аргументы для "сервлетов" лаборатории Sauce (извините, что у вас проблемы с отправкой реального кода)

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

I relaunched using

ant launch
and here here is the error returned by windows:

launch-hub:
     [java] 17 janv. 2013 10:58:40 org.openqa.grid.selenium.GridLauncher main
     [java] INFO: Launching a selenium grid server
     [java] 17 janv. 2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet
     [java] ATTENTION: The specified class : com.saucelabs.grid.SauceOnDemandAdminServlet cannot be instanciated com.sau
celabs.grid.SauceOnDemandAdminServlet
     [java] 17 janv. 2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet
     [java] ATTENTION: The specified class : com.saucelabs.grid.SauceOnDemandConsoleServlet cannot be instanciated 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 [email protected]:4444`enter code here

Selenium Grid запускается, но без сервлетов, поэтому нет доступа к Saucelabs.

Любые идеи?

Обновление. Работает, используя 1.0.7 плагина соуса. Не пойдет с версией 1.0.8


person Scott    schedule 17.01.2013    source источник


Ответы (1)


Мне удалось успешно запустить Grid-сервер с плагином Sauce Grid, используя ваш build.xml с дополнительными аргументами, например

<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 ... можете ли вы проверить, находится ли файл jar-файла соус-сетка-плагин в $ {basedir}?

person Ross Rowe    schedule 18.01.2013
comment
Спасибо за быстрый ответ. К сожалению, у меня это не сработало. Да, обе банки находятся в $ {basedir}. У меня было исключение NullPointerException с использованием автономного сервера Selenium 2.25.0. Использование 2.28.0 позволило запустить Grid без сервлетов: - / - person Scott; 18.01.2013
comment
Хорошо, не могли бы вы запустить ant с флагом -debug (например, ant -debug) и прикрепить вывод журнала? В моей среде он включает следующее: Выполнение ..snip..java 'с аргументами:' -classpath '' / Developer / workspace /auce-grid-plugin: / Developer / workspace /auce-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 ' (извинения за форматирование :) - person Ross Rowe; 19.01.2013
comment
Не стесняйтесь поднимать вопрос и в регистре проблем плагина Sauce Grid: ) - person Ross Rowe; 19.01.2013
comment
Привет, Росс. Тем не менее те же ошибки: «com.saucelabs.grid.SauceOnDemandConsoleServlet не может быть создан», «Указанный класс: com.saucelabs.grid.SauceOnDemandConsoleServlet не может быть создан» Вот результат отладки - Выполнение «... java.exe» с аргументами: '-classpath' 'C: \ grid3 \ lib; C: \ grid3 \ lib \auce-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 ' - person Scott; 21.01.2013
comment
Только что увидел ваше обновление о работе 1.0.7 ... Я думаю, что, возможно, jar 1.0.8 каким-то образом поврежден (хотя в моей среде это работает). Я только что выпустил версию 1.0.9, вы можете посмотреть, работает ли она? - person Ross Rowe; 23.01.2013