您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么加速Selenium”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么加速Selenium”吧!
測試人員可以采用多種方法來加速 Selenium 測試用例。你可以考慮使用顯式等待、Web 定位器、更喜歡不同的瀏覽器、優化 Selenium 基礎架構,并考慮其他用于增強軟件性能的最佳實踐。由于最終產品中有如此多的更新,因此維護 Selenium 測試用例的過程變得繁瑣。因此,我們不能忽視 Selenium 測試用例的性能;相反,我們應該專注于從初始階段加速它們。Selenium 測試用例在任何給定場景中的關鍵任務是:
使用 Selenium Webdriver(本地/遠程)打開測試中的 URL
利用相關的網頁定位器,定位網頁元素
對被測頁面上的定位 Web 元素執行斷言
釋放 WebDriver 使用的資源
讓我們重點介紹一些方法來了解如何加速 selenium 測試。
這是加快 Selenium 測試用例的最簡單方法之一。并行測試允許您在不同的設備瀏覽器組合和操作系統配置上同時執行多個測試,立即覆蓋整個測試套件。如果您擁有內部 Selenium Grid 基礎設施,您可以隨時查看 Selenium Grid 4 的優勢,并了解它在加快 Selenium 測試用例速度方面所提供的功能。讓我們假設您有十個測試要運行。如果您在不同的設備上運行它們,則所有十個測試都可以在 10 秒內完成,而不是 100 秒。您可以在類和方法級別選擇此方法。對測試場景進行分組、參數化和基于云的選項將進一步加強該過程。
A. 分組測試:
測試套件中的多個測試方法和測試文件使實現變得困難。如果我們根據被測功能的類型對測試場景進行分組,則可以輕松管理任何新出現的復雜性。
B. 用 Selenium 4 替換 Selenium 3:
隨著Selenium 4的發布,Selenium有了顯著的改進. 它配備了優化的 Selenium Grid、標準化的 Selenium Webdriver 萬維網聯盟 (W3C)、增強的 Selenium 4 IDE,此外,它還引入了 Chrome Web Tools 和相關定位器。這些改進可以顯著加快 Selenium 測試。如果我們比較 Selenium 3 和 4,我們會發現前者使用 JSON 有線協議進行瀏覽器和測試代碼之間的交互,這導致了通過 W3C 加密和解碼多個 API 請求的額外負擔。但后者使用 WebDriver W3C 協議,可加速 Web 瀏覽器和測試代碼之間的交互。新引入的 Selenium 4 相對定位器,如 – 'above'
、'below'
、'to_left_of'
、'to_right_of'
、'near'
,加速了 Selenium 測試用例并提高了它們的整體穩定性。還,
C. 基于云的 selenium網格:
每當您想要測試必須跨多個瀏覽器-操作系統-設備組合運行許多并行測試的大型 Web 應用程序時,你將需要一個基于云的 Selenium Grid 來執行和加速 Selenium 測試用例。下面是 Selenium Grid 的圖示。
Web 定位器是任何 Selenium 測試場景中不可或缺的部分。定位網絡元素后,需要一個合適的網絡定位器來進一步發揮作用。在眾多可用選項中,始終建議使用速度更快的網絡定位器。在所有網絡定位器中,ID 定位器是 Selenium WebDriver 中最快的。讓我們簡要討論一些最常用的網絡定位器:
A. ID 定位器:它使用與所有瀏覽器相關的document.getElementById() javascript
命令運行速度最快。在許多唯一元素持續存在的情況下,此命令會生成第一個唯一匹配項。只有當 HTML 元素具有對頁面上的每個元素都是唯一的 ID 屬性時,它才起作用。在執行速度方面,在 ID 之后,Name、CSS Selector 和 XPath 分別是最快的。
B. 名稱選擇器:當 WebElement 中沒有 ID 時,使用名稱選擇器 Web 定位器。
C. CSS Selector:如果 WebElement 沒有 ID 或 NAME 屬性,在這種情況下選擇 CSS Selector Web locator 是合適的。CSS 在大多數常見的 Web 瀏覽器中通常沒有什么不同,并且使用 Selenium 中的 CSS 選擇器確保 CSS 引擎的更好性能。使用此 Web 定位器的優勢是更快的元素識別、降低瀏覽器不兼容性和減少測試執行。與 XPath 相比,在 Internet Explorer 等傳統 Web 瀏覽器的情況下首選 CSS 定位器,以提供更好的明確性。
D. XPath: XPath Selector 是最靈活的 Web 定位器,但它是最快的四個定位器中最慢的,因為必須跨越路徑的每一層才能選擇特定的 Web 元素并從一個瀏覽器移動到另一個瀏覽器。使用 XPath 定位器不應該是主要選擇,而應該僅在這是剩下的唯一選項時才使用。
使用少量 Web 定位器:將Web 定位器的數量保持在最低限度,可以提高測試腳本的可讀性,從而減少 Selenium 腳本的執行時間。
Explicit Waits:用于自動化測試的 Explicitwait 命令將消除任何減速,并允許您執行等待條件,例如 Element 可見、Element 是可點擊的、Element 是可選的頁面 Web 元素,這在 Selenium 中的隱式等待的情況下是不可能的. 例如,當標識的元素可點擊時,ToBeClickable 方法會生成一個 WebElement。一旦條件滿足,顯式等待就會撤退。這意味著元素作為結果返回并且不會等待整個持續時間。下面的代碼片段顯示了 ID = element 的 WebElement 在 6 秒內定位。在其位置之后,顯式等待退出,并返回所需的 WebElement。
創建原子腳本:通過簡化復雜場景來創建獨立的測試用例使 Selenium 測試高效。像 TestNG 這樣的框架支持測試方法之間的顯式測試依賴關系,而原子測試可以輕松檢測到故障,這減少了測試時間和維護工作,最大限度地減少了測試依賴關系,并加速了 Selenium 測試。
禁用網頁上的圖像以加快頁面加載速度:創建 Selenium 實例后,您可以使用 driver.get() 方法打開被測頁面。許多網頁內容豐富,由許多圖像組成,導致頁面加載速度變慢。但是可以通過使用瀏覽器相關設置禁用圖像加載來加快頁面加載速度。
下面的快照顯示:
如何在Chrome中使用 Selenium 腳本禁用頁面加載以加快 Selenium 測試用例和頁面加載。
如何在Firefox 中使用 Selenium 腳本禁用頁面加載以加快 Selenium 測試:
在這種情況下,圖像加載在 Amazon 電子商務網站中控制,其中 Firefox 首選項設置為 2,使用 permissions.default.image。
參數化的數據驅動測試:讓我們來看看如何使用Parameterization
加速 selenium 測試。當涉及針對大量數據集進行測試,并在不同的測試輸入上運行相同的測試時。參數化被證明是一個很好的選擇。大多數自動化框架都很好地支持參數化,例如 TestNG(Selenium Java)
、JUnit
、NUnit(C#)
、PyTest( Selenium Python )
等。
使用無頭瀏覽器/驅動程序:無頭瀏覽器允許我們在沒有瀏覽器圖形用戶界面 (GUI) 的情況下執行瀏覽器用戶界面 (UI) 測試。它還有助于提高在后臺運行的跨瀏覽器測試的效率。如果怒不想了解通過測試腳本收到的 UI 交互,則不需要此最佳實踐。一些常見的無頭瀏覽器是 HtmlUnit
、Splash
、PhantomJS
等。在 PhantomJS
驅動程序的上下文中查看 Selenium 瀏覽器測試的性能。
到此,相信大家對“怎么加速Selenium”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。