應用程式介面,通常稱為 API,是軟體開發生命週期的重要方面,不僅從開發的角度來看,而且從測試的角度來看。這些 API 促進不同系統之間的互動以交換資料。因此,徹底測試這些 API 以確保應用程式的無縫運作變得極為重要。
在本文中,我們將探索使用 Cypress 測試框架進行 API 測試,並了解如何自動化 API 來進行高效測試。我們將在本文中介紹以下幾點 -
API 測試涉及向後端伺服器發送 HTTP 請求(無論是 GET、POST、PUT、DELETE(或其他方法))並檢索回應。一旦檢索到回應,就會對其進行驗證以確保已收到預期值。以下列出了 API 測試的一些關鍵面向
Cypress 是一種流行的前端測試工具,用於瀏覽器和端到端自動化測試。 Cypress 具有網路請求功能,這使其成為 API 測試的好選擇。 Cypress 為 API 測試提供的一些關鍵功能是 -
詳細的文件 –Cypress 擁有詳細記錄的請求和斷言,可以輕鬆獲得運行支援。
Cypress 具有多種功能,可協助您有效且有效率地執行 API 測試。以下討論一些功能 -
現在我們了解了 Cypress 如何幫助自動化我們的 API,讓我們使用 Cypress 編寫一個簡單的 API 測試。但在此之前,您需要確保滿足以下先決條件 -
在本文中,我們將介紹使用 GET、POST、PUT 和 DELETE 方法發送 HTTP 請求的簡單場景。但在開始編寫測試腳本之前,我們將設定環境。
柏樹 API
2.接下來,開啟 Visual Studio Code 編輯器並開啟在步驟 #1 中建立的資料夾。
3.現在您已經開啟了該資料夾,下一步是設定節點項目。為此,請在終端機中使用命令 npm init -y,這將建立一個 package.json 檔案。
4.現在,我們將使用命令 npx cypress install 從終端機安裝 Cypress(如果尚未安裝)。
5.現在,我們將為測試建立設定文件,為此,我們將在終端機中運行命令 npx cypress open。
6. Cypress 工具開啟後,選擇 E2E 測試。
7.點選下一個畫面上的「繼續」。
8.設定檔設定完成後,回到 Visual Studio Code 編輯器,您將看到設定檔已建立。
9.至此Cypress已經安裝成功,環境也已經搭建完畢。我們現在將開始編寫測試。
我們將使用一些虛擬 API 呼叫來示範 Cypress API 自動化。
在 Visual Studio Code 編輯器中,在 Cypress 目錄下建立一個資料夾 e2e。在 e2e 資料夾下,您可以建立另一個名為 APITests 的資料夾。請注意,您可以根據需要選擇資料夾名稱。
現在我們將開始編寫我們的第一個測試文件。我們將在 APITests 資料夾下建立一個檔案。我們將其命名為 HttpGetRequest。該檔案名稱的副檔名為 .cy.js,如下面的快照所示 -
現在我們開始編寫主要程式碼。在此之前,讓我們先來看看請求的基本語法 -
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 請求的程式碼後,我們將執行相同的操作。要執行它,我們可以使用兩種方式中的任何一種 -
要透過終端機執行 Cypress 程式碼,請開啟終端機視窗並簡單地傳遞命令:
npx cypress run –spec「檔案路徑」
在上面的命令中,檔案路徑是您要執行的檔案的相對路徑。下面的快照顯示了 HTTPGetRequest 檔案在我的系統上的執行情況 -
可以看到測試執行成功,我們的API測試已經通過了。
現在讓我們嘗試透過 Cypress Tool 執行相同的測試。
1.只需編寫指令 npx cypress open 即可開啟工具。
您已經執行了第一個 Cypress API 自動化測試。我們現在將增強程式碼以執行其他幾個 HTTP 方法。
執行 POST HTTP 請求的程式碼-
描述('HTTPGet',()=>{
it('POST 請求',()=>{
cy.request({
方法:'POST',
url: 'https://dummy.restapiexample.com/api/v1/create',
正文:{
"name":"測試貼文",
"工資":"1234",
"年齡":"23"
}
})
.its('狀態')
.should('等於',200);
})
})
執行上述程式碼後,日誌將顯示執行結果,如下所示-
在接下來的示範中,我們將使用另一個假 API 集合,並了解 HTTP 請求方法如何為它們運作。
執行 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) ;
})
})
上面程式碼的執行結果顯示在下面-
執行刪除 HTTP 請求的程式碼(請注意,我在上面使用的相同範例中附加了以下程式碼段)-
it('刪除請求',()=>{
cy.request({
方法:'刪除',
url: 'https://jsonplaceholder.typicode.com/posts/1',
})
.its('狀態')
.should('等於',200) ;
})
由於 PUT 和 DELETE 請求都在同一個檔案中,因此這兩個方法都被執行,結果如下所示 -
所以,就是這樣,您現在知道如何使用 Cypress 執行不同方法的基本 HTTP 請求。現在您可以繼續嘗試在您的專案中實作 Cypress API 測試,看看您能夠如何輕鬆地以快速週轉時間測試 API。
在了解了 API 和 Cypress 的 API 測試基礎知識後,我們得出以下幾點結論 -
資料來源:本文原刊於 testgrid.io。
以上是掌握 Cypress API 測試:附有範例的綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!