Cypress 測試自動化
Cypress 支援大多數基於 React、Angular 等構建的現代應用程式。Cypress 通常與 Selenium 等自動化工具進行比較。關於哪個工具[Cypress 和 Selenium]在自動化方面更好,有很多爭論。
但是,Cypress 和 Selenium 都有其優點和缺點,選擇哪個工具取決於使用者的需求。現在讓我們討論一下 Selenium 和 Cypress 之間的一些區別,如下所示:
Cypress 可以以框架或 npm 的形式使用。它被認為是一個工具。而 Selenium 則以需要下載的 JAR 或 API 的形式使用。
Cypress 只執行在 Javascript 上。Selenium 執行在各種語言上,如 Python、Java、Javascript、Ruby 等。因此,Selenium 的使用範圍更廣,並且擁有非常好的社群支援。
Cypress 只支援 Firefox、Chrome、Electron 和無頭瀏覽器。對 Firefox 的支援仍在開發中。Selenium 支援所有主要的瀏覽器,如 Firefox、Chrome、IE 和 Safari 等。
Cypress 選擇器包括 JQuery、css 和一些用於執行的外掛。因此,處理動態 Web 表格可能很棘手。Selenium 選擇器包括類名、ID、連結文字、部分連結文字、xpath、標籤名和 css。
Cypress 直接在瀏覽器中執行執行,速度稍快。Selenium 的執行速度較慢。
Cypress 沒有同步問題,預設情況下,所有元素都有一個內部配置或有時自定義的預設超時時間。Selenium 有很多同步問題,這些問題可以透過隱式、顯式和流暢等待來解決。
Cypress 具有內部捕獲螢幕截圖和影片的功能,無需任何外部資源、庫或第三方工具的幫助。Selenium 預設具有捕獲螢幕截圖的功能,但對於影片則沒有支援,它依賴於外部資源。
Cypress 不支援直接切換到不同的選項卡或子視窗。它提供了使用 JQuery 方法來支援它們的變通方法。Selenium 具有多個 API,可以切換到不同的選項卡、子視窗和警報。
Cypress 不支援任何移動應用程式和瀏覽器。Selenium 支援移動應用程式和瀏覽器。
Cypress 作為自動化領域的新工具,正越來越受到測試和開發社群的歡迎。
下圖顯示了近六個月內透過 npm trends 顯示的 Cypress 下載量:
來源 - https://www.npmtrends.com/cypress