天天看點

七個步驟覆寫 API 接口測試

作者:Eolink

接口測試作為最常用的內建測試方法的一部分,通過直接調用被測試的接口來确定系統在功能性、可靠性、安全性和性能方面是否能達到預期,有些情況是功能測試無法覆寫的,是以接口測試是非常必要的。首先需要對接口測試的基本資訊做一些了解:

接口測試的意義

  • 低 - 低成本

因為接口的相對穩定性,不需要大量的重新編寫,做好基礎的維護,用例的擴充,能滿足日常的使用範圍

  • 穩 - 相對穩定

當接口自動化建立後,可以相對穩定的運作。接口相對穩定,不會頻繁更換,頂多增加字段或者新增接口(相對于UI測試來說,維護、編寫成本很大,實際過程中一點點的放棄了UI自動化測試)

  • 快 - 執行速度快,回報速度快

涉及到持續內建,把接口內建到 jenkins 上,自動觸發或定時任務觸發,觸發後就回報結果。

測試和監控 API 對確定應用程式的功能和性能變得越來越重要,我們在本文中可以詳細了解完成API 測試的操作步驟,詳細資訊請參照下文:

七個基本步驟

1. 了解 API 的範圍

在嘗試測試 API 之前,了解 API 的作用及其職責是至關重要的。此步驟應從通路 API 文檔開始。應該手動對 API 端點進行一些調用,以深入了解它們的工作方式以及它們傳回的資料。

七個步驟覆寫 API 接口測試

2. 了解使用者流程

在這一步中,應該超越單個 API,檢視使用它的應用程式。嘗試并了解使用者如何使用這些應用程式,以及它們的使用會觸發哪些 API 調用。這将幫助你了解API在實際生活中使用的場景,并使你能夠開發測試,以測試和驗證 API 在實際生活中的使用方式。

例如,如果直接從 Web 應用程式調用 API,可以使用浏覽器開發人員工具記錄對 API 發出的所有請求并檢查請求和響應負載。這有助于了解 API 的使用方式。

七個步驟覆寫 API 接口測試

3. 編寫API測試

  • 測試接口選擇

項目有幾十個或者幾百個接口。一方面,不可能對每一個接口都做自動化測試,是以要分主要接口和非主要接口;另一方面,也不是每個接口都适合做自動化測試,所有要分穩定接口和不穩定接口;還有一方面,有些接口隻能調用一次,所有要分可重複執行接口和不可重複執行接口。當然其中還有其他銀色影響接口的選擇,要根據實際情況進行篩選,然後對接口逐漸分析,來确定最後需要自動化測試的接口,做到可以在接口層面成本最大化。

  • 注冊接口

這是一個重要的接口,但卻是不可重複執行的接口,因為同樣的資料第二次是無法注冊成功的,是以這個接口不适合做這類自動化。

  • 登入接口

這個接口是可以重複執行的,而且相對于來說不太會随意改動的借口,是以這個接口适合做自動化。

  • 使用者資訊查詢

這個接口可以反複請求,适合做自動化。

結合自身項目并在具體的實踐過程中,我們會發現大多數做自動化的接口都是查詢接口,因為不涉及對資料庫的改動,僅僅是查詢可以重複操作的,而且傳回資料也是相同的,便于對傳回結果的判斷驗證。

4. 覆寫異常情況和邊界值情況

上一節介紹 API 測試接口的選擇,并驗證它在“正常”使用情況下是否按預期工作。在這一步中,判斷 API 在邊界值和異常情況下的行為是否正确。例如:

  • 是否試圖讓一個不存在的實體傳回正确的錯誤代碼(404 響應)?
  • 如果提供了錯誤資料類型的參數(400 響應),API 是否會失敗?
  • 如果我們嘗試通路我們沒有權限的實體(401 響應)會發生什麼?

這一步的技巧是檢視HTTP 錯誤代碼清單(尤其是 4xx 範圍 - 使用者錯誤)并嘗試建立生成這些代碼的場景。

七個步驟覆寫 API 接口測試

5. 針對 Dev 和 Stage 環境執行測試

自動化需要一個幹淨的測試環境,不然很難重複運作起來。自動化測試要做到絕對隻能也是不可能的,尤其運作過程中會遇到髒資料活着異常就會中斷。首先需要在測試環境跑一遍正常流程,中間通過抓包擷取資料資訊,一方面需要确定這些資料作為自動化測試的資料基礎,另一方面需要了解資料結構是什麼,可能是包含清單的字典,也可能是一個純元組。前提是可以測試通過一套流程,不然擷取這些資料沒有必然意義。

編寫測試後,你應該能夠開始在非生産環境中使用它們并看到它們通過。理想情況下,如果正确編寫了測試,應該可以通過向不同環境傳遞不同的變量來針對不同環境執行測試。這可以幫助你開始驗證 API 的開發版本。

6. 持續內建 Jenkins

Jenkins 是一個功能強大的工作,測試人員可以根據各自的測試需求靈活運用其中的部分功能。引進持續內建思想是為了幫助測試人員提高測試效率,一旦可以看到針對開發/階段環境運作的所有測試,你就可以将它們連接配接到你的 CI/CD 管道,以便在你推送新代碼時開始自動化測試過程。這可以通過源代碼管理工具(如 GitHub 或 GitLab)或建構工具(如 Jenkins 或 CircleCI)來完成。這有助于保持測試運作并“強制”使測試保持最新,因為無法在測試失敗的情況下推送代碼。

七個步驟覆寫 API 接口測試

7. 運作測試以監控生産環境

維護 API 測試用例的好處之一是你可以輕松地在多個環境中運作它們。具體來說,你可以在生産環境中定期運作測試以確定其按預期運作。這還可以幫助你收集有關 API 的性能資料,實時檢視性能的降級或更改。

七個步驟覆寫 API 接口測試

以上内容測重于對接口操作流程及一些簡單操作步驟具體的作用,給出的隻是借助工具對于基本操作方向性的指導,沒有詳細的具體實踐,不過沒關系呀,這都是正常的,關于如何使用/借助工作去做接口測試的方式非常多,也不是一兩篇文章能夠全部講完,最重要的是先知道大概的方向,然後就去大膽實踐,在做的過程中成長最快。

繼續閱讀