Как настроить Grid 2 в Selen RC с помощью Java-TestNG - PullRequest
0 голосов
/ 07 декабря 2011

Я новичок в Grid и пытаюсь настроить Grid 2 в Selenium RC.

Я скачал selenium-server-standalone-2.1.0.jar. Также у меня есть тестовые наборы TestNG.

И у меня есть тестовый XML вроде:

<suite thread-count="1" name="Suite" parallel="tests" verbose="10"><!-- tests -->
        <test name="FFTest" preserve-order="true">
        <parameter name="selenium.host" value="localhost"></parameter>
        <parameter name="selenium.port" value="5569"></parameter>
        <parameter name="selenium.browser" value="*firefox"></parameter>
        <parameter name="selenium.url" value="http://www.google.com"></parameter>
        <classes>

            <class name="EmployeeHealth.TestScripts.EmployeeHealthRegressionSuite">
                <methods>
                    <include name="InitScript"></include> 
                    <include name="SelectAvoidableAdmissionModule"></include>
                    </methods>  
            </class>


        </classes>
    </test>
<test name="IETest" preserve-order="true">
    <parameter name="selenium.host" value="localhost"></parameter>
    <parameter name="selenium.port" value="5579"></parameter>
    <parameter name="selenium.browser" value="*iehta"></parameter>
    <parameter name="selenium.url" value="http://www.google.com"></parameter>
    <classes>

        <class name="EmployeeHealth.TestScripts.EmployeeHealthRegressionSuite">
            <methods>
                <include name="InitScript"></include> 
                <include name="SelectAvoidableAdmissionModule"></include>
                </methods>  
        </class>


    </classes>
</test>
</suite>    

И я выполнил следующие шаги:

Стартовый концентратор:

        java -jar selenium-server-standalone-2.5.0.jar -role hub

Запуск удаленного управления с поддержкой Firefox

        java -jar selenium-server-standalone-2.5.0.jar -role RC -hub http://localhost:4444/grid/register -browser browserName=firefox,platform=WINDOWS -port 5579

Запустите еще один RC, поддерживающий исследование интернета

        java -jar selenium-server-standalone-2.5.0.jar -role RC -hub http://localhost:4444/grid/register -browser browserName=iexplore,platform=WINDOWS -port 5556.

И в моем файле SetUp.java, я создаю объекты селена как:

        selenium =  new DefaultSelenium(host,Integer.parseInt(port),
                        browser, url);


                if ( browser.equalsIgnoreCase("*chrome")) {
                    RemoteControlConfiguration rcc = new RemoteControlConfiguration();
                    rcc.setFirefoxProfileTemplate(new File(
                            "test\\Resources\\ThirdParty\\FirefoxProfile\\"));
                    seleniumServer = new SeleniumServer(rcc);

                } else {
                    RemoteControlConfiguration rcc = new RemoteControlConfiguration();
                    rcc.setFirefoxProfileTemplate(new File("Object Repository\\SSL"));
                            //"src\\Script\\lib\\ThirdParty\\FirefoxProfile\\"));C:\\Biju\\NewFrameworkStrcuture\\Framework\\ABC_JSAF\\

                    seleniumServer = new SeleniumServer(rcc);
                    RemoteControlConfiguration a= seleniumServer.getConfiguration();
                    File uimap=new File("src\\Script\\lib\\user-extensions.js");
                    a.setUserExtensions(uimap);
                    //seleniumServer = new SeleniumServer();
                }
                //seleniumServer.start();
                selenium.start();
                selenium.windowMaximize();
                selenium.windowFocus();

Таким образом, когда я запускаю xml-файл, тесты выполняются последовательно (сначала Firefox, а затем IE). Но не параллельно.

Также я попытался задать параметр @Test, например

  @Test(dataProvider="CommonTestData",threadPoolSize = 3)

Но я не вижу никаких изменений в последовательности.

Кто-нибудь понял, почему это происходит? ..

Благодарим вас за помощь.


A J, спасибо за ответ.

Я сделал изменения в наборе XML и сделал функцию поставщика данных как «параллельный = true», а также добавил функцию вызова @Test для параметра «InvoationCount = 2», настроил узел и смог запустить 1 IE и 1 FF параллель.

Но теперь проблема в том, что в одном браузере (скажем, IE) мои тестовые случаи выполняются отлично. Но в другом браузере (FF) после запуска браузера я не вижу никаких других действий, выполняемых над ним. Даже не открывая мой URL. в консоли я получил ошибку: "Неудачная конфигурация: @BeforeClass Seleniumstart ("localhost", "5569", "* firefox", "http://www.google.com") com.thoughtworks.selenium.SeleniumException: ERROR Исключение сервера: идентификатор сессии не должен быть
ноль; эта сессия уже началась? " Есть идеи по этому поводу? ..

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Если вы используете провайдер данных, вам также нужно указать, должен ли он вызываться параллельно. У вашего метода CommonTestData должна быть опция parallel = true.

Для выполнения с использованием XML вам нужно увеличить число потоков до более чем 1 для параллельного выполнения.

0 голосов
/ 03 февраля 2012

Похоже, что ваш конфиг Firefox XML пытается отправить тест на узел через порт 5569. Но в вашей фактической строке подключения клиентского узла вы назначаете ее для использования порта 5579. Также похоже, что ваши настройки IE пытаются использовать 5579, но запускаются с 5556.

...