如果想從頭學起Cypress,可以看下面的系列文章哦
https://www.cnblogs.com/poloyy/category/1768839.html
默認文件結構
在使用 cypress open 命令首次打開 Cypress,Cypress 會自動進行初始化配置並生成一個默認的文件夾結構,如下圖
前言
這里先介紹文件結構中每種文件的作用是啥,后面再具體寫代碼的栗子
fixtures 測試夾具
簡介
- 測試夾具通常配合 cy.fixture() 使用
- 主要用來存儲測試用例的外部靜態數據
- fixtures 默認就在 cypress/fixtures 目錄下,但也可以配置到另一個目錄
外部靜態數據的詳解
- 測試夾具的靜態數據通常存儲在 .json 文件中,如自動生成的 examples.json
- 靜態數據通常是某個網絡請求對應的響應部分,包括HTTP狀態碼和返回值,一般是復制過來更改而不是自己手工填寫
fixtures 的實際應用場景
如果你的測試需要對某些外部接口進行訪問並依賴它的返回值,則可以使用測試夾具而無須真正訪問這個接口(有點類似 mock)
使用測試夾具的好處
- 消除了對外部功能模塊的依賴
- 已編寫的測試用例可以使用測試夾具提供的固定返回值,並且你確切知道這個返回值是你想要的
- 因為無須真正地發送網絡請求,所以測試更快
命令示例
要查看 Cypress 中每個命令的示例,可以打開 cypress/integration/examples ,里面都是官方提供的栗子
test file 測試文件
簡介
測試文件就是測試用例,默認位於 cypress/integration ,但也可以配置到另一個目錄
測試文件格式
所有在 integration 文件下,且文件格式是以下的文件都將被 Cypress 識別為測試文件
- .js :普通的JavaScript 編寫的文件【最常用啦】
- .jsx :帶有擴展的 JavaScript 文件,其中可以包含處理 XML 的 ECMAScript
- .coffee :一套 JavaScript 轉譯的語言。有更嚴格的語法
- .cjsx :CoffeeScript 中的 jsx 文件
創建好后,Cypress 的 Test Runner 刷新之后就可以看到對應測試文件了
plugin file 插件文件
前言
- Cypress 獨有優點就是測試代碼運行在瀏覽器之內,使得 Cypress 跟其他的測試框架相比,有顯著的架構優勢
- 這優點雖然提供了可靠性測試,但也使得和在瀏覽器之外進行通信更加困難【痛點:和外部通信困難】
插件文件的誕生
- Cypress 為了解決上述痛點提供了一些現成的插件,使你可以修改或擴展 Cypress 的內部行為(如:動態修改配置信息和環境變量等),也可以自定義自己的插件
- 默認情況,插件位於 cypress/plugins/index.js 中,但可以配置到另一個目錄
- 為了方便,每個測試文件運行之前,Cypress 都會自動加載插件文件 cypress/plugins/index.js
插件的應用場景
- 動態更改來自 cypress.json,cypress.env.json,CLI或系統環境變量的已解析配置和環境變量
- 修改特定瀏覽器的啟動參數
- 將消息直接從測試代碼傳遞到后端
后面再詳解插件在項目中的實際運用
support file 支持文件
簡介
- 支持文件目錄是放置可重用配置項,如底層通用函數或全局默認配置
- 支持文件默認位於 cypress/support/index.js 中,但可以配置到另一個目錄
- 為了方便,每個測試文件運行之前,Cypress 都會自動加載支持文件 cypress/support/index.js
如何使用支持文件
只需要在 cypress/support/index.js 文件里添加 beforeEach() 函數即可,如下面例子
這將能實現每次測試運行前打印出所有的環境變量信息