您需要同时触发 5 个测试——所有测试都指向同一个集线器,以使用所有浏览器。在接收到来自不同测试的命令时,集线器会将这些命令传递给匹配能力的 RC。您可以在此页面中查看更多详细信息:http: //selenium-grid.seleniumhq.org/how_it_works.html。
根据本网站:-
当然,要真正利用 Selenium Grid,您需要并行运行测试。如果您使用 Java 编写 Selenium 测试,则可以利用 TestNG 并行运行或 Parallel JUnit。如果您更喜欢用 Ruby 编写 Selenium 测试,您可能需要研究 DeepTest 或生成多个进程。您最喜欢的编程语言和开发平台可能已经有了解决方案。
编辑:上面给出的站点是针对 Selenium 1.x 版本的,而不是针对 Grid 2.0 的。但是,运行并行测试的基本概念保持不变
EDIT2:步骤和示例程序如下。请注意,这是一个非常基本的测试,仅用于向您展示 Grid 如何并行运行测试。
第 1 步 - 启动 Grid Hub
java -jar selenium-server-standalone.jar -role hub
Step2 - 启动 RC 节点。例如,我们使用的测试是 webdriver 测试。所以我们需要启动webdriver节点。该命令将启动一个支持 5 个 firefox 浏览器、5 个 googlechrome 和 1 个 IE 浏览器的 webdriver 节点。这是 webdriver 的默认配置。
java -jar selenium-server-standalone.jar -role wd -hub http://localhost:4444/grid/register
第 3 步 - 创建 5 个单独的程序,类似于下面给出的程序。这个程序是在 JAVA 中的。您需要将其更改为您需要的语言。将类名更改为 Program2、Program3 等。如前所述,这不是并行运行测试的最佳方式。您需要使用 testNG 或 jUnit 来同时触发多个测试。由于这本身是一个不同的主题,我不打算在这里解释它。
public class Program1{
public static void main(String args[]){
WebDriver wd;
//Assign a remotewebdriver object to webdriver with firefox capability
wd=new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),DesiredCapabilities.firefox());
wd.get("http://www.google.com");
//Sleep for 2 seconds so that RC will not be released. This is to demonstrate Hub using multiple RCs
Thread.sleep(120000);
//Close webdriver
wd.quit();
}
}
第 4 步 - 同时运行所有 5 个程序。
第 5 步 - 观察网格并行运行 5 个测试的魔力。:)