3

我应该首先说我是一个令人遗憾和痛苦的菜鸟。但我正在努力改变这一点!!我不懂任何编程语言,但通过进行足够的研究以完成我曾经需要完成的任何工作,我设法“让事情发生”。

无论如何,我一直在使用 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: ant launch-hub

Win7终端1: ant -Dport=5555 -Denvironment="IE9 on Windows" -Dhost=Win7 -DhubURL=http://seleniumgrid:4444 launch-remote-control

Win7 终端 2: ant -Dport=5555 -Denvironment="Firefox on Windows" -Dhost=Win7 -DhubURL=http://seleniumgrid:4444 launch-remote-control

Vista termina1: ant -Dport=5555 -Denvironment="IE8 on Windows" -Dhost=WinVista -DhubURL=http://seleniumgrid:4444 launch-remote-control

Vista终端2: ant -Dport=5555 -Denvironment="Chrome on Windows" -Dhost=WinVista -DhubURL=http://seleniumgrid:4444 launch-remote-control

现在,从这里开始,我尝试启动从 Selenium IDE 导出的 JUnit4 (webdriver) 文件以运行此配置。该文件的名称为:Registration.java。

我现在必须做什么才能运行 Registration.jar 文件?我似乎找不到任何可以回答这个问题的文档,这让我相信我对这一切是如何运作的有一个根本的误解......

如果这个问题之前已经回答过,请原谅。当谈到这些东西时,我的术语很糟糕。

非常感谢您花时间阅读本文,如果有答案,甚至更感谢您。

-布兰登

4

1 回答 1

2

无需通过 ant 启动 hub 和节点。您可以从 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 测试中,您应该使用RemoteWebDriverwith 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 上使用 hub 开始,在 Windows 上使用一个浏览器的一个节点开始,无需任何并行化,因此您将确保这部分工作正常。作为下一步,依次运行两个节点的测试,然后尝试并行运行它们。

如需完整教程,请阅读以下材料:如何使用 Ant 运行 JUnit从命令行激活 Junit 测试Grid2 教程并行 JUnit 4 和 Selenium(三部分)

于 2012-04-28T20:41:27.013 回答