若是說Web自動化測試,你們最熟悉不過的就是Selenium了。其實還有testcafe、mocha、jtest和cypress等,這些都是github上國外作自動化測試比較火的項目,而近些年Cypress逐漸被國際上承認的最佳實踐。而國內一些公司和一些技術追求者、社區等已經使用和學習。前端
Cypress測試框架之因此愈來愈受歡迎,仍是有自身的緣由,官方文檔寫得好,而且是視頻。社區強有力支持,迭代不斷,目前已是200多個迭代。最核心的是Cypress不須要瀏覽器驅動,運行速度比Selenium快。webpack
Cypress官網地址:https://docs.cypress.iogit
官方文檔中的視頻:github
文檔中帶視頻,這樣對於初學者簡直是雪中送炭,大大下降的學習難度。固然Cypress自己的學習難度也很低。web
時代在變化,網絡也在變化,就像官網所說:The web has evolved,Finally, testing has too。(網絡已經發展,最後,測試也是如此!)後端
隨便着Web應用項目的不斷髮展,測試也要不斷髮展,Cypress是爲現代網絡打造的,基於JavaScript語言的一種前端自動化測試工具,測試也是如此,對瀏覽器中運行的全部內容進行快速,輕鬆和可靠的測試。Cypress是自集成的,這類測試框架統稱爲e2e測試,即end to end(端到端)測試。理論上前端頁面由前端框架來測試確實更爲合適。它提供了一套完整的端到端的測試體驗,正如官網上所說:瀏覽器
1. 安裝Cypress很簡單,無需依賴項,無需額外下載或更改代碼。前端框架
2. 輕鬆,快速地編寫測試,並在構建Web應用程序時觀察它們的實時執行。服務器
3. 在CI中調試測試就像在本地運行測試同樣容易。具備內置的並行化和負載平衡功能。網絡
4. 記錄CI測試數據,屏幕截圖和視頻-並在「 儀表盤」中查看彙總的下一級看法。
Cypress在與應用程序相同的生命週期裏執行,當你運行測試時,Cypress首先使用webpack將測試代碼中的全部模塊bundle到一個js文件中,而後,它會運行瀏覽器,而且將測試代碼注入一個空白的頁面裏,而後它將在瀏覽器中運行測試代碼。
在每次測試首次加載Cypress時,內部Cypress Web應用程序先把本身託管在本地的一個隨機端口上,在識別出測試中發出的第一個cy.visit()命令後,Cypress將會更改其本地的URL以匹配你遠程應用程序的Origin,這使得你的測試代碼和應用程序能夠在一個Run Loop中運行。
由於Cypress測試代碼和應用程序均運行在由Cypress全權控制的瀏覽器中,且它們運行在同一個Domain下的不一樣iframe內,因此Cypress的測試代碼能夠直接操做DOM,Windows Objects甚至Local Storages而無須經過網絡訪問,這就是Cypress能夠運行的更快的緣由。
Cypress還能夠在網絡請求層進行即時讀取和更改網絡流量的操做,Cypress背後是Node.js Process,任何發往瀏覽器以外的HTTP的請求和響應,均由Cypress生成的,被Node.js Process控制的Proxy進行轉發,這使得Cypress不只能夠修改進出瀏覽器的全部內容,還能夠更改可能影響自動化瀏覽器操做的代碼。這便得Cypress相對於其它測試工具來說不只能從根本上控制整個自動化測試的流程,還能夠提供穩定性更加可靠的結果 。
時間穿梭:Cypress會在測試運行時拍攝快照。只需將鼠標懸停在「 命令日誌」中的命令上,便可準確查看每一步都發生了什麼
可調試性:中止猜想你的測試失敗的緣由。直接從熟悉的工具如Chrome DevTools進行調試。咱們可讀的錯誤和堆棧跟蹤使調試更加快速便捷。
實時重載:每當你對測試進行更改時,Cypress都會自動從新加載。查看應用程序中實時執行的命令。
自動等待:不要在測試中添加等待或休眠。Cypress在繼續下一步以前會自動等待元素至可操做狀態時纔會執行命令或斷言。異步操做再也不是噩夢。
間諜,存根和時鐘:Cypress容許你驗證並控制函數行爲,Mock服務器響應或更改系統時間,你喜歡的單元測試就在眼前。
網絡流量控制:Cypress能夠Mock服務器返回結果,無須鏈接後端服務器便可實現輕鬆控制,模擬網絡請求。
運行結果一致性:Cypress架構不使用Selenium或Webdriver,在運行速度,可靠性測試,測試結果一致性上均有良好的保障。
截圖和視頻:Cypress在測試運行失敗時自動截圖,在無頭運行時錄製整個測試套件的視頻,使你輕鬆掌握測試運行狀況。
前面已經說過Cypress很早就出來了,最近一年多時間愈來愈火,被國內大大小小公司以及一些技術愛好者所歡迎,蹭個熱度,學習一下前端知識,更加有利於測試。Github上第一個迭代版本是在2014年6月:
團隊介紹:
說的是Cypress是一個革命性的測試工具,而且開源,已經被全球1萬3千多名IT人員所使用。
以上就是Cypress的一些簡介,學習工具前能夠了解一下,能更好的使用它爲咱們工做提升效率與質量。另外,對測試及測試開發感興趣的,對測試有獨到看法的朋友,能夠加入學習交流QQ羣。一塊兒成長!