Postman 負荷テストチュートリアル
今日の多くのウェブサービスはAPI(アプリケーションプログラミングインターフェース)を組み込み、システム間で多様な情報を交換できるようにしています。APIは重要なサービスとユーザー間を強力に結びつける役割を果たします。重要なシステムコンポーネントと同様に、APIの評価も不可欠です。PostmanのようなサードパーティのAPIテストツールを使用することで、手動および自動テストを実施でき、API監視機能も含まれています。
PostmanはAPIリクエストの検証において広く評価されているツールです。一般的なAPIテストでの利用は広く普及していますが、Postmanを負荷テストに使用するのは簡単ではありません。
このPostman負荷テストチュートリアルでは、Postmanとは何か、Postman負荷テストの概要、そしてPostmanを使った負荷テストの実施方法を解説し、Postmanでの負荷テストを始められるようにします。
Postmanとは何か?
Postmanは、開発者がAPIを協力的かつ使いやすい環境でテスト、設計、管理するのを助ける広く使用されているツールです。Postmanを使えば、特にRESTful APIにおいてHTTPリクエストの作成、送信、テストが簡単に行えます。さまざまなHTTPメソッド、認証タイプをサポートし、APIテストのワークフローの整理や自動化も可能であり、API開発プロセスで重要なツールとなっています。Postmanはマイクロサービスやクラウドプラットフォームに分散したサービスがあるAPI駆動の環境でよく使われます。今日ではマイクロサービス、コンテナ化アプリケーション、クラウドネイティブアーキテクチャを含む最新のAPIエコシステムでも広く利用されており、API検証は開発ワークフローの重要な部分となっています。
Postmanはソフトウェア開発ライフサイクルで使用されるAPI開発ツールです:
- API開発
- APIテスト
- APIドキュメンテーション
しかし、Postmanは開発だけでなく、ブラウザのようにリクエストを送信してレスポンスを受け取ることも可能です。さらに、リクエスト送信前やレスポンス受信後に実行するスクリプトを追加でき、APIとのやり取りをより制御できます。リクエストはコレクションに保存でき、必要に応じて特定の順序で実行できるため、ワークフローを整理されたものにします。
APIテストに関しては、PostmanはAPIが期待通りに動作しているか確認する優れたツールです。APIがデータを正しく取得、保存、更新しているか検証するため、機能テストの重要な部分を担います。ただし、Postmanはパフォーマンステスト向けに設計されていません。小規模なテストでは応答時間のチェックは可能ですが、実際のトラフィックや高負荷をシミュレートすることはありません。したがって、APIが負荷にどう耐えるか知りたい場合は専用の負荷テストツールが必要です。
より詳細なパフォーマンステストにはLoadViewのような専門的な負荷テストツールが必要です。LoadViewのようなツールは、APIに負荷をかけ現実の条件を模擬し、APIが多量のトラフィックや高負荷に耐えられるかを確かめるための包括的な指標を取得できます。これはAPIが管理されたテスト環境だけでなく、すべての状況で良好なパフォーマンスを発揮できることを保証するために重要です。
Postmanの機能
Postmanは、Postman APIやワークフロー制御から回帰テスト用の組み込みモニターまで、包括的なAPIテスト機能を備えた幅広い機能をユーザーに提供します。多機能である一方で、すべてのAPIテスターにとって不可欠なコア機能がいくつかあります。これらの重要な機能を詳しく見ていきましょう。
- リクエストのインポート – Postmanには、生のCURLテキストを貼り付けて、リクエストURL、ヘッダー、リクエストボディ、クエリパラメータ、認証トークンなど詳細をきちんとフォーマットしたリクエストに変換できるインポート機能があります。
- 複数のプロトコルとサポート – PostmanのAPIクライアント機能では、REST、SOAP、WSDL、GraphQLのリクエストを送信可能です。
- テストケースの作成 – APIを実行して応答の検証を助けるテストケースを作成でき、JSON/XML応答のアサーションや応答コードの検証も含みます。
- コレクション – PostmanはAPIをプロジェクトごとのフォルダ構造に整理するためのコレクション作成を支援します。特定のコレクションに含まれるすべてのAPIをまとめて実行することも可能です。
- JSONスキーマ検証 – JSON(JavaScript Object Notation)スキーマを使って、リクエストやレスポンスの構造を定義できます。これによりPostman内でJSONコンテンツの整理や構造化が進み、可読性も向上します。
- 環境と動的変数の利用 – Postmanでは変数を作成でき、それらの変数に異なる値を割り当てられます。同じAPIを複数の実際の環境で使用する際に役立ちます。
- APIをコードに変換 – PostmanはAPIリクエストをJavaScript、Golang、Java、PHP、Pythonなど主要な言語のコードに変換できます。
Postman負荷テストの利点
- パフォーマンス評価: 負荷テストは、同時ユーザー数の異なるレベルでAPIの性能を評価するのに役立ちます。システムが増加する負荷をどのように処理するか、パフォーマンスの期待に応えているかを理解できます。
- スケーラビリティテスト: Postmanの負荷テスト機能により、APIのスケーラビリティをテストでき、トラフィックやデータ量の増加にどの程度対応できるかを把握できます。
- ボトルネックの特定: 負荷テストはAPIインフラの潜在的なボトルネックや弱点を発見するのに役立ちます。この情報はシステムの最適化や調整に不可欠で、高負荷を効率的に処理できるようにします。
- ストレステスト: PostmanはAPIに重い負荷をかけることでストレス状態をシミュレートできます。これによりシステムの限界点や弱点を理解し、必要な改善を行えます。
- 同時実行テスト: Postmanの負荷テストでは、多数ユーザーが同時にリクエストする際のAPI性能を検証できます。同時ユーザー操作が想定されるアプリケーションに重要です。
- コスト効率: 開発初期にパフォーマンス問題を特定し対処することで、Postmanによる負荷テストは本番環境でのダウンタイムや高額な修正の防止に貢献し、コスト削減につながります。
- ユーザー体験の向上: APIが高負荷に耐えられ、ストレス下でも良好に機能することを確保することで、ユーザーにより滑らかで信頼性の高い体験を提供できます。
Postmanでの負荷テストの限界
PostmanはAPIテストと開発に優れていますが、負荷テストにおいては限界があります。大きな問題の一つは、多数の同時ユーザーや複雑なシナリオを効果的にシミュレートできないことです。Postmanの主な焦点は機能テストと検証にあり、ストレス下でのパフォーマンス評価は重視していません。さらに、グラフィカルインターフェースやスクリプト機能は、LoadViewのような専用負荷テストツールと比べ、大規模負荷や複雑なパフォーマンス指標分析に対応しにくいです。包括的な負荷テストが必要な場合、専用の負荷テストツールを使用することが推奨されます。
Postman REST/RESTFULツールによる負荷テスト
バックエンドアプリケーションのテスト時には、想定通りに機能するかを確認する機能テストが標準的なプロセスです。アプリケーションは数百、数千のユーザーに同時利用される可能性があるため、増加するトラフィックに耐えられるかを測るパフォーマンステストも必要です。アプリケーションの変更ごとにベンチマークと検証を行う必要があります。
PostmanでWeb APIの機能をテストし、APIコールコレクションから負荷テストを生成したい場合は、LoadViewのような負荷テストツールを利用できます。LoadViewはAPIだけでなく、外部および内部のWebアプリケーション、ウェブサイトやサーバーのリアルブラウザベースの負荷テストを提供します。
Postman負荷テストのセットアップ
PostmanコレクションのWebアプリケーション負荷テストを設定する方法をステップごとに見ていきます。
ステップ1
開始前に、Postmanコレクションをエクスポートしてください。「Get Public link」オプションを選択すれば簡単にLoadViewにインポートできます。
- 注意: 環境変数はコレクションに保存されないため、Postmanコレクションはローカル変数のみを使っていることを確認してください。
ステップ2
LoadViewプラットフォームを開いて、Create New負荷テストを選択します。
ステップ3
ここでLoadViewで利用可能なさまざまな負荷テストのタイプが表示されます。
Webアプリ、ウェブサイト、API。私たちのケースでは、APIテストを開始するためにPostmanコレクションオプションを選びます。
ステップ4
新しいウィンドウが開きます。ここでエクスポートしたPostmanコレクションをインポートし、Create Deviceをクリックしてください。
ステップ5
デバイスが正常に作成されたら、Test Scenario画面が表示され、そこでLoad Typeを設定できます。テストの目的により異なります。
- Load Based Curve(負荷ベース曲線):既知のユーザー数で負荷テストを実行し、設定したウォームアップ時間後にトラフィックを増加させます。
- Goal-Based Curve(目標ベース曲線):特定のAPIの目的のトランザクション数/秒を達成し、ターゲットの同時ユーザー数にスケールアップする場合に用いる設定です。
- Dynamic based Curve(動的ベース曲線):ユーザー数、最大ユーザー数、テスト時間の動的な値を選択でき、テスト中にリアルタイムで調整可能です。
ステップ6
すべてのAPIのリストを含むテストシナリオを作成したら、APIの負荷およびストレステストを実行できます。
負荷試験の実行後、APIとシステムがさまざまな負荷下でどのように動作したかを示す詳細なレポート、ダッシュボード、指標が提供されます。多くのチームはこれらの負荷試験の結果を可観測性プラットフォームと連携し、高トラフィック時のインフラメトリクス、データベースパフォーマンス、サービス依存関係を監視しています。
Postmanコレクション負荷テストのJenkins連携
LoadViewでのPostmanコレクション負荷テストの連携と実行を検証したので、このテストをCI/CDパイプラインへ組み込むことで、一貫したフィードバックとパフォーマンス結果を得られます。
LoadViewはJenkinsとシームレスに統合可能で、リアルブラウザの同時接続を使い、完全管理クラウド環境からウェブサイト、Webアプリケーション、APIのストレステストを実施できます。LoadViewプラグインはJenkins内で新機能や更新の負荷テストを可能にします。
前節でLoadViewで作成したPostmanコレクションテストシナリオを例に、Jenkinsとの統合の手順を見てみましょう。
ステップ1
Jenkinsとテストを連携するには、前節のPostmanテストシナリオを使います。
ステップ2
ユニークなUIDを作成し、Integration UIDをコピーします。これはJenkins統合のセキュリティトークンとして使います。
ステップ3
PostmanコレクションのテストシナリオIDは、シナリオ設定ページまたはテスト履歴ページ(Test Manager > テストアクションメニュー > History)で確認できます。
JenkinsのLoadViewプラグイン
LoadViewプラグインの設定手順は以下の通りです:
- Jenkinsにログインします。
- JenkinsのCredentials > Add Credentials > LoadView Security Token (UID)に移動し、資格情報を設定・検証します。
- 種類 – LoadView Security Token (UID)
- スコープ – Globalを選択
- ID – デフォルトのままかユニークなIDを指定
- 説明 – 資格情報を識別するためのユニークな説明を指定
- UID – LoadViewアカウントから負荷テストWeb APIのUIDを貼り付けます。UID追加後、Validate UIDでJenkinsがLoadView APIにアクセス可能か確認します。
- 次にジョブを選択し、Configureをクリックします。
4. Build > Post-build Actions > Add post-build action > LoadView-Run load test scenarioを選択し、ビルドのLoadViewストレステスト設定を指定します:
- 資格情報 – 説明でAPIキーを選択
- シナリオID – ビルドで使用するテストシナリオIDを貼り付けます。LoadViewのシナリオページからIDをコピーしてください。
- エラー許容値 – テスト中に発生したエラーセッション(ターゲットリソースへのアクセス失敗、キーワード/画像未検出等)の許容割合を指定します。指定値を超える場合はJenkinsでビルド失敗と見なされます。
- 平均時間 – テスト実行中に計測される平均応答時間の上限を設定します。上限に達するとビルドはJenkinsで失敗とされます。
5. 保存をクリックします。
LoadViewテスト結果の表示
最後に、LoadViewを用いたPostmanコレクションのJenkins統合が完了しました。ストレステストが進行中は、JenkinsのConsole Outputにリアルタイムでステータスが表示されます。
まとめ:PostmanでAPIの負荷テストを行う
本ガイドでは、LoadViewを用いてPostmanコレクションで同時ユーザーをシミュレートし、LoadViewのJenkins連携によってこのステップを自動化する方法を解説しました。最近、内部および外部アプリケーションに依存する複雑なシステム評価に必要なツールは効率化され、ボトルネックや問題点の特定がより明確に行えるようになっています。
LoadViewでは、開発のあらゆる段階で負荷テストのパートナーとして、どのような複雑さでもサポートすることを目指しています。負荷テストは複雑である必要はなく、LoadViewのプラットフォームはAPIの負荷テストを簡単にします。PostmanコレクションをLoadViewにシームレスに統合して負荷テストを行うことができます。
LoadViewの専門チームは、負荷テスト戦略の策定や強化を支援します。非技術者でも使いやすい直感的なプラットフォーム、リアルブラウザテスト、ポイントアンドクリックのスクリプティング、およびわかりやすい詳細なレポートが、推測を排除し開発者間の効果的な連携を可能にします。
今日からLoadViewでAPIの負荷テストを始めましょう。無料トライアルにサインアップして無料の負荷テストを受けるか、当社のパフォーマンスエンジニアとのプライベートデモをお申し込みください。エンジニアがLoadViewプラットフォームの全てを案内し、PostmanコレクションへのLoadView統合やJenkinsでの自動化方法をご説明します。
あなたの負荷テストを次のレベルへ
次のレベルへ
無限のスケーラビリティを備えた比類なき機能を体験してください。クレジットカード不要、契約不要。