Selenium分佈式自動化測試平臺 Standalone Server 4.0 搭建

最新的selenium測試平臺大概有這麼幾個組件java

Selenium Standalone Server: 用來搭建遠程測試平臺以及分佈式測試。node

Selenium WebDriver: 最基礎的用來建立測試腳本以及用來和上面的server進行交互的客戶端的驅動。這個針對不一樣的開發語言有不一樣的版本,好比java的,python的,還有C#, Ruby, JavaScript。這個也是Selenium和其餘測試工具比比較強大的地方。客戶端的腳本你能夠選擇任一喜歡的語言進行實現,同一個server端均可以執行。python

Selenium IDE:錄製的plugin,沒啥說的,針對不一樣的瀏覽器有不一樣的plugin.能夠錄製回放,編輯,等等,功能相對webdriver比較弱。值得說的是Selenium IDE也有導出功能,最新版本3.6.0的Firefox上,目前只支持導出Java代碼,後續會有其餘的代碼吧,比較雞肋,估計支持比較晚。git

ThirdParty Driver:這個是用來鏈接webdriver腳本和瀏覽器的。好比Firefox上的是Gecko.做用是提供webdriver的HTTP API用於和瀏覽器通訊。最直接的做用就是沒有它,你就沒法啓動瀏覽器,更別說其餘功能。至關因而用來執行webdriver上的API操做到瀏覽器裏。這是一個exe文件。github

 

搭建分佈式測試有這些好處:web

1. 能夠把測試用例分發到不一樣的機器上,並行運行。這樣能夠節省大量的時間。windows

2. 能夠搭建不一樣的測試平臺,好比Linux, windows,還有不一樣的瀏覽器平臺。瀏覽器

3. 就我測試的經驗看,有些測試用例必須使用多個機器一塊兒才能實現。好比多用戶在線審批流程。併發

4. 分佈式的多併發的測試平臺也是一種對系統的壓力測試過程,有些問題在單個機器上不會出現,可是多平臺一塊兒運行,就會有。分佈式

 

Standalone Server裏面有兩個基本角色, 這個和交換機很是類似

1. Hub: 相似交換機,拿到client requesit,而後分發

2. Node: 客戶端,提交request.

 

Server搭建有這麼幾個步驟, server須要機器上已經安裝好了java,由於這是一個jar package.

1. 下載selenium-server-standalone-4.0.0-alpha-1.jar.

2. 而後java 啓動執行。這裏都使用默認值

java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role hub

 

能夠在瀏覽器訪問http://localhost:4444/grid/console

2.把client server加入到hub 裏面

1. 下載selenium-server-standalone-4.0.0-alpha-1.jar.

2. 而後java 啓動執行。這裏都使用默認值

java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role node -hub http://localhost:4444/grid/register

 

 

 刷新下剛纔的http://localhost:4444/grid/console 就能看見Node已經加進去了, 最簡單的Grid就搭建完畢了。

使用Grid運行測試用例(python代碼)

 

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.CHROME)

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.OPERA)

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.HTMLUNITWITHJS)

 

配置Node以及Hub

有兩種方式能夠配置Node

1. 使用命令行方式

 2. 使用JSON文件

具體的參看下面的link

來源參考https://github.com/SeleniumHQ/selenium/wiki/Grid2

相關文章
相關標籤/搜索