搜尋
首頁web前端js教程掌握 Cypress API 測試:附有範例的綜合指南

應用程式介面,通常稱為 API,是軟體開發生命週期的重要方面,不僅從開發的角度來看,而且從測試的角度來看。這些 API 促進不同系統之間的互動以交換資料。因此,徹底測試這些 API 以確保應用程式的無縫運作變得極為重要。

在本文中,我們將探索使用 Cypress 測試框架進行 API 測試,並了解如何自動化 API 來進行高效測試。我們將在本文中介紹以下幾點 -

API 檢定概述

API 測試涉及向後端伺服器發送 HTTP 請求(無論是 GET、POST、PUT、DELETE(或其他方法))並檢索回應。一旦檢索到回應,就會對其進行驗證以確保已收到預期值。以下列出了 API 測試的一些關鍵面向

  • 驗證狀態代碼 – 對回應中的狀態代碼進行驗證,以確保收到所需的狀態代碼。例如,需要 200 個狀態代碼才能確保成功。您可以參考 wiki 文件中用於 HTTP 請求的其他標準狀態碼。
  • 回應正文斷言 – 驗證 HTTP 回應正文,以確保 XML 或 JSON 包含預期資料並具有正確的結構。
  • 測試請求參數 – 透過在參數和標頭中傳遞不同的值來驗證 API 的行為。
  • 身份驗證和授權 - 驗證正確的身份驗證機制和安全方面。 在測試 API 時,考慮上述幾點以確保 API 的端對端功能沒有錯誤。

利用 Cypress 進行 API 檢定

Cypress 是一種流行的前端測試工具,用於瀏覽器和端到端自動化測試。 Cypress 具有網路請求功能,這使其成為 API 測試的好選擇。 Cypress 為 API 測試提供的一些關鍵功能是 -

  • 語法熟悉 – 與 UI 測試類似,Cypress API 指令使用相同的 .should() 和 .then() 語法。
  • 內建斷言 –我們可以輕鬆地使用 Cypress 提供的斷言來斷言 API 請求的狀態代碼、標頭甚至回應正文。
  • 重試失敗的請求 –Cypress 會自動重試失敗的請求,以確保沒有網路或其他類似問題。

詳細的文件 –Cypress 擁有詳細記錄的請求和斷言,可以輕鬆獲得運行支援。

Cypress API 測試的主要特點

Cypress 具有多種功能,可協助您有效且有效率地執行 API 測試。以下討論一些功能 -

  • cy.wait() – 提供等待網路請求的機制,並協助載入非同步資料。
  • cy.route() – 協助將測試請求路由到特定處理程序。
  • cy.server() – 幫助維護測試套件的整個伺服器。
  • 測試運行者 – 幫助並行執行測試以實現快速週轉時間。
  • cy.login() – 透過在呼叫之前使用單一指令設定授權標頭來協助發出安全的 API 請求。
  • cy.intercept() – 控制回應,或透過攔截請求來模擬行為。 有了這些功能,使用者就可以非常輕鬆方便地開始編寫具有增強功能和高效框架的 API 測試。

現在我們了解了 Cypress 如何幫助自動化我們的 API,讓我們使用 Cypress 編寫一個簡單的 API 測試。但在此之前,您需要確保滿足以下先決條件 -

  • 安裝 Visual Studio 等 IDE(這是最常用的 IDE,但您也可以參考其他 IDE,例如 IntelliJ)
  • 在系統中安裝 Node.js 現在讓我們逐步完成使用 Cypress 編寫第一個 API 測試的步驟。

使用 Cypress 寫第一個 API 檢定

在本文中,我們將介紹使用 GET、POST、PUT 和 DELETE 方法發送 HTTP 請求的簡單場景。但在開始編寫測試腳本之前,我們將設定環境。

  1. 在您的系統本機建立一個資料夾,我在我的系統中建立了一個名為 CypressAPITests 的資料夾。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

柏樹 API
2.接下來,開啟 Visual Studio Code 編輯器並開啟在步驟 #1 中建立的資料夾。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

3.現在您已經開啟了該資料夾,下一步是設定節點項目。為此,請在終端機中使用命令 npm init -y,這將建立一個 package.json 檔案。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

4.現在,我們將使用命令 npx cypress install 從終端機安裝 Cypress(如果尚未安裝)。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

5.現在,我們將為測試建立設定文件,為此,我們將在終端機中運行命令 npx cypress open。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

6. Cypress 工具開啟後,選擇 E2E 測試。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

7.點選下一個畫面上的「繼續」。

8.設定檔設定完成後,回到 Visual Studio Code 編輯器,您將看到設定檔已建立。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

9.至此Cypress已經安裝成功,環境也已經搭建完畢。我們現在將開始編寫測試。

我們將使用一些虛擬 API 呼叫來示範 Cypress API 自動化。

在 Visual Studio Code 編輯器中,在 Cypress 目錄下建立一個資料夾 e2e。在 e2e 資料夾下,您可以建立另一個名為 APITests 的資料夾。請注意,您可以根據需要選擇資料夾名稱。

現在我們將開始編寫我們的第一個測試文件。我們將在 APITests 資料夾下建立一個檔案。我們將其命名為 HttpGetRequest。該檔案名稱的副檔名為 .cy.js,如下面的快照所示 -

Mastering Cypress API Testing: A Comprehensive Guide with Examples
現在我們開始編寫主要程式碼。在此之前,讓我們先來看看請求的基本語法 -

cy.request(METHOD,url,body)

在使用 Cypress 發出的請求中,url 是必填參數,但 Method 和 body 等其他參數是可選的。您可以查看 Cypress 官方文件中的不同請求語法,以更好地了解我們如何以不同的方式使用它。

在我們的範例場景中,我們將使用 GET 方法來取得一些資源,因此我們將使用 Method 和 url 作為 cy.request 的參數。

cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
此命令將對伺服器進行 API 呼叫。

接下來,我們將斷言一些回應值,例如狀態碼。

.its('狀態')
.should('等於',200);
這行程式碼將驗證回應狀態碼並斷言其值為 200。

讓我們看看這段程式碼組合在一起後的樣子:

描述('HTTPGet',()=>{

it('GET 請求',()=>{

cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
.its('狀態')
.should('等於',200);

})

})
編寫完 GET 請求的程式碼後,我們將執行相同的操作。要執行它,我們可以使用兩種方式中的任何一種 -

  1. 透過終端執行
  2. 透過Cypress工具執行 我們將一一看看如何執行。

透過終端執行

要透過終端機執行 Cypress 程式碼,請開啟終端機視窗並簡單地傳遞命令:

npx cypress run –spec「檔案路徑」

在上面的命令中,檔案路徑是您要執行的檔案的相對路徑。下面的快照顯示了 HTTPGetRequest 檔案在我的系統上的執行情況 -

Mastering Cypress API Testing: A Comprehensive Guide with Examples

可以看到測試執行成功,我們的API測試已經通過了。

現在讓我們嘗試透過 Cypress Tool 執行相同的測試。

透過 Cypress 工具執行

1.只需編寫指令 npx cypress open 即可開啟工具。

  1. 看到工具視窗開啟後,按一下「E2E 測試」。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. 現在選擇任意瀏覽器。我選擇 Electron。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. 您將看到 Electron 瀏覽器打開,並顯示我們編寫的 Visual Studio Code 規格。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

  1. 選擇 HttpGetRequest,您將看到執行開始並顯示日誌。

Mastering Cypress API Testing: A Comprehensive Guide with Examples

您已經執行了第一個 Cypress API 自動化測試。我們現在將增強程式碼以執行其他幾個 HTTP 方法。

POST 方法

執行 POST HTTP 請求的程式碼-

描述('HTTPGet',()=>{

it('POST 請求',()=>{
cy.request({
方法:'POST',
url: 'https://dummy.restapiexample.com/api/v1/create',
正文:{
"name":"測試貼文",
"工資":"1234",
"年齡":"23"

}
})
.its('狀態')
.should('等於',200);
})
})
執行上述程式碼後,日誌將顯示執行結果,如下所示-

Mastering Cypress API Testing: A Comprehensive Guide with Examples
在接下來的示範中,我們將使用另一個假 API 集合,並了解 HTTP 請求方法如何為它們運作。

PUT 方法

執行 PUT HTTP 請求的程式碼-

描述('HTTPPut',()=>{

it('PUT 請求',()=>{
cy.request({
方法: 'PUT',
url: 'https://jsonplaceholder.typicode.com/posts/1',
正文:{
id: 1,
title: '這是 PUT 更新',
body: '這是 PUT 更新正文',
使用者 ID: 1,
}
})
.its('狀態')
.should('等於',200) ;
})
})

上面程式碼的執行結果顯示在下面-

Mastering Cypress API Testing: A Comprehensive Guide with Examples

刪除方法

執行刪除 HTTP 請求的程式碼(請注意,我在上面使用的相同範例中附加了以下程式碼段)-

it('刪除請求',()=>{
cy.request({
方法:'刪除',
url: 'https://jsonplaceholder.typicode.com/posts/1',
})
.its('狀態')
.should('等於',200) ;
})
由於 PUT 和 DELETE 請求都在同一個檔案中,因此這兩個方法都被執行,結果如下所示 -

Mastering Cypress API Testing: A Comprehensive Guide with Examples
所以,就是這樣,您現在知道如何使用 Cypress 執行不同方法的基本 HTTP 請求。現在您可以繼續嘗試在您的專案中實作 Cypress API 測試,看看您能夠如何輕鬆地以快速週轉時間測試 API。

結論

在了解了 API 和 Cypress 的 API 測試基礎知識後,我們得出以下幾點結論 -

  1. Cypress API 測試提供了一組強大的工具,可幫助您熟悉 Cypress 的 UI 測試語法。
  2. 我們可以方便地使用斷言來驗證回應狀態碼和任何其他回應參數。

資料來源:本文原刊於 testgrid.io。

以上是掌握 Cypress API 測試:附有範例的綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python vs. JavaScript:性能和效率注意事項Python vs. JavaScript:性能和效率注意事項Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript的起源:探索其實施語言JavaScript的起源:探索其實施語言Apr 29, 2025 am 12:51 AM

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

幕後:什麼語言能力JavaScript?幕後:什麼語言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來:趨勢和預測Python和JavaScript的未來:趨勢和預測Apr 27, 2025 am 12:21 AM

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python vs. JavaScript:開發環境和工具Python vs. JavaScript:開發環境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

JavaScript是用C編寫的嗎?檢查證據JavaScript是用C編寫的嗎?檢查證據Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境