我应该首先说,我很遗憾和痛苦地 noob 。但我正试图改变它!我不知道任何编程语言,但通过做足够的研究来获得我曾经做过的任何工作,设法“让事情发生”。
无论如何,我一直在使用Selenium IDE创建Selenium测试,我在通过Selenium Grid运行这些测试时遇到了一些麻烦。
我一直在将测试导出为JUnit 4(Webdriver)文件。我在Ubuntu无头服务器上运行网格,在一台运行IE9和Firefox的Windows 7机器上运行我的遥控器,以及运行IE8和Chrome的Windows Vista机器。
我的目标是将我从Selenium IDE导出的测试作为JUnit 4(Webdriver)文件,并在我的两台Windows机器上并行运行它们。我已经在我的Windows机器上编辑了我的主机文件,以识别名为“seleniumgrid”的Ubuntu服务器。例如:
在Ubuntu服务器终端1上: 蚂蚁发射中心
Win7终端1: ant -Dport = 5555 -Denvironment =“Windows上的IE9”-Dhost = Win7 -DhubURL = http:// seleniumgrid:4444 launch-remote-control
Win7终端2: ant -Dport = 5555 -Denvironment =“Windows上的Firefox”-Dhost = Win7 -DhubURL = http:// seleniumgrid:4444 launch-remote-control
Vista termina1: ant -Dport = 5555 -Denvironment =“Windows上的IE8”-Dhost = WinVista -DhubURL = http:// seleniumgrid:4444 launch-remote-control
Vista terminal2: ant -Dport = 5555 -Denvironment =“Windows上的Chrome”-Dhost = WinVista -DhubURL = http:// seleniumgrid:4444 launch-remote-control
现在,从这里开始,我正在尝试启动从Selenium IDE导出的JUnit4(webdriver)文件来运行此配置。该文件的名称标题为:Registration.java。
现在我要做什么来运行Registration.jar文件?我似乎无法找到任何回答这个问题的文件,这让我相信我对这一切的运作方式有一个根本的误解......
如果以前已经回答过这个问题,请原谅。对于这些东西,我的术语很差。非常感谢您花时间阅读本文,如果有答案,还需要更多答案。
布兰登
答案 0 :(得分:2)
无需通过ant启动集线器和节点。您可以从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测试中,您应该RemoteWebDriver
使用DesiredCapabilities
:
DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
对于并行执行,你应该另外编辑你的测试(抱歉,不能使用jUnit,所以除了你可以在下面找到的链接之外,这里没有多少帮助。)
在Linux机器的类路径中包含JUnit类文件,类文件,包括JUnit测试类,类文件所依赖的库:
export CLASSPATH=$JUNIT_HOME/junit.jar:/myproject/classes:/myproject/lib/something.jar
在Linux机器上调用Junit命令:
java org.junit.runner.JUnitCore [test class name]
或者您可以改为使用ant
。
我建议在Linux上启动集线器,在Windows上使用一个浏览器启动一个节点而不进行任何并行化,因此您将确保此部分正常工作。下一步是按顺序运行两个节点的测试,然后尝试并行运行它们。
有关完整教程,请阅读以下材料:How do I run JUnit using Ant,Activating Junit tests from Command Line,Grid2 tutorial,Parallel JUnit 4 and Selenium(三部分)