Cypress 架構(測試自動化)
下圖描述了 Cypress 架構。
大多數自動化測試工具(如 Selenium)透過在瀏覽器外部執行並透過網路執行遠端命令來執行操作。Cypress 具有完全不同的功能。
Cypress 位於瀏覽器本身內部。在 Cypress 的後臺,存在 Node.js 伺服器。Node 伺服器和 Cypress 不斷互動、調整和執行操作,相互支援。
因此,Cypress 可以訪問應用程式的前端和後端。這有助於它同時處理應用程式上的即時事件,並在瀏覽器外部執行需要更高許可權的任務。
Cypress 能夠透過監視和更新網路流量來作用於網路層。這不僅有助於它調節進出瀏覽器的流量,還可以更新處理瀏覽器自動化的程式碼。
Cypress 擁有控制整個自動化流程的能力,因此它可以理解瀏覽器內部和外部發生的事情。Cypress 安裝在我們的本地機器上。
這使得它成為執行錄製影片、捕獲螢幕截圖、基本檔案系統和網路相關操作等操作的重要工具。Cypress 可以訪問 DOM、視窗物件、本地儲存、網路層、瀏覽器開發者工具等等。
簡而言之,我們可以說 Cypress 在瀏覽器內部工作,並且是瀏覽器正在執行我們的測試程式碼。它可以透過處理 DOM 並動態修改網路的請求和響應來更改瀏覽器在執行時的行為。
Cypress 的優點如下:
Cypress 可以測試基於 React、Angular、Vue 和 JavaScript 的現代應用程式。
Cypress 不依賴於 Selenium。
Cypress 在瀏覽器內部執行,因此具有更多控制權,測試執行更可靠且速度更快。
開發人員和測試人員都可以使用 Cypress。
開發人員和測試人員都可以使用 Cypress。
Cypress 程式碼易於除錯。
Cypress 的缺點如下:
Cypress 只能在 Javascript 上執行。
Cypress 對 Firefox 和 Chrome 的支援仍在開發中。
Cypress 無法測試任何原生或移動瀏覽器。