首頁 > 後端開發 > Python教學 > 使用 FastAPI 和 Postman 進行負載測試:綜合指南

使用 FastAPI 和 Postman 進行負載測試:綜合指南

Mary-Kate Olsen
發布: 2025-01-03 05:38:39
原創
983 人瀏覽過

想像一下這樣的場景,您的新創公司開始受到關注。用戶數突然增加!現在,用戶數量不斷從 10 個增加到 100 個,並且已經使用您的應用程式相當長一段時間了。點擊一些按鈕,使用一些功能,向後端伺服器發出請求...

在這種情況下你不希望的是毫無準備。您希望確保您的應用程式對使用者可靠並且可用。這就是測試的用武之地,我們在這裡討論的是一種適合測試這種場景的特定類型的測試,負載測試

在本指南中,我們將專注於使用 FastAPI 及其自動 OpenAPI 規範產生來簡化產生用於負載測試的 Postman 集合的過程。最後,您將了解如何利用 FastAPI 的 OpenAPI 規格和 Postman 大規模測試您的應用程式。


?為什麼要使用 FastAPI 和 Postman 進行負載測試?

FastAPI 具有內建的 OpenAPI 支持,可輕鬆記錄和測試您的 API。將 FastAPI 與 Postman 結合,您可以:

  • 從 FastAPI API 的 OpenAPI 文件自動產生 Postman 集合
  • 透過將集合直接匯入 Postman 來簡化請求設定
  • 利用 Postman 強大的測試和腳本功能進行動態資料產生。
  • 以程式方式擴展測試使用 Newman(Postman 的 CLI 工具)進行 CI/CD 整合。

FastAPI 和 Postman 之間的協同作用使開發人員能夠快速模擬真實的流量場景並識別應用程式中的瓶頸。


?️ 第 1 步:設定 FastAPI 和 Swagger

1.1 啟動您的 FastAPI 應用程式

確保您的 FastAPI 應用程式在本機或伺服器上運行。例如:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
登入後複製
登入後複製

伺服器啟動時,OpenAPI JSON端點將在http://127.0.0.1:8000/openapi.json可用。

1.2 驗證 OpenAPI JSON

開啟瀏覽器並導航至 http://127.0.0.1:8000/openapi.json 以確保 OpenAPI JSON 可以存取。


?步驟 2:將 OpenAPI JSON 匯出到 Postman

2.1 複製OpenAPI端點

您可以使用瀏覽器或透過curl在本機上儲存OpenAPI JSON檔案:

curl -o openapi.json http://127.0.0.1:8000/openapi.json
登入後複製
登入後複製

或只要複製 OpenAPI 端點 URL,http://127.0.0.1:8000/openapi.json。

2.2 將OpenAPI JSON導入Postman

  1. 開啟 Postman,然後點選左上角的匯入
  2. 選擇下載的 openapi.json 檔案。
  3. Postman 將自動產生一個包含 OpenAPI 規格中定義的所有端點的集合。

如果您剛剛複製了端點 URL,則只需將 URL 貼上到點擊 匯入

時出現的模式頂部的輸入列即可

Load Testing using FastAPI and Postman: Comprehensive Guide

2.3 組織並測試您的集合

檢查匯入的集合以確保所有端點均已正確配置。您也可以根據身份驗證或資料管理的需要新增環境變數或腳本。


?步驟 3: 準備在 Postman 中進行負載測試

3.1 將動態資料加入您的請求中

要模擬真實場景,請修改您的要求以包含動態資料。例如,使用Postman的內建變數或預先要求腳本:

預請求腳本範例:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
登入後複製
登入後複製

負載範例:

curl -o openapi.json http://127.0.0.1:8000/openapi.json
登入後複製
登入後複製

您也可以使用 $randomInt 等內建腳本來產生隨機值。
使用內建腳本的範例用例:

pm.variables.set("random_id", Math.floor(Math.random() * 10000));
登入後複製

這個內建腳本將在每個請求中傳回 0-1000 之間的隨機值。

3.2 配置集合中的變數

在 Postman 中使用集合變數來管理 API 基本 URL、驗證令牌或動態參數,而無需您的集合。這簡化了整個集合的更新和測試。

Load Testing using FastAPI and Postman: Comprehensive Guide


?步驟 4:使用 Postman 的 Collection Runner 執行效能測試

Postman 現在包含內建效能測試功能,可讓您模擬使用者流量並評估 API 的效能。

4.1 啟動 Collection Runner

  1. 點選 Postman 中的 Runner 按鈕(燒杯圖示)。
  2. 選擇從 FastAPI OpenAPI JSON.4.2 匯入的集合設定測試參數

4.2 配置性能測試設置

  • 虛擬使用者:指定模擬並發負載的虛擬使用者數量。
  • 測試持續時間:設定測試應運行的持續時間。
  • 負載設定檔:在固定、上升、尖峰或尖峰負載設定檔之間進行選擇以模擬不同的流量模式。 4.3 執行負載測試

4.3 執行性能測試

點選「執行」開始效能測試。 Postman 將顯示即時效能指標,例如平均回應時間、錯誤率和吞吐量。


?第 5 步:分析測試結果

測試完成後,分析結果以確定效能瓶頸:

  • 回應時間:檢查回應時間是否符合您的應用程式的效能標準。
  • 錯誤率:識別測試期間發生的任何錯誤並調查其原因。
  • 吞吐量:評估每秒處理的請求數,以確保其與預期負載保持一致。

Postman 提供詳細的指標,並允許您比較多個測試運行以追蹤效能隨時間的變化。


?使用 FastAPI 和 Postman 進行負載測試的最佳實踐

  1. 保持 OpenAPI 文件更新:確保您的 FastAPI 文件反映 API 的當前狀態,以便進行準確的測試。
  2. 使用動態資料:結合測試資料的變異性來模擬不同的現實場景。
  3. 監控系統資源:使用監控工具觀察測試過程中CPU、記憶體和網路的使用情況。
  4. 自動化測試:將效能測試整合到 CI/CD 管道中以進行持續評估。
  5. 根據發現進行迭代:根據效能測試結果定期更新您的測試和應用程式。

?結論

透過利用FastAPI的OpenAPI規格和Postman的效能測試功能,您可以有效地模擬使用者流量並識別潛在的效能問題。這種方法使您能夠確保 FastAPI 應用程式在不同的負載條件下保持穩健和回應。

測試愉快!

以上是使用 FastAPI 和 Postman 進行負載測試:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板