1. 程式人生 > >Selenium分布式自動化測試平臺 Standalone Server 4.0 搭建

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

發的 hub 令行 alpha script pytho 問題 chrome exe

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

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

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

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

ThirdParty Driver:這個是用來連接webdriver腳本和瀏覽器的。比如Firefox上的是Gecko.作用是提供webdriver的HTTP API用於和瀏覽器通信。最直接的作用就是沒有它,你就無法啟動瀏覽器,更別說其他功能。相當於是用來執行webdriver上的API操作到瀏覽器裏。這是一個exe文件。

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

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

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

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