selenium遠程測試-跨瀏覽器總結

總而言之,就是先連接服務器端計算機(有selenium-server-standalone.jar文件的計算機,將被客戶端計算機操縱)和客戶端計算機,再運行客戶端計算機的測試代碼,操作服務器端計算機完成測試動作。

連接依據:IP地址/主機名、端口號、瀏覽器信息(瀏覽器名稱、版本號、操作系統)

說明:< >, 該符號內的內容是文字描述,不作爲輸入文本

步驟:

1.在遠程計算機上,下載selenium-server-standalone.jar文件,https://selenium.dev/downloads/,需要下載最新版,老的版本可能會與新的瀏覽器版本不兼容,導致測試時找不到瀏覽器。

2.在遠程計算機上,啓動命令行,cd到jar文件所在文件夾, 輸入命令:java -jar selenium-sever-standalone-3.141.59.jar

需要先安裝JAVA,我安裝的最新的,不清楚舊版本JAVA能否奏效。這條命令將啓動遠程測試服務器端,並且實時反饋測試過程具體情況。

Selenium默認支持火狐瀏覽器,對於IE和Chrome,需要添加默認的驅動搜索路徑,例如:在上條命令中添加

 -Dwebdriver.chrome.driver=<chromedriver.exe路徑字符串>,對於IE瀏覽器,只需把等號左邊chrome改成ie即可。

(不同瀏覽器、不同的瀏覽器版本,都需要下載不同的驅動),可以使用多條-Dwebdriver命令來添加多個驅動的默認搜索路徑;

默認使用4444作爲端口號,也可以用-port命令自定義。

3.在客戶端計算機上,編寫相關測試代碼,不同的是使用driver = webdriver.Remote('http://<服務器端計算機IP>:<啓動服務器端時用的端口號>/wd/hub', desired_caps), 來替代driver = webdriver.Chrome( ), desired_caps是一個字典,用來配置瀏覽器信息,如desired_caps['platform'] = ‘WINDOWS’, desired_caps['browserName'] = ‘chrome'等。

4.運行代碼,測試過程將在服務器端進行,測試結果作爲代碼運行結果返回。

5.分佈式遠程測試

與普通的遠程測試區別在於:

    1)服務器端啓動時添加-role hub命令:使用 java -jar selenium-sever-standalone-3.141.59.jar -role hub

    2)可在服務器端計算機上輸入http://localhost:<啓動時設置的端口號,不設置時默認爲4444>/grid/console,查看控制檯信息,控制檯將顯示節點的配置信息

    3)在服務器端,啓動新的命令行,添加IE/firefox/chrome等瀏覽器節點,

            ①方法一:新建命令行,cd到jar文件下,對於chrome, 鍵入命令: java -Dwebdriver.chrome.driver=<chromedriver.exe路徑字符串> -jar selenium-server-standalone-3.141.59.jar -role webdriver -browser "browserName=chrome, version=78, maxinstance=2, platform=WINDOWS" -hubHost localhost -port 7777

           ②方法二:使用json格式的配置文件

注意,在客戶端使用這裏的端口號7777,而不是啓動服務器端設置的4444,否則將找不到瀏覽器。

6.在雲端測試

用雲端代替這裏的服務器端計算機,即可實現在儘可能多的操作系統和瀏覽器上進行測試。

這裏使用https://saucelabs.com/,註冊賬號,複製Access Key。

修改代碼:desired_caps['browserName'] ='phantomjs', driver = webdriver.Remote('http://' + str(<用戶名>) + ':' + str(<Access Key>) + '@ondemand.saucelabs.com:80/wd/hub', desired_caps),其他不變。

運行測試代碼後, 在saucelabs網站中,選擇Dashboard - AUTOMATED TESTS可查看測試過程視頻及相關細節

 

 

 

發佈了10 篇原創文章 · 獲贊 7 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章