標籤:des http java 使用 os io 檔案 for
(一)介紹:
Grid的功能:
並存執行
通過一個中央管理器統一控制用例在不同環境、不同瀏覽器下運行
靈活添加變動測試機
(二)快速開始
這個例子將介紹如何使用selenium2.0的grid,並且註冊一個WebDriver節點。如何使用java調用grid。這裡Hub和節點都跑在同一台機器上面,但是如有你需要的話可以複製selenium-server-standalone到分布式機器上去實現。
註:selenium-server-standalone的jar包中已經包含了grid,WebDriver和RC。Ant在2.0版本就不被需要。
Step1:Start the hub
Hub作為中央節點,他將接收所有的測試請求,然後分發到各個測試節點上。開啟控制台,進入selenium-server-standalone所在目錄,輸入以下指令:
java -jar selenium-server-standalone-2.20.0.jar -role hub
hub將會使用預設的4444連接埠啟動。如果需要更改預設連接埠,可以通過添加參數啟動。同樣可以通過訪問http://localhost:4444/grid/console查看hub的狀態:
Step2: Start the node
不管你是為WebDriver啟動一個grid還是為RC啟動,都只需要通過相同的selenium-server-standalone包啟動就可以了:
java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://hubhost:4444/grid/register
註:此處的hubhost為啟動Selenium Grid hub所在機器的IP。
(三)使用grid執行用例
現在我們已經啟動了一個grid,那麼我需要訪問這個grid來執行我們的用例,對於RC用例,我們將繼續使用DefaultSelenium對象來跟hub進行通訊:
Selenium selenium = new DefaultSelenium("hubhost", 4444, "*firefox", "http://www.google.com");
而對於WebDriver用例,我們需要使用RemoteWebDriver和DesiredCapabilities對象來聲明用例需要使用的瀏覽器,版本和平台。聲明我們需要測試執行的瀏覽器:
DesiredCapabilities capability = DesiredCapabilities.firefox();
將capability載入到RemoteWebDriver對象:
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);通過這些步驟,RemoteWebDriver會把用例中的操作發送給hub,hub則根據capability將用例指派到特定的測試節點(即向hub註冊的node)上。同樣如果測試節點機器設定了capabilities的值,那麼我們需要在WebDriver對象中進行相同的設定,才能被訪問到。例如:A測試機節點通過下列項進行註冊到hub:-browser browserName=firefox,version=3.6,platform=LINUX那麼它將被這樣的用例訪問到:capability.setBrowserName("firefox" ); capability.setPlatform("LINUX"); capability.setVersion("3.6");同樣他也會匹配:capability.setBrowserName("firefox" ); capability.setVersion("3.6");可見node也是接受模糊比對的。如果capabilities沒有被指定,那麼這個用例將被忽略。同樣如果指定的capabilities不存在,則這個用例將不能運行。
(四)配置節點:
預設情況下,支援11款瀏覽器:5個FF,5個Chrome,1個IE。預設的最大並發數為5。不過我們可以通過命令列來變更。-browser browserName=firefox,version=3.6,maxInstances=5,platform=LINUX以上配置了一個Linux測試機節點,且可以同時並發5個FF3.6瀏覽器。如果你的測試機上存在多個版本的瀏覽器,那麼也可以通過配置具體瀏覽器的執行檔案的路徑來配置多個版本:-browser browserName=firefox,version=3.6,firefox_binary=/home/myhomedir/firefox36/firefox,maxInstances=3,platform=LINUX -browser browserName=firefox,version=4,firefox_binary=/home/myhomedir/firefox4/firefox,maxInstances=4,platform=LINUX註:firefox_binary為節點測試機上具體的FF開機檔案