• Selenium Video Tutorials

Selenium Grid - 概述



Selenium Grid 用於透過在多臺機器上執行執行來並行執行測試指令碼。因此,Selenium Grid 透過將命令從客戶端定向到遠端瀏覽器的例項來幫助啟動測試指令碼的執行。

Selenium Grid 是一種工具,它將測試分佈到多個物理或虛擬機器上,以便我們可以並行(同時)執行指令碼。它極大地加快了測試過程,並在多個瀏覽器和平臺上執行測試,從而為產品提供快速準確的反饋。

Selenium Grid 允許我們執行多個WebDriverSelenium Remote Control例項,允許並行執行使用相同程式碼庫的測試,因此程式碼不需要存在於它們執行的系統上。selenium-server-standalone 包包含 Hub、WebDriver 和 Selenium RC,用於在 Grid 中執行指令碼。

Selenium Grid 具有 Hub 和 Node。Selenium 釋出了多個版本的 Selenium Grid,最新版本為 4。Selenium Grid 4 是一種新的實現,不使用舊版 Selenium Grid 版本的原始碼。

什麼是 Selenium Grid?

Selenium Grid 主要用於並行測試。它遵循 Hub(中心部分,其餘部分視為節點)和節點架構。Selenium Grid 使我們能夠在多臺機器上同時執行各種測試。Selenium Grid 主要用於測試執行而不是設計。

Selenium Grid 充當代理伺服器,有助於在多臺機器上觸發並行執行。這是透過提供遠端 Web 瀏覽器物件的指令來完成的。其中一個充當 Hub。

接下來,Hub 將測試指令定向到已註冊的 Selenium Grid 節點。這些測試指令主要採用 JSON 格式。Hub 有助於在不同的機器上建立併發執行,從中心控制各種瀏覽器。

Selenium Grid 允許分散執行測試用例。在設計測試用例時,其執行是在開發它的同一臺機器上進行的。但是,一旦測試套件中存在大量測試用例,為了節省時間,就不再進行本地執行。而是利用多臺伺服器,本地機器分離並在各種伺服器或機器上執行測試。

Selenium Grid 的需求

Selenium Grid 提供了在多個瀏覽器及其不同版本、同一瀏覽器的多個例項和平臺上執行測試指令碼的特權,從而主要減少了測試用例的執行時間。Selenium Grid 透過在多臺機器上觸發執行來實現更好的資源利用。

Selenium Grid 提供了建立跨瀏覽器測試的選項,類似於一個在各種瀏覽器和平臺上同時工作的單個測試,從而有助於捕獲結果並對其進行研究。測試結果以更快的速度獲得,從而有助於為被測產品提供更快的反饋。

Selenium Grid 的元件

Selenium Grid 的元件如下所示:

Hub

它是一個從 WebDriver 客戶端檢索請求的伺服器。它基本上遵循來自客戶端的測試命令,並同時在多個節點中遠端執行測試。因此,Hub 也可以理解為一個伺服器,充當測試將被觸發的中心點。一個 Selenium Grid 只啟動一個 Hub,並且只在一臺機器上啟動一次。

Node

它是遠端連線的裝置,包含遠端 webdriver 和本地作業系統。它以JSON格式獲取 Hub 請求,並在 webdriver 的幫助下根據請求執行操作。節點是連線到 Hub 的 Selenium 例項,用於執行測試。Grid 中可以有一個或多個節點,這些節點可以是任何作業系統,並且可以包含任何 Selenium 支援的瀏覽器。

Selenium Grid 的優勢

Selenium Grid 的優勢如下所示:

  • Selenium Grid 常用於跨瀏覽器測試,以及在不同的瀏覽器、例項、裝置和平臺上執行測試。因此,Selenium Grid 提供了檢視被測應用程式如何響應各種瀏覽器、平臺和裝置組合的機會。

  • 由於可以使用並行執行緒觸發測試,因此整個測試套件以較短的測試周期完全執行。

  • 由於測試周期較短,Selenium Grid 為專案干係人提供了更快的結果,並總結了應用程式的開發方式。

  • Selenium Grid 測試用例靈活、易於維護、可擴充套件,並在短時間內提供更好的測試覆蓋率。

示例

讓我們以一個 Selenium Grid 設定為例,其中有兩個節點。第一個節點具有最新版本的 Chrome,另一個節點具有 Firefox(但不是最新版本)。在測試執行時,Selenium Grid 分配測試以針對已配置的瀏覽器執行。

配置應使得即使測試套件具有大量測試,也可以加速測試執行。Selenium Grid 長期以來一直是 Selenium 的原生部分。

還需要注意的是,Selenium Grid允許跨平臺配置。這意味著如果中心節點在Mac的Safari瀏覽器上執行測試,一個節點可以在Windows的Chrome瀏覽器上執行測試,另一個節點可以在Ubuntu的Firefox瀏覽器上執行測試。

結論

本教程對Selenium Grid概述進行了全面的講解。我們首先介紹了什麼是Selenium Grid,為什麼需要Selenium Grid,Selenium Grid的元件是什麼,Selenium Grid的優勢是什麼,並透過示例演示瞭如何配置Selenium Grid。這使您能夠深入瞭解Selenium Grid概述。建議您繼續練習所學內容,並探索與Selenium相關的其他知識,以加深理解並拓寬視野。

廣告
© . All rights reserved.