發佈時間:5月17,2020
使用我們的 Selenium Grid 教學設定跨瀏覽器測試
Selenium概述
Selenium 是一款開源的自動化測試框架,它徹底改變了測試格局。 Selenium 由 Jason Huggins 於 2004 年開發,並迅速成為 Web UI 自動化測試的首選介面。 Selenium 的流行歸功於其對多種程式語言的支持,例如 Python、PHP、Java、Perl、Ruby 和 C#,這些語言都可用於編寫測試腳本。此外,它還支援所有主流瀏覽器,例如 Firefox、Chrome、Internet Explorer 和 Safari。 Windows、macOS、Linux、Solaris 等平台以及 Android、iOS 和 Windows Mobile 等行動作業系統均可運行 Selenium。
Selenium是一個測試框架,它由多個工具組成:
- Selenium 整合開發環境 (IDE)一款適用於 Firefox 和 Chrome 的插件,可讓您在瀏覽器上錄製和執行操作。
- 硒網絡驅動程序一套特定於語言的綁定,用於從作業系統層級控制瀏覽器操作。
- 硒網格一項允許在多個平台上運行的多台機器上同時執行測試腳本的功能
硒的演化
2004 年,Jason Huggins 在 ThoughtWorks 工作時,就意識到需要測試工具來自動化控制瀏覽行為的任務,因為手動測試效率低下,而且耗時過長。於是,他創建了 JavaScriptTestRunner。 JavaScriptTestRunner 開源後,改名為 Selenium Core。 Selenium Core 只能自動化測試與其啟動的相同網域中的應用程式。為了解決這個問題,Paul Hammant 開發了 Selenium Remote Control (RC1),它充當代理。 RC1 讓瀏覽器誤以為被測應用程式是使用相同網域安裝的。 Selenium RC 將一個 JavaScript 程式註入瀏覽器,並透過作為 JavaScript 命令執行的測試腳本來控制瀏覽器行為。
考慮到安裝和配置 Selenium RC 的複雜性,Simon Stewart 於 2006 年開發了 WebDriver,它允許從作業系統控制瀏覽器,而 支援跨平台測試因此,隨著 2008 年 Selenium 2 的推出,Selenium RC 和 WebDriver 合併了。
什麼是 Selenium Grid?
在多個裝置和平台上執行測試腳本既耗時又繁瑣。為了最大限度地縮短測試時間,Patrick Lightbody 創建了一個名為「託管 QA」的功能,使他能夠同時在運行於不同平台上的不同裝置上運行測試案例。該功能後來更名為 Selenium Grid。透過 Selenium Grid,QA 團隊和開發團隊能夠在不同平台上運行的不同瀏覽器上執行不同的測試腳本,從而顯著節省測試時間。
Selenium Grid 架構
Selenium Grid架構由兩個核心元件構成。
- Selenium Grid Hub它作為一個中央系統,接收來自客戶端的測試案例請求,並根據所需功能將其分發到不同的節點。一個網格中只能使用一個節點。
- Selenium Grid 節點節點機器連接到中心伺服器,接收來自中心伺服器的測試腳本並執行它們。您可以在不同的裝置上啟動多個節點,運行不同的環境。
網格安裝和設定指南
以下是安裝和設定 Selenium Grid 的步驟。
第一步:安裝Java並配置環境變數
要使用 Selenium Grid,您需要安裝 Selenium 伺服器,它以 JAR 檔案的形式提供。要使用這些 JAR 文件,您需要在電腦上安裝 Java 並配置環境變數。如果您已經安裝了 Java,則可以跳過此步驟。
a) 請造訪此連結下載並安裝 Java:
https://www.oracle.com/java/technologies/javase-downloads.html
b) 設定 Java 安裝路徑:
- 右鍵單擊“開始”按鈕,然後選擇“設定”。
- 選擇“高級設定”,然後轉到“環境變數”。
- 點選“新建”,然後輸入變數名稱 JAVA_HOME。
- 輸入 Java JDK 路徑作為變數值,然後按一下確定。
步驟 2:下載並安裝 Selenium 伺服器
點擊此連結下載Selenium伺服器。
https://www.selenium.dev/downloads/

最新穩定版本為 3.141.59。您可以將 jar 檔案儲存在電腦上的任何位置。為了確保中心節點和主節點之間的一致性,請將它們保存在 C 碟上。現在,中心節點和主節點上都已安裝了 Selenium 伺服器的 jar 檔案。
步驟 3:配置中心機
- 點擊“開始”並打開命令提示符
- 導覽至 Selenium 伺服器 jar 檔案所在的目錄(例如:C:)
- 鍵入以下命令:
java -jar selenium-server-standalone-3.141.59.jar -role hub

這裡顯示的 3.141.59 是伺服器版本。如果您使用的是其他版本,請相應地更改版本號。
此命令會將機器作為 Selenium Grid 中心節點啟動,預設連接埠為 4444。您可以使用參數“-host”指定 IP 位址來變更預設連接埠。

若要檢查中心是否正在運行,請開啟瀏覽器視窗並輸入以下網址:
http://localhost:4444/grid/console

點擊「查看配置」選項,將顯示詳細資訊:

步驟 4:配置 Selenium Grid 節點
- 在節點機器上開啟命令提示符,並導覽至 selenium 伺服器 jar 檔案所在的目錄。
- 鍵入以下命令:
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.0.4:4444/grid/register -port 5555
IP 位址是您安裝了集線器的機器的 IP 位址,連接埠是集線器的連接埠(此處為 4444)。若要查看集線器所在機器的 IP 位址,只需在集線器所在機器的命令提示字元中輸入:ipconfig。
當您使用多個節點時,可以使用相同的命令將每個節點註冊到中心節點。
預設情況下,網格允許顯示 5 個 Chrome 瀏覽器、5 個 Firefox 瀏覽器和 1 個 IE 瀏覽器。
若要變更這些設置,請鍵入以下命令:
-browser browserName=,version=,maxInstances=,platform=
現在,網格中心和節點機器已配置完畢,可以投入使用。您可以使用 Eclipse 等整合開發環境 (IDE) 編寫 WebDriver 程式碼,在節點機器上執行測試腳本。
維護電網面臨的挑戰
雖然 Selenium Grid 是一個功能強大的工具,但其效能卻很有限。 測試自動化跨平台測試,尤其是行動測試,只有整合 Appium 或 Selendroid 等行動測試自動化框架才能實現。 Selendroid 的功能有限,而 Appium 雖然功能強大,但學習曲線陡峭。測試環境的搭建需要耗費大量時間和精力。您應該開發可重複使用的程式庫。使用 Appium 測試混合應用程式時,需要在 Web 視圖和原生視圖之間經常切換。 Web 元素的辨識也並非易事,有時甚至會失效。測試對象的辨識功能也無法使用。
就效能而言,Selenium Grid 會隨著節點數量的增加而變慢。同時,在本機上執行的測試使得下載或安裝其他軟體變得困難。建置並行測試環境也十分繁瑣。報告和分析是另一個關鍵挑戰。 Selenium 本身不提供任何報告工具,這意味著你無法產生全面的測試報告,從而無法讓團隊全面了解測試情況。唯一的選擇是整合並配置一個報告和分析工具,但這無疑會增加測試人員的負擔。當涉及到 CI/CD 時,由於測試套件會被拆分成更小的模組,報告的重要性會更加凸顯。如果沒有一個完善的報告系統,追蹤和解決問題將變得異常困難。此外,隨時新增和移除設備也會加劇這項挑戰。
SeeTest 將 Selenium Grid 提升到了一個新的水平
SeeTest 是 Experitest 開發的專有行動測試自動化框架,它使開發人員和 QA 團隊能夠: 充分利用 Selenium Grid 的功能 同時克服其限制。使用 SeeTest 的主要優點如下:
高度可擴展的解決方案
SeeTest 是一款高度可擴展的自動化測試解決方案。即使同時運行數百個會話,SeeTest 也能始終保持 100% 的效能。與其他工具不同,即使增加數百個節點伺服器,SeeTest 的效能也不會下降。您可以隨時新增或移除設備,無需停機,也無需進行任何配置變更。
輕鬆實現跨平台測試
使用 SeeTest 和 Selenium 非常簡單方便。將 Selenium 測試環境與 SeeTest 行動和瀏覽器實驗室整合後,即可輕鬆連接到 SeeTest 集中式平台,該平台提供豐富的 Android、iOS 和其他瀏覽器組合。設定完成後,即可在不同平台上執行的數百個瀏覽器上進行平行測試。
Continuous Testing 輕鬆
在今天 DevOps 在當今時代,持續整合/持續交付 (CI/CD) 已不再是可選項,而是必需品。 SeeTest 讓您可以輕鬆整合 Bamboo 或 Jenkins 等 CI/CD 環境,並隨時持續執行測試。這意味著您無需擔心程式語言、測試框架或 IDE,只需專注於打造最佳產品即可。
專門的支持團隊
像 Appium 這樣的跨平台自動化測試工具,在安裝、設定和操作方面都存在較高的學習曲線。此外,由於 Appium 是開源軟體,它會不斷更新和升級。因此,您始終需要依賴線上社群來識別和解決工具問題。然而,SeeTest 配備了專業的支援團隊,可以全天候 24/7 隨時幫助您解決任何問題。這意味著您可以更有效率地利用時間。
全球即時測試
SeeTest行動和瀏覽器實驗室最顯著的特點是其資料中心分佈在8個不同的地區。這意味著您不僅可以訪問… 運行在不同平台上的各種瀏覽器 雖然服務遍布全球,但您也可以即時查看延遲問題。
報告和分析
SeeTest 的一大優勢在於其報告和分析功能。它提供測試過程中每個步驟的文字、視訊錄製、螢幕截圖、瀏覽器控制台和網路日誌等資訊。 SeeTest Dashboard 是一個集中式分析儀表板,可讓您清楚了解關鍵指標。此外,此儀表板的自動根本原因分析功能可協助您輕鬆識別根本原因並快速採取糾正措施。
簡而言之,SeeTest 可以完成所有行動測試自動化任務,讓您更專注於您的產品。