Postman負荷テストチュートリアル



今日の多くのウェブサービスはAPI(アプリケーションプログラミングインターフェース)を組み込み、システム間で多様な情報の交換を可能にしています。APIは重要なサービスとユーザーを強力に結びつける役割を果たします。どんな重要なシステムコンポーネントでもテストが必要であるように、APIの評価も必須です。PostmanのようなサードパーティのAPIテストツールを利用することで、手動および自動のテストを行い、API監視機能も活用できます。

PostmanはAPIリクエストの検証において広く評価されているツールです。一般的なAPIテストの採用は広く行われていますが、Postmanを負荷テストに使用するのは必ずしも簡単ではありません。

このPostman負荷テストチュートリアルでは、Postmanとは何か、Postmanの負荷テスト、そしてPostmanを使った負荷テストの方法を解説し、Postmanで負荷テストを始められるようにします。

Postmanとは?

Postmanは、開発者がAPIのテスト・設計・管理を共同かつ使いやすい環境で行えるよう支援する広く使われているツールです。Postmanを使うことで、開発者はHTTPリクエストを簡単に作成・送信・テストでき、特にRESTful APIに適しています。多様なHTTPメソッド、認証タイプをサポートし、APIテストワークフローの整理と自動化を可能にするため、API開発プロセスに欠かせないツールです。Postmanはマイクロサービスやクラウドプラットフォームに分散されたサービスを持つAPI駆動環境で一般的に使用されています。今日、Postmanはマイクロサービス、コンテナ化されたアプリケーション、クラウドネイティブアーキテクチャを含む現代のAPIエコシステムで広く用いられ、API検証は開発ワークフローの重要な一部となっています。

Postmanはソフトウェア開発ライフサイクルで使われるAPI開発ツールです。

  • API開発
  • APIテスト
  • APIドキュメンテーション

しかし、Postmanは開発だけでなく、ブラウザのようにリクエスト送信やレスポンス受信も行えます。リクエスト送信前やレスポンス受信後にスクリプトを追加でき、APIのやりとりをより細かく制御可能です。リクエストはコレクションに保存でき、必要に応じて特定順序で実行でき、ワークフローの整理に役立ちます。

APIテストにおいて、Postmanは機能が期待通りに動作することを確認する優れたツールです。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だけでなく、ウェブアプリ(外部・内部)、及びウェブサイトやサーバーにも対応しています。

Postman負荷テストセットアップ

ここで、Postmanコレクションを対象としたWebアプリケーション負荷テストのセットアップ方法を段階的に説明します。

ステップ 1

開始前に、Postmanコレクションをエクスポートする必要があります。公開リンクを取得するオプションを選択し、LoadViewへ簡単にインポートできます。

  • 注: Postmanコレクションは環境変数を含まないため、ローカル変数のみを使用していることを確認してください。
Postman Collection Export

ステップ 2

LoadViewプラットフォームにアクセスし、新規作成の負荷テストを選択します。

 

ステップ 3

ここでは、LoadViewが提供する様々な負荷テストタイプが表示されます。

ウェブアプリ、ウェブサイト、APIが選択可能で、当ケースではAPIテスト開始のためPostmanコレクションオプションを選択します。

Load testing type Postman

ステップ 4

新しいウィンドウが開き、エクスポートされたPostmanコレクションをインポートし、デバイス作成をクリックします。

Postman Collection Request

ステップ 5

デバイス作成が成功すると、テストシナリオ画面が表示され、負荷タイプの設定を行います。テスト目的により異なります。

  • 負荷ベースカーブ。 設定されたウォームアップ時間後に既知のユーザー数で負荷テストを実行し、トラフィックを増加させます。
  • 目標ベースカーブ。 特定のAPIで目標のトランザクション数を達成し、同時ユーザー数をスケールアップする際に利用されます。
  • 動的ベースカーブ。 ユーザー数やテスト時間の動的設定が可能で、テスト中にリアルタイムで調整できます。
Postman Collection Load Types

ステップ 6

すべてのAPIを含むテストシナリオを作成後、APIの負荷テストとストレステストを実行できます。

負荷テスト終了後は、APIとシステムが異なる負荷下でどのように動作したかを示す詳細なレポート、ダッシュボード、指標が提供されます。多くのチームはこれらの結果を監視プラットフォームと連携し、高トラフィック時のインフラ、データベース性能、サービス依存関係を監視します。

Postmanコレクション負荷テストのJenkins統合

LoadViewでのPostmanコレクション負荷テストの統合と実行を検証した後、CI/CDパイプラインにこれらのテストを組み込み、一貫したフィードバックとパフォーマンス結果を得ることが可能です。

LoadViewはJenkinsとのシームレスな統合を提供し、完全管理されたクラウド環境の実ブラウザからの同時接続でウェブサイト、ウェブアプリ、APIのストレステストを促進します。Jenkins用LoadViewプラグインにより、新しい更新や追加機能の負荷テストが可能です。

前節でLoadViewに作成したPostmanコレクションテストシナリオを用いて、Jenkinsとどのように統合するかの手順を以下に示します。

ステップ 1

Jenkinsとの統合には、前節のPostmanテストシナリオを使用します。

ステップ 2

一意のUIDを生成し、統合UIDをコピーします。これはJenkinsに統合するためのセキュリティトークンとして利用されます。

Postman Jenkins Integration UID

ステップ 3

PostmanコレクションのテストシナリオIDは、シナリオセットアップページまたはテスト履歴ページ(テストマネージャー > テストアクションメニュー > 履歴)で確認できます。

Postman Collection Test History

Jenkins内のLoadViewプラグイン

LoadViewプラグインの設定手順は以下の通りです:

  1. Jenkinsアカウントにログインします。
  2. 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にアクセス可能か確認します。
  3. 続いて、ジョブを選択し、Configureをクリック。
Jenkins LoadView Security Token

4. Build > Post-build Actions > Add post-build action > LoadView-Run load test scenario に進み、ビルド用のLoadViewストレステスト設定を指定します:

  • 資格情報 – 説明でAPIキーを選択。
  • シナリオID – ビルドに使用するテストシナリオIDを貼り付け。LoadViewのシナリオページからIDをコピー。
  • エラーしきい値 – テスト中に発生したセッションの許容可能なエラー率を指定(ターゲットリソースへのアクセス失敗、キーワード/画像未検出など)。指定値を超えた場合、ビルドはJenkinsで失敗扱いとなります。
  • 平均時間 – テスト実行中に測定される平均応答時間の上限を指定。上限超過時にビルドはJenkinsで失敗扱いとなります。

5. 保存をクリックします。

LoadViewテスト結果の確認

ついにPostmanコレクションとJenkinsのLoadView統合に成功しました。ストレステスト実行中は、Jenkinsのコンソール出力でリアルタイムにステータスを確認できます。

Postman Jenkins Console Output
Postman Jenkins LoadView Test Performance Results

結論:Postmanを使ったAPIの負荷テスト

このガイドでは、LoadViewを用いてPostmanコレクションに同時ユーザーをシミュレートする方法、Jenkinsとの統合によるこの工程の自動化方法を説明しました。最近では、内部・外部アプリケーションに依存する複雑なシステムのテストに必要なツールが簡素化され、ボトルネックや問題点をより明瞭に識別しやすくなっています。

LoadViewは、開発のあらゆる段階での負荷テストをサポートし、あらゆる複雑さに対応するパートナーとして提供されています。負荷テストは難解である必要はなく、LoadViewのプラットフォームがAPIの負荷テストを簡単にします。PostmanコレクションをLoadViewとシームレスに統合して負荷テストを実行できます。

LoadViewの専門チームが負荷テスト戦略の開発・向上を支援し、非技術者にも使いやすい直感的プラットフォームを提供しています。LoadViewは実ブラウザテスト、ポイント&クリックによるスクリプティング、包括的でわかりやすいレポートを備え、負荷テストの予測不能性を減らし、開発チーム間の効果的な協力を可能にします。

今日からLoadViewでAPIの負荷テストを始めましょう。無料トライアルに登録して無料負荷テストを受けるか、または性能エンジニアと共にLoadViewプラットフォーム全体とPostmanコレクション統合、Jenkinsでの自動化手順を案内するプライベートデモにお申し込みください。

同時ユーザーテストを
次のレベルへ

無限のスケーラビリティで比類なき機能を体験してください。クレジットカード不要、契約なし。