ホームページ > バックエンド開発 > Python チュートリアル > FastAPI と Postman を使用した負荷テスト: 総合ガイド

FastAPI と Postman を使用した負荷テスト: 総合ガイド

Mary-Kate Olsen
リリース: 2025-01-03 05:38:39
オリジナル
984 人が閲覧しました

あなたのスタートアップが勢いを持ち始めるこのシナリオを想像してみてください。ユーザー数が一気に増加!そして今ではユーザー数が 10 人から 100 人に継続的に増加し、かなり長い間アプリケーションを使用しています。いくつかのボタンをクリックし、いくつかの機能を使用し、バックエンド サーバーからリクエストを送信します...

このような状況で望ましくないのは、準備ができていないことです。アプリケーションがユーザーにとって信頼性利用可能であることを確認したいと考えています。ここでテストが登場します。ここで説明するのは、この種のシナリオのテストに適した特定のタイプのテスト、負荷テストです。

このガイドでは、FastAPI とその自動化された OpenAPI 仕様生成を使用して、負荷テスト用の Postman コレクションを生成するプロセスを合理化することに焦点を当てます。最後には、FastAPI の OpenAPI 仕様と Postman を利用してアプリケーションを大規模にテストする方法がわかるようになります。


?負荷テストに FastAPI と Postman を使用する理由

FastAPI には OpenAPI サポートが組み込まれているため、API の文書化とテストが簡単になります。 FastAPI と Postman を組み合わせることで、次のことが可能になります。

  • FastAPI API の OpenAPI ドキュメントから Postman コレクションを自動的に生成します
  • コレクションを Postman に直接インポートすることで、リクエストのセットアップを簡素化します
  • Postman の強力なテスト機能とスクリプト機能を活用し、動的データを生成します。
  • Postman の CLI ツールである Newman を使用してプログラムでテストを拡張し、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's Collection Runner を使用したパフォーマンス テストの実行

Postman には、ユーザー トラフィックをシミュレートし、API のパフォーマンスを評価できる組み込みのパフォーマンス テスト機能が含まれるようになりました。

4.1 コレクションランナーの起動

  1. Postman の「ランナー」ボタン (ビーカーのアイコン) をクリックします。
  2. FastAPI OpenAPI JSON.4.2 Set Test Parameters からインポートされたコレクションを選択します

4.2 パフォーマンス テスト設定の構成

  • 仮想ユーザー: 同時負荷をシミュレートする仮想ユーザーの数を指定します。
  • テスト期間: テストを実行する期間を設定します。
  • 負荷プロファイル: 固定、ランプアップ、スパイク、またはピーク負荷プロファイルから選択して、さまざまなトラフィック パターンをシミュレートします。4.3 負荷テストを実行します

4.3 パフォーマンステストの実行

「実行」をクリックしてパフォーマンス テストを開始します。 Postman は、平均応答時間、エラー率、スループットなどのリアルタイムのパフォーマンス指標を表示します。


?ステップ 5: テスト結果の分析

テストが完了したら、結果を分析してパフォーマンスのボトルネックを特定します。

  • 応答時間: 応答時間がアプリケーションのパフォーマンス基準を満たしているかどうかを確認します。
  • エラー率: テスト中に発生したエラーを特定し、その原因を調査します。
  • スループット: 1 秒あたりに処理されるリクエストの数を評価し、予想される負荷と一致していることを確認します。

Postman は詳細なメトリクスを提供し、複数のテスト実行を比較して、時間の経過に伴うパフォーマンスの変化を追跡できます。


? FastAPI と Postman を使用した負荷テストのベスト プラクティス

  1. OpenAPI ドキュメントを最新の状態に保つ: 正確なテストのために、FastAPI ドキュメントが API の現在の状態を反映していることを確認します。
  2. 動的データを使用する: テスト データに変動性を組み込んで、現実世界の多様なシナリオをシミュレートします。
  3. システム リソースの監視: 監視ツールを使用して、テスト中に CPU、メモリ、およびネットワークの使用状況を監視します。
  4. テストの自動化: 継続的な評価のためにパフォーマンス テストを CI/CD パイプラインに統合します。
  5. 結果に基づいて反復する: パフォーマンス テストの結果に基づいてテストとアプリケーションを定期的に更新します。

?結論

FastAPI の OpenAPI 仕様と Postman のパフォーマンス テスト機能を活用することで、ユーザー トラフィックを効果的にシミュレートし、潜在的なパフォーマンスの問題を特定できます。このアプローチにより、さまざまな負荷条件下でも FastAPI アプリケーションの堅牢性と応答性を確保できます。

テストをお楽しみください!

以上がFastAPI と Postman を使用した負荷テスト: 総合ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート