2012-04-28 183 views
2

我应该说我很遗憾和痛苦的一个小白开始。但我试图改变这一点!我不知道任何编程语言,但通过做足够的研究来完成我所需要完成的任何工作,都设法“实现目标”。硒IDE测试

反正,我一直在创造使用硒IDE Selenium测试,我有一点麻烦,这些测试通过硒电网运行。

我已经出口了测试作为JUnit 4中(webdriver的)文件。我在Ubuntu无头服务器上运行网格,在一台运行IE9和Firefox的Windows 7计算机上运行我的远程控制,以及运行IE8和Chrome的Windows Vista计算机。

我的目标是拿我已经从硒IDE导出为JUnit 4中(webdriver的)文件并运行它们从电网并联在我的两个Windows机器的测试。我在我的Windows机器上编辑了我的主机文件,以“seleniumgrid”的名称识别Ubuntu服务器。例如:

在Ubuntu服务器终端1: Ant启动毂

Win7的端子1: 蚂蚁-Dport = 5555 -Denvironment = “IE9在Windows” -Dhost = Win7的-DhubURL = HTTP:// seleniumgrid:4444推出 - 远程控制

Win7的端子2: 蚂蚁-Dport = 5555 -Denvironment = “火狐在Windows” -Dhost = Win7的-DhubURL = HTTP:// seleniumgrid:4444启动远程控制

Vista的termina1: 蚂蚁-Dport = 5555 -Denvironment = “IE8在Windows” -Dhost = WinVista -DhubURL = HTTP:// seleniumgrid:4444推出 - 远程控制

Vista的端子2: 蚂蚁-Dport = 5555 -Denvironment = “Chrome Windows版” -Dhost = WinVista -DhubURL = HTTP:// seleniumgrid:4444推出 - 远程控制

现在,从这里,我试图启动JUnit4 (webdriver)文件,我已经从Selenium IDE中导出来运行此配置。该文件的名称标题为:Registration.java。

现在我需要做什么来运行Registration.jar文件?我似乎无法找到回答这个问题,这使我相信,我的这一切是如何工作的一个根本性的误解任何文件...

赦免,如果这个问题已经回答过了。谈到这件事时,我的术语很差。

非常非常感谢您抽出宝贵时间,如果有一个阅读本,更答案。

布兰登

回答

2

没有必要通过蚂蚁发动枢纽和节点。您可以从CMD运行它们:

java -jar selenium-server-standalone-2.21.0.jar -role hub - 将运行枢纽
java -jar selenium-server-standalone-2.21.0.jar -role node -hub http://seleniumgrid:4444/grid/register - 将运行节点

节点

默认端口是5555,所以对于第二终端,你应该指定一个从默认的端口不同,例如5556:

java -jar selenium-server-standalone-2.21.0.jar -role node -port 5556 -hub http://seleniumgrid:4444/grid/register

你也应该为每个节点指定浏览器参数,例如:

-browser browserName=firefox,maxInstances=5,platform=WINDOWS

在JUnit测试,你应该使用RemoteWebDriverDesiredCapabilities

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

为了平行执行,你应该另外编辑你的测试(对不起,d不要在jUnit中工作,所以在这里除了你可以在下面找到的链接外,没有什么帮助。)

包括JUnit类文件,你的类文件,包括你的JUnit测试类,你的类文件依赖的库您的Linux机器上的classpath:

export CLASSPATH=$JUNIT_HOME/junit.jar:/myproject/classes:/myproject/lib/something.jar 

调用Junit的命令Linux机器上:

java org.junit.runner.JUnitCore [test class name] 

或者您可以使用ant代替。

我会建议先在Linux上使用集线器,然后在Windows上使用一个浏览器启动一个节点,而不进行任何并行化,因此您可以确定此部分正常工作。作为下一步,按顺序运行两个节点的测试,然后尝试并行运行它们。

有关完整的教程,阅读这些材料:How do I run JUnit using AntActivating Junit tests from Command LineGrid2 tutorialParallel JUnit 4 and Selenium(三部分)

+0

谢谢您的回复,ALEH!感谢您花时间。 我听说JUnit在部署并行测试时遇到了一些麻烦,并且被告知TestNG实际上更适合这项任务。任何人都可以确认或否认这一点? – btdeviant 2012-04-30 22:47:55

+0

@btdeviant,是的,我同意了。我在StackOverflow和互联网上的某处查看了TestNG解决方案,当时我调查了与NUnit并行运行测试,但没有遇到好的jUnit测试。 – 2012-04-30 23:06:50

+0

@btdeviant据我记忆,旧版本的硒网格应该包含一些基于TestNG – 2012-04-30 23:11:45