1. Cypress 介紹
1.1 Cypress 簡介
Cypress是一款基於JavaScript的下一代前端測試工具。可以對瀏覽器中運行的任何內容進行快速、簡單和可靠的測試。
Cypress是自集成的,提供了一套完整的端到端測試,無須藉助其他外部工具,安裝後即可快速地創建、編寫、運行測試用例,且對每一步操作都支持回看。另外Cypress也支持集成測試、單元測試。
Cypress 底層協議不採用 WebDriver
1.2 Cypress 原理
大多數測試工具(Selenium/Webdriver)通過在瀏覽器外部啓動一個代理客戶端,再通過網絡向代理客戶端發送命令來運行。而Cypress則剛好相反,其與應用程序在同一個生命週期裏執行。
Webdriver底層通信協議基於JSON Wire Protocol,運行需要網絡通信。
Cypress 的運行流程如下所示:
- 1.在運行測試程序後,Cypress會首先使用webpack將測試代碼中的所有模塊放入一個js文件中
- 2.再啓動瀏覽器,並將測試代碼注入到一個空白頁面,然後在在瀏覽器中運行
1.3 Cypress架構圖
Cypress官方並未提供其架構圖,根據網絡資料整理如下所示:
1.4 Cypress 特性
Cypress主要特性如下所示:
- 時間穿梭
Cypress在測試代碼運行時會自動進行截圖拍照。待測試運行結束後,用戶可以其提供的Test Runner裏,將鼠標懸停命令日誌中的命令上,查看每一步具體的操作
- 實時加載
在測試代碼修改後,Cypress可以自動加載改動並重新運行測試
- Spies/stubs/clocks
Cypress允許驗證和控制測試函數的行爲,Mock服務器響應或更改系統時間等
- 運行結果一致性
可以保證每次運行的測試結果都一樣
- 可調試性
在測試結果爲失敗時,可以直接通過開發者工具進行調試
- 自動等待
在使用Cypress時,無需在測試代碼中添加wait或sleep等。Cypress會自動等待元素至可操作狀態才執行命令或斷言。
- 網絡流量控制
Cypress可以Mock服務器返回結果。無需連接後端服務器即可實現輕鬆控制。模擬網絡請求。
- 截圖和視頻
在測試結果爲失敗時,Cypress會自動截圖,在無GUI界面運行時,會建制整個測試套件的視頻,從而可以輕鬆掌握測試運行情況。
原文地址:https://www.jianshu.com/p/8c1d4c3beec1
本文同步在微信訂閱號上發佈,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注: