WEB自動化-01-Cypress 介紹

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,或掃描下面的二維碼添加關注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章