如何使用Java-TestNG在selenium RC中设置Grid 2

时间:2011-12-07 14:04:46

标签: selenium-grid

我是Grid的新手,我正在尝试在Selenium RC中设置Grid 2.

我已经下载了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

启动另一个支持Internet探索的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文件中,Am创建了selenium对象,如:

        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)

但我没有看到任何变化。

有人知道为什么会发生这种情况吗?..

感谢您的帮助。


J,谢谢你的回复。

我在XML套件中进行了更改,并将dataprovider函数设置为“parallel = true”,并添加了Invokation函数@Test参数“InvoationCount = 2”,并配置节点并能够启动1 IE和1 FF并行。

但现在的问题是,在一个浏览器(Say IE)中,我的测试用例正在完美执行。但在其他浏览器(FF)中,启动浏览器后,我看不到其他任何操作。甚至没有打开我的网址。在控制台我得到错误:    “FAILED CONFIGURATION:@BeforeClass Seleniumstart         (“localhost”,“5569”,“* firefox”,“http://www.google.com”)     com.thoughtworks.selenium.SeleniumException:错误服务器异常:sessionId不应该是
     空值;这个会议已经开始了吗?“ 对此有何看法?..

2 个答案:

答案 0 :(得分:1)

如果您正在使用dataprovider,还需要提及是否应该并行调用它。您的CommonTestData方法应该具有parallel = true选项。

对于使用XML执行,您需要将并行执行的线程数增加到1以上。

答案 1 :(得分:0)

您的Firefox XML配置似乎尝试将测试发送到端口5569上的节点。但是在您的实际客户端节点连接字符串中,您将其分配给端口5579。您的IE设置似乎也会尝试使用5579,但会以5556开头。