如何搭建Selenium-Grid2環境(Java)

Selenium對於咱們進行web自動化測試有很大的幫助,若是要進行大範圍的測試覆蓋,就不能僅僅在一兩臺機器上跑了;一樣Selenium-Grid也給咱們提供了這樣的幫助,咱們能夠藉助Selenium-Grid很容易的實現分佈式測試環境的搭建。不一樣於其它一些通用的分佈式程序【如:hudson】,Selenium-Grid是專門針對Selenium的自動化分佈式測試解決方案。
優勢是:
  • 快速搭建分佈環境【經過簡單的參數配置】
  • 自動分配測試腳本【針對不一樣環境】
  • 只需一份測試代碼【目標測試機不須要有測試代碼】
搭建Selenium2環境
在搭建Selenium-Grid以前,首先要搭建每臺測試機上的Selenium環境【準確點說應該是代理節點的環境】。這裏以Java爲例:
  1. 安裝Java【下載
  2. 配置Java環境變量【這裏
  3. 下載ie、chrome的driver程序【若是要測試其它瀏覽器還需額外下載;FF驅動默認在webdriver中,無需下載】
  4. 把ie、chrome的driver程序放到系統環境變量中【例如:system32下】
  5. 安裝最新版的瀏覽器【FF、chrome等】
  6. 下載Selenium Webdriver【下載standalone server】
  7. 代碼測試

本地版:html

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.htmlunit.*;
import org.openqa.selenium.ie.*;

//	  WebDriver driver = new ChromeDriver();
//	  WebDriver driver = new FirefoxDriver();
//	  WebDriver driver = new HtmlUnitDriver();
	  WebDriver driver = new InternetExplorerDriver();
	  driver.get("http://www.dangdang.com");
	  System.out.println(driver.getCurrentUrl());
	  driver.quit();

遠程版:java

import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

DesiredCapabilities ffDesiredcap = DesiredCapabilities.firefox();
DesiredCapabilities chromeDesiredcap = DesiredCapabilities.chrome();
DesiredCapabilities ieDesiredcap = DesiredCapabilities.internetExplorer();
WebDriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), ieDesiredcap);
wd.get("http://www.google.com");
Thread.sleep(1200);
System.out.println(wd.getCurrentUrl());
wd.quit();
上述測試都成功了,就說明你的環境已經搭建成功,依次你能夠在多個系統、平臺上搭建Selenium2環境。

注:
若是使用IDE則把selenium-standalone-server的jar包引用到項目build path,若是直接從命令行編譯和執行的話,則必須指定該jar包的路徑,不然編譯會失敗。

javac -classpath $HOME/path/to/selenium-server.jar Test.java
 java -classpath $HOME/path/to/selenium-server.jar Test

搭建Selenium-Grid環境
當全部測試機上的Selenium2環境搭建成功後,就能夠開始啓動Selenium-Grid2環境了。【 Selenium-Grid的工做原理
首先 啓動一個hub
java -jar selenium-server-standalone-x.xx.x.jar -role hub
啓動hub的機器能夠不是測試機,任意一臺機器有Java環境的機器均可以。這個是整個Selenium-Grid的中樞節點,全部的遠程測試都會由經它後再被轉發出去,而後在對應的測試機上執行測試。

啓動測試代理node
java -jar selenium-server-standalone-x.xx.x.jar -role node
測試代理必須在測試機上啓動【即以前搭建了Selenium2環境的機器上】,而且其註冊的地址必須是hub所在的機器的ip和端口。一臺測試機上能夠啓動多個代理,前提是要保證不使用相同的端口便可。【固然不建議這樣作,儘可能避免不穩定因素】

查看Selenium-Grid狀態

當hub和全部的代理節點都啓動成功後,能夠經過瀏覽器查看當前Selenium-Grid的狀態,直接訪問地址http://localhost:4444/grid/console。 能夠看到頁面顯示了能夠支持測試的代理節點的數量和類型,這裏顯示的數量和類型和你啓動代理節點時所帶的配置參數有關。當啓動代理節點時其實就是一個註冊過程;啓動時所帶的參數會被hub記住做爲註冊信息,因此頁面中所看到的信息就是各代理節點註冊時信息的彙總。node

相關文章
相關標籤/搜索