selenium - 通过 Selenium Grid 运行 Selenium IDE 测试

标签 selenium selenium-rc selenium-ide selenium-grid

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

无论如何,我一直在使用 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 测试中,您应该使用 RemoteWebDriverDesiredCapabilities:

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/

相关文章:

java - 如何在 selenium java 中捕获和导航 <a> 和 <span> 标签下的元素

testing - <="x"的标签 > 的 Selenium 定位器

selenium-ide - 无法创建新的服务 geckodriver; Selenium 独立服务器;

Selenium 点击链接

java - RemoteWebDriver 和 WebElement 的通用接口(interface)

python - 为什么selenium找不到标签和类

java - 将 List<WebElement> 转换为 WebElement

java - 如何通过Java使用Selenium点击元素

selenium-rc - 如果按钮没有ID,如何使用Selenium按下/单击按钮?

selenium-ide - 验证 Selenium IDE 中的输入文本元素不为空