• Selenium Video Tutorials

Selenium Grid - 端點



Selenium Grid 4 最新版本是在不依賴舊版本 Selenium Grid 程式碼庫的情況下開發的。這個最新的 Selenium Grid 4 版本具有一些高階功能,例如 Grid 端點。

最新版本的 Selenium Grid 允許以三種不同的 Selenium Grid 模式觸發測試執行。它們被稱為獨立模式、中心和節點模式以及分散式模式。

獲取 Grid 狀態

Grid 狀態用於提供有關 Selenium Grid 當前狀態的詳細資訊。詳細資訊包括有關所有已註冊節點的資訊。對於每個單獨的節點,Grid 狀態會告知節點是否可用,以及在其上執行的會話以及槽位。

curl Get https://:4444/status'

當 Selenium Grid 以獨立模式執行時,Grid URL 指向獨立伺服器地址。在中心節點模式下,Grid URL 指向中心伺服器地址;在分散式模式下,Grid URL 指向路由器伺服器地址。

在上例中,https://:4444/status 是上述所有模式預設使用的 URL。

如果只有一個節點,則節點 URL 指向https://:5555

節點狀態用於衡量節點的狀況。分發器以一定間隔傳送節點狀態訊息,並將相同的資訊傳送到 Grid 模型。這包括有關可用性、會話和槽位的詳細資訊。

cURL --request GET 'https://:5555/status'

從 Selenium Grid 中移除節點

curl 命令用於從 Selenium Grid 中移除節點。從 Grid 中移除節點不會導致在節點中執行的任何當前會話終止。會話將繼續執行,除非它被專門終止。分發器不知道節點,因此任何類似的新會話請求都不會轉發到該特定節點。

當 Selenium Grid 以獨立模式執行時,分發器 URL 指向獨立伺服器地址。在中心節點模式下,分發器 URL 指向中心伺服器地址。

cURL --request DELETE
'https://:4444/se/grid/distributor/node/<node-id>' 
   --header 'X-REGISTRATION-SECRET: <secret> '

在完全分散式模式下,URL 指向分發器伺服器地址。

cURL --request DELETE 
'https://:5553/se/grid/distributor/node/<node-id>' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request DELETE 
'http://<Distributor-URL>/se/grid/distributor/node/<node-id>' 
   --header 'X-REGISTRATION-SECRET;'

在 Selenium Grid 中清空節點

節點清空命令用於以正確的方式執行節點關閉。清空節點表示在所有活動會話完成後結束節點。之後,不再接受其他新的會話請求。

當 Selenium Grid 以獨立模式執行時,分發器 URL 指向獨立伺服器地址。在中心節點模式下,分發器 URL 指向中心伺服器地址。

cURL --request POST
'https://:4444/se/grid/distributor/node/<node-id>/drain' 
   --header 'X-REGISTRATION-SECRET: <secret> '

在完全分散式模式下,URL 指向分發器伺服器地址。

cURL --request POST
'https://:5553/se/grid/distributor/node/<node-id>/drain' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request POST 
'http://<Distributor-URL>/se/grid/distributor/node/<node-id>/drain' 
--header 'X-REGISTRATION-SECRET;'

為什麼在 Selenium Grid 中使用清空命令

分發器使用節點 ID 將清空命令傳送到正確的節點。為了透過直接路由清空節點,使用以下命令:

cURL --request POST 'https://:5555/se/grid/node/drain' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request POST 'http://<node-URL>/se/grid/node/drain' 
   --header 'X-REGISTRATION-SECRET;'

上述命令使用的端點是正確的,並且產生相同的結果。清空會在終止節點之前完成活動會話。

檢查 Selenium Grid 中的會話所有者

要檢查哪個會話是哪個節點的一部分,可以使用以下 curl 命令:

cURL --request GET 
'https://:5555/se/grid/node/owner/<session-id>' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request GET 
'http://<node-URL>/se/grid/node/owner/<session-id>' 
   --header 'X-REGISTRATION-SECRET;'

如果特定會話指向一個節點,則上述兩個命令都將返回 true 值,否則將返回 false。

在 Selenium Grid 中刪除會話

當會話被刪除時,webdriver 會話結束。此時,驅動程式將被退出,並與活動會話的對映分離。如果使用已刪除的會話 ID 處理或重用任何進一步的請求,驅動程式物件將給出錯誤。刪除會話的 curl 命令是:

cURL --request DELETE 
'https://:5555/se/grid/node/session/<session-id>' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request DELETE
'http://<node-URL>/se/grid/node/session/<session-id>' 
   --header 'X-REGISTRATION-SECRET;'

清除 Selenium Grid 中的新會話佇列

新會話佇列儲存新的會話請求。要清除佇列,請使用以下 curl 命令。一旦佇列被清除,佇列中的所有其他請求將不再被接受,並且伺服器會向其客戶端返回錯誤響應。

當 Selenium Grid 以獨立模式執行時,佇列 URL 指向獨立伺服器地址。在中心節點模式下,佇列 URL 指向中心伺服器地址。

cURL --request DELETE 
'https://:4444/se/grid/newsessionqueue/queue' 
   --header 'X-REGISTRATION-SECRET: <secret>'

在正確的分散式模式下,佇列 URL 指向新會話佇列伺服器地址。

cURL --request DELETE
\'https://:5559/se/grid/newsessionqueue/queue' 
   --header 'X-REGISTRATION-SECRET: <secret>'

如果未完成註冊金鑰的配置,則必須使用以下命令:

cURL --request DELETE
'http://<URL>/se/grid/newsessionqueue/queue' 
   --header 'X-REGISTRATION-SECRET;'

獲取 Selenium Grid 中的新會話請求

新會話請求儲存新的會話請求。要獲取佇列中當前的請求,請使用以下 curl 命令。此命令將產生佇列中請求的總數及其有效負載。

當 Selenium Grid 以獨立模式執行時,佇列 URL 指向獨立伺服器地址。在中心節點模式下,佇列 URL 指向中心伺服器地址。

cURL --request GET
 'https://:4444/se/grid/newsessionqueue/queue'

在正確的分散式模式下,佇列 URL 指向新會話佇列伺服器地址。

cURL --request GET 
'https://:5559/se/grid/newsessionqueue/queue'

本教程到此結束,我們全面介紹了 Selenium Grid - 端點。我們首先介紹瞭如何獲取 Grid 狀態、如何移除節點、什麼是清空節點、什麼是清空命令、如何檢查和刪除會話所有者、如何清除新會話佇列以及如何在 Selenium Grid 中獲取新的會話請求。

本節內容將為您提供深入的Selenium Grid端點知識。建議您持續練習所學內容,並探索與Selenium相關的其他知識,以加深理解並拓寬視野。

廣告
© . All rights reserved.