想像一下這樣的場景,您的新創公司開始受到關注。用戶數突然增加!現在,用戶數量不斷從 10 個增加到 100 個,並且已經使用您的應用程式相當長一段時間了。點擊一些按鈕,使用一些功能,向後端伺服器發出請求...
在這種情況下你不希望的是毫無準備。您希望確保您的應用程式對使用者可靠並且可用。這就是測試的用武之地,我們在這裡討論的是一種適合測試這種場景的特定類型的測試,負載測試。
在本指南中,我們將專注於使用 FastAPI 及其自動 OpenAPI 規範產生來簡化產生用於負載測試的 Postman 集合的過程。最後,您將了解如何利用 FastAPI 的 OpenAPI 規格和 Postman 大規模測試您的應用程式。
FastAPI 具有內建的 OpenAPI 支持,可輕鬆記錄和測試您的 API。將 FastAPI 與 Postman 結合,您可以:
FastAPI 和 Postman 之間的協同作用使開發人員能夠快速模擬真實的流量場景並識別應用程式中的瓶頸。
確保您的 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可用。
開啟瀏覽器並導航至 http://127.0.0.1:8000/openapi.json 以確保 OpenAPI JSON 可以存取。
您可以使用瀏覽器或透過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。
如果您剛剛複製了端點 URL,則只需將 URL 貼上到點擊 匯入
時出現的模式頂部的輸入列即可檢查匯入的集合以確保所有端點均已正確配置。您也可以根據身份驗證或資料管理的需要新增環境變數或腳本。
要模擬真實場景,請修改您的要求以包含動態資料。例如,使用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 之間的隨機值。
在 Postman 中使用集合變數來管理 API 基本 URL、驗證令牌或動態參數,而無需您的集合。這簡化了整個集合的更新和測試。
Postman 現在包含內建效能測試功能,可讓您模擬使用者流量並評估 API 的效能。
點選「執行」開始效能測試。 Postman 將顯示即時效能指標,例如平均回應時間、錯誤率和吞吐量。
測試完成後,分析結果以確定效能瓶頸:
Postman 提供詳細的指標,並允許您比較多個測試運行以追蹤效能隨時間的變化。
透過利用FastAPI的OpenAPI規格和Postman的效能測試功能,您可以有效地模擬使用者流量並識別潛在的效能問題。這種方法使您能夠確保 FastAPI 應用程式在不同的負載條件下保持穩健和回應。
測試愉快!
以上是使用 FastAPI 和 Postman 進行負載測試:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!