我应该首先说我是一个令人遗憾和痛苦的菜鸟。但我正在努力改变它!我不懂任何编程语言,但通过做足够的研究来完成我需要完成的任何工作,设法“让事情发生”。
无论如何,我一直在使用 Selenium IDE 创建 Selenium 测试,但我在通过 Selenium Grid 运行这些测试时遇到了一些麻烦。
我一直在将测试导出为 JUnit 4 (Webdriver) 文件。我在 Ubuntu 无外设服务器上运行网格,我的 Remote 在一台运行 IE9 和 Firefox 的 Windows 7 机器上,以及一台运行 IE8 和 Chrome 的 Windows Vista 机器上。
我的目标是采用我从 Selenium IDE 导出为 JUnit 4 (Webdriver) 文件的测试,并在我的两台 Windows 机器上从网格中并行运行它们。我已经在我的 Windows 机器上编辑了我的主机文件,以通过名称“seleniumgrid”识别 Ubuntu 服务器。例如:
在Ubuntu服务器终端1上: Ant 发射中心
Win7 终端1: ant -Dport=5555 -Denvironment="IE9 on Windows"-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 终端 1: ant -Dport=5555 -Denvironment="IE8 on Windows"-Dhost=WinVista -DhubURL=http://seleniumgrid:4444 launch-remote-control
Vista 终端 2: ant -Dport=5555 -Denvironment="Windows 上的 Chrome"-Dhost=WinVista -DhubURL=http://seleniumgrid:4444 launch-remote-control
现在,从这里开始,我尝试启动从 Selenium IDE 导出的 JUnit4 (webdriver) 文件以运行此配置。该文件的名称为:Registration.java。
我现在必须做什么才能运行 Registration.jar 文件?我似乎找不到任何文档来回答这个问题,这让我相信我对这一切的工作原理存在根本性的误解......
如果这个问题之前已经回答过,请原谅。关于这些东西,我的术语很差。
非常感谢您花时间阅读这篇文章,如果有答案就更加感谢您了。
-布兰登
最佳答案
无需通过 ant 启动集线器和节点。您可以从 cmd 运行它们:
java -jar selenium-server-standalone-2.21.0.jar -role hub
-- 将运行 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
您还应该为每个节点指定浏览器参数,例如:
-浏览器 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,所以除了您可以在下面找到的链接之外,这里帮不上什么忙。)
包括 JUnit 类文件,您的类文件,包括您的 JUnit 测试类,您的类文件依赖于 Linux 机器上的类路径中的库:
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 上从一个浏览器的一个节点开始,不进行任何并行化,因此您将确保这部分工作正常。作为下一步,依次运行两个节点的测试,然后尝试并行运行它们。
要获得完整的教程,请阅读这些 Material :How do I run JUnit using Ant , Activating Junit tests from Command Line , Grid2 tutorial , Parallel JUnit 4 and Selenium (三部分)
关于selenium - 通过 Selenium Grid 运行 Selenium IDE 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359586/