之前研究过Jenkins的应用,知道基本的流程和原理,能进行一些基本的应用。
Grid的好处不多说。Selenium-Grid包括两个部分:
Hub:总控节点,连接调用Node,负责分配用例到对应的Node节点所在的执行器上Node
Node:负责执行TestCase,启动浏览器
举例说一下整个流程:
- Start the hub 
 通过windows的DOS窗口进入selenium-server-standalone-2.48.2.jar所在目录,执行以下命令- 1 - java -jar selenium-server-standalone-2.48.2.jar -role hub - Default port is 4444. To change the default port, you can add the optional parameter -port when you run the command. You can view the status of the hub by opening a browser window and navigating to: http://localhost:4444/grid/console 
- Start the nodes 
 进入到node,通过windows的DOS窗口进入selenium-server-standalone-2.48.2.jar所在目录,执行以下命令- 1 - java -jar selenium-server-standalone-2.48.2.jar -role node -hub http://localhost:4444/grid/register - 至此,Selenium-Grid就弄成功了,下面我用一个简单的例子来跑一下。 
- Grid run 
- Selenium Script - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36- public class Grid { 
 private WebDriver driver;
 DesiredCapabilities browserCapa;
 String baseUrl;
 @Parameters({ "browser", "nodeUrl", "webSite" })
 @BeforeMethod
 public void setUp(String browser, String nodeUrl, String webSite) {
 baseUrl = webSite;
 if (browser.equals("ie"))
 browserCapa = DesiredCapabilities.internetExplorer();
 else if (browser.equals("ff"))
 browserCapa = DesiredCapabilities.firefox();
 else if (browser.equals("chrome"))
 browserCapa = DesiredCapabilities.chrome();
 String url = nodeUrl + "/wd/hub";
 try {
 driver = new RemoteWebDriver(new URL(url), browserCapa);
 } catch (MalformedURLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 driver.get(webSite);
 }
 @Parameters({ "browser"})
 @Test
 public void test1(String browser) {
 System.out.println(driver.getCurrentUrl());
 driver.quit();
 System.out.println(browser + " test1");
 }
 }
- TestNG XML - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29- <suite thread-count="5" parallel="tests" name="demo" > 
 <test name="test1">
 <parameter name="browser" value="ff"/>
 <parameter name="nodeUrl" value="http://localhost:5555"/>
 <parameter name="webSite" value="http://www.baidu.com"/>
 <classes>
 <class name="testGrid2.Grid" />
 </classes>
 </test>
 
 <test name="test2">
 <parameter name="browser" value="ie"/>
 <parameter name="nodeUrl" value="http://10.8.20.160:5555"/>
 <parameter name="webSite" value="http://www.baidu.com"/>
 <classes>
 <class name="testGrid2.Grid" />
 
 </classes>
 </test>
 
 <test name="test3">
 <parameter name="browser" value="chrome"/>
 <parameter name="nodeUrl" value="http://10.8.20.160:5555"/>
 <parameter name="webSite" value="http://www.baidu.com"/>
 <classes>
 <class name="testGrid2.Grid" />
 </classes>
 </test>
 </suite>
运行testNG XML就可以看到结果了。
只是一个初步的环境搭建,还有很多没想明白的地方,需要再深入的研究一下。
 
     
        