使用Cypress 進行E2E 測試教您如何使用Cypress 執行端到端(E2E) 測試<script> </script>
什麼是端到端測試?
端到端測試 (E2E) 是自動化測試,用於驗證應用程式從開始到結束的完整行為,模擬使用者與介面的互動。這些測試很重要,因為它們驗證應用程式的所有部分在真實環境中是否按預期正常運作。
賽普拉斯:它是什麼以及它如何運作?
Cypress 是一個用於 Web 應用程式自動化測試的工具。它被設計為易於使用、功能強大且快速。它允許您編寫與應用程式的使用者介面互動的測試,就像使用者一樣,點擊按鈕、填寫表單、驗證文字等等。
Cypress 的一些重要特性:
- 即時測試:它在瀏覽器本身中執行測試,讓您可以即時查看正在運行的測試。
- 易於設定:無需複雜的設定即可開始。
- 快速執行:由於Cypress在瀏覽器中運行,因此與其他E2E測試工具相比,測試執行速度更快。
- CI/CD 整合:它可以輕鬆與 CI/CD 管道整合以實現測試自動化。
模組 34 演練
1.概念化 Cypress 工具
Cypress是一款Web應用的自動化測試工具,主要用於E2E測試。它旨在直接與瀏覽器中的應用程式程式碼交互,使測試更有效率。
2.在機器上安裝 Cypress
要開始使用 Cypress,您需要將其安裝到您的專案中。這是安裝指令:
3.啟動賽普拉斯
安裝Cypress後,您可以在終端機中使用以下命令開啟它:
這將開啟 Cypress Test Runner,您可以在其中看到瀏覽器中執行的測試。它還會在您的專案中建立一個 cypress 資料夾,其中儲存所有測試和配置。
4.使用描述函數將測驗分組
在 Cypress(和 Jest)中,我們使用 describe 將屬於同一套件或模組的多個測試分組。這有助於以更結構化的方式組織測試。
在上面的例子中:
- describe 用於將登入相關測試分組。
- 它定義了組內的特定測試。其內部接下來是執行驗證的程式碼(測試步驟)。
5.使用 it 函數
it 函數用來定義各個測試案例。每個測試案例必須是獨立的並代表應用程式的特定功能或行為。
6.使用 cy.get 函式檢索元素
cy.get 函數用於選擇要在測試中互動的頁面元素。
範例:
這裡,cy.get 搜尋 name="username" 的輸入和 type="submit" 的提交按鈕,然後執行 type 和 點擊。
7. VScode 與自動完成簡介
您可以使用 VSCode 編輯測試並利用 Cypress 自動完成功能,這可以透過在您鍵入時建議方法和命令來輕鬆正確編寫測試。
8.使用層級關係
Cypress 讓您可以使用更複雜的 CSS 選擇器根據頁面層次結構選擇元素。例如,您可以選擇具有特定類別的 div 內的按鈕:
9.建構過濾測試
過濾測試的一個例子是檢查應用過濾器時項目清單是否正確更新。 Cypress 讓您可以輕鬆執行此類測試,與過濾器互動並檢查結果。
10。使用 beforeEach 函數
beforeEach 函數對於在每次測試之前配置應用程式狀態非常有用。當您需要在執行測試之前確保應用程式處於初始狀態時,這一點尤其重要。
11。了解 Cypress 返回類型
Cypress 使用 Promise 來管理非同步時間,但它會自動處理這些 Promise,從而使測試變得更簡單。在許多情況下沒有必要使用await或.then(),因為Cypress在內部處理這個問題。
12。組織程式碼以減少行數
保持測驗的組織性和可重複使用性至關重要。您可以建立輔助函數並重複使用程式碼片段。
範例:
13。了解 Cypress 的其他功能
- 截圖:Cypress 可以在測試過程中自動截圖。這可以幫助您直觀地了解測試失敗時發生的情況。
產生報告:Cypress 讓您產生測試執行報告,這使得分析結果變得更加容易。
Cypress Run:若要在無頭模式(沒有圖形介面)下執行測試,請使用下列指令:
- HTTP 請求模擬:您可以使用 Cypress 模擬伺服器回應,而無需實際呼叫。這對於使用特定資料測試場景非常有用。
14。模擬 Service Worker (MSW) 安裝
Mock Service Worker 是一個允許您在測試中攔截 HTTP 請求的工具。它可以與 Cypress 一起使用來模擬請求並控制回應。
然後您可以設定網路處理程序來攔截請求。
結論
在第 34 單元中,您學習如何使用 Cypress 對您的應用程式執行 E2E 測試,確保其在實際使用情況下正常運作。您學習如何設定 Cypress、編寫測試、與頁面元素互動以及使用 beforeEach、cy.get、螢幕截圖、報告等功能。這些測試對於確保您的應用程式正常運作並且不會引入新的錯誤至關重要。
以上是Ecom 賽普拉斯測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。