selenium:尝试使用selenium Grid在多个浏览器上运行测试

时间:2012-02-20 05:10:40

标签: selenium selenium-grid

enter image description here我在Selenium ID上运行这3个测试,

enter image description here

但我想在不同的浏览器上并行运行这些测试,因为我试图使用Selenium Grid并引用此http://code.google.com/p/selenium/wiki/Grid2

我正在使用此代码

                 public class testjava extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
    selenium = new DefaultSelenium("localhost", 4444, "*chrome", "www.yahoo.com/");
    selenium.start();
}

@Test
public void testTestjava() throws Exception {
}

@After
public void tearDown() throws Exception {
    selenium.stop();
}

}

但是我得到了这个例外

              java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:57)
at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:47)
at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:211)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:102)
at com.selenium.testjava.setUp(testjava.java:20)
at junit.framework.TestCase.runBare(TestCase.java:128)
at com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.java:230)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:228)
at junit.framework.TestSuite.run(TestSuite.java:223)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

由于

2 个答案:

答案 0 :(得分:1)

DefaultSelenium用于Selenium 1(RC)兼容性。 localhost是您的RC服务器(它是seleniumserver)。

但我建议您使用Selenium 2.就像它在您的链接中所说,您必须执行以下操作:

DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability); //localhost is your hub here

这是一个简单的例子,它在你的网格中请求firefox。您可以在任何平台上指定任何浏览器:

capability.setBrowserName(“firefox”); 
capability.setPlatform(“LINUX”);  
capability.setVersion(“3.6”);

您需要至少一个注册到集线器的节点,如下所示:

java -jar selenium-server-standalone-2.x.0.jar -role wd -hub http://localhost:4444/grid/register -browser browserName=firefox,version=3.6,platform=LINUX

再次假设Selenium hub在localhost上运行。我希望这有助于开始。只要问你是否还有其他问题。

答案 1 :(得分:0)

您需要将JUnit 4与Selenium结合使用。

将您的JUnit 4 Selenium测试复制到Eclipse中。

编写Firefox配置文件的启动以及DesiredCapabilities capability = DesiredCapabilities.firefox(); 进入@Before

启动Hub,启动Node,运行测试。

但我建议您阅读JUnit 4中有关JUnit 4和Selenium Testing的基本教程。 只需谷歌找到你的解决方案。

Java知识也有帮助。