我是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不应该是
空值;这个会议已经开始了吗?“
对此有何看法?..
答案 0 :(得分:1)
如果您正在使用dataprovider,还需要提及是否应该并行调用它。您的CommonTestData方法应该具有parallel = true选项。
对于使用XML执行,您需要将并行执行的线程数增加到1以上。
答案 1 :(得分:0)
您的Firefox XML配置似乎尝试将测试发送到端口5569
上的节点。但是在您的实际客户端节点连接字符串中,您将其分配给端口5579
。您的IE设置似乎也会尝试使用5579
,但会以5556
开头。