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エコシステムでも広く使われており、APIバリデーションは開発ワークフローの重要な部分となっています。
Postmanはソフトウェア開発ライフサイクルで使われるAPI開発ツールです:
- API開発
- APIテスト
- APIドキュメント作成
しかし、Postmanは開発だけのものではありません。ブラウザのようにリクエストを送信し、レスポンスを受け取ることもできます。また、リクエスト送信前やレスポンス受信後に実行されるスクリプトを追加でき、APIとのやり取りをより制御できます。リクエストはコレクションに保存でき、必要に応じて特定の順序で実行できるため、ワークフローを整理できます。
APIテストに関しては、Postmanはすべてが期待通りに動作しているかを確認する優れたツールです。APIが正しくデータを取得、保存、更新していることを検証し、機能テストのキー部分となります。ただし、Postmanはパフォーマンステスト用に作られていないことを覚えておくことが重要です。小規模なテストで応答時間をチェックできますが、実際のトラフィックや高負荷をシミュレーションはできません。したがって、APIがストレスに耐えられるかを確認したい場合は、専門のロードテストツールが必要です。
より詳細なパフォーマンステストには、LoadViewのような専門のロードテストツールが必要です。LoadViewのようなツールは現実の条件をシミュレートし、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オブジェクト表記)スキーマでリクエスト・レスポンスの構造を定義でき、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だけに依存するのは避けた方がよいでしょう。
Postman REST/RESTFULツールによるロードテスト
バックエンドアプリケーションのテストでは、機能確認が標準的なプロセスであり、意図した通りに動作することを保証します。アプリケーションは多くの、場合によっては何百、何千ものユーザーが同時に利用するため、トラフィックに対する耐性を確認するためのパフォーマンステストも必要です。アプリケーションの変更ごとにベンチマークと検証を行う必要があります。
Postmanを使ってWeb APIの機能テストを行い、APIコールコレクションからロードテストを生成する必要がある場合は、LoadViewのようなロードテストツールの使用を検討できます。LoadViewはAPIだけでなく、Webアプリケーション(外部および内部)、およびウェブサイトやサーバーに対する実ブラウザベースのロードテストを提供します。
Postmanロードテストのセットアップ
PostmanコレクションのWebアプリケーションロードテストを設定する手順を段階的に見ていきます。
ステップ1
開始前に、Postmanコレクションをエクスポートする必要があります。パブリックリンク取得オプションを選択すると、簡単にLoadViewにインポートできます。
- 注意: コレクションには環境変数は保存されないため、Postmanコレクションはローカル変数のみを使用していることを確認してください。
ステップ2
LoadViewプラットフォームを開き、新しいロードテストを作成を選択します。
ステップ3
LoadView内で利用可能なさまざまなロードテストタイプが表示されます。
ウェブアプリ、ウェブサイト、APIがあります。今回のケースでは、APIテストを開始するためにPostmanコレクションオプションを選択します。
ステップ4
新しいウィンドウが開くので、エクスポートしたPostmanコレクションをインポートしてから、デバイスを作成をクリックします。
ステップ5
デバイスが正常に作成されると、テストシナリオ画面が表示され、そこでロードタイプを設定できます。これはテストの目的によって異なります。
- 負荷ベースのカーブ: 既知のユーザー数でロードテストを実行し、ウォームアップ時間後にトラフィックを増加させます。
- 目標ベースのカーブ: 特定のAPIの取引数ターゲットを達成し、目標同時ユーザー数までスケールする目的で使用します。
- 動的カーブ: ユーザー数、最大ユーザー数、テスト期間の動的値を選択可能で、テスト中にリアルタイムで調整できます。
ステップ6
APIのリストでテストシナリオが作成できたら、APIのロードおよびストレステストを実行できます。
ロードテスト実行後には、APIとシステムが異なる負荷下でどのように動作したかを示す包括的なレポート、ダッシュボード、メトリクスが提供されます。多くのチームは観測プラットフォームとこれらのロードテスト結果を連携させ、高APIトラフィック時のインフラメトリクス、データベースパフォーマンス、サービス依存を監視しています。
PostmanコレクションロードテストのJenkins統合
LoadViewでのPostmanコレクションロードテストの統合と実行を確認した後、これらのテストをCI/CDパイプラインに組み込んで一貫したフィードバックとパフォーマンス結果を得ることができます。
LoadViewはJenkinsとシームレスに連携し、完全管理されたクラウド環境から実ブラウザを使った同時接続数でのウェブサイト、ウェブアプリケーション、およびAPIのストレステストを可能にします。Jenkins用のLoadViewプラグインで新しい更新や追加機能のロードテストも行えます。
前節でLoadViewで作成したPostmanコレクションテストシナリオを使い、Jenkinsとどのように統合するかの手順を見てみましょう。
ステップ1
Jenkinsとテストを統合するために、前節と同じPostmanテストシナリオを使用します。
ステップ2
ユニークなUIDを作成し、統合用のUIDをコピーします。これはJenkinsとの連携セキュリティトークンとして利用されます。
ステップ3
PostmanコレクションのテストシナリオIDはシナリオ設定ページかテスト履歴ページ(テストマネージャー > テストアクションメニュー > 履歴)で確認できます。
JenkinsのLoadViewプラグイン
LoadViewプラグインの設定手順は以下の通りです:
- Jenkinsアカウントにログイン。
- JenkinsでCredentials > Add Credentials > LoadView Security Token (UID)へ進み、認証情報を設定・検証。
- 種類 – LoadView Security Token (UID)。
- スコープ – Globalを選択。
- ID – デフォルトのままかユニークなIDを指定。
- 説明 – 識別しやすいユニークな説明を記入。
- UID – LoadViewアカウントからロードテストWeb API 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でビルドが失敗扱いに。
- 平均応答時間 – テスト実行中に計測される平均応答時間の制限を指定。制限を超えた場合、ビルドは失敗扱いに。
5. 保存をクリック。
LoadViewテスト結果の表示
ついにPostmanコレクションをLoadViewを通じてJenkinsと正常に統合できました。ストレステスト実行中は、Jenkinsのコンソール出力にリアルタイムでステータスが表示されます。
結論:PostmanでのAPIロードテスト
本ガイドでは、LoadViewを使ってPostmanコレクションで同時ユーザーをシミュレートする方法と、Jenkins統合でこのステップを自動化する方法を説明しました。近年、内外のアプリケーションに依存する複雑なシステム評価に必要なツールは簡略化され、ボトルネックや問題点をより明確に特定するのに大きく役立っています。
LoadViewはすべてのロードテスト活動におけるパートナーとして、開発の各段階で支援し、あらゆる複雑さに対応します。ロードテストは複雑である必要はなく、LoadViewプラットフォームはAPIのロードテストを簡単に行える環境を提供します。PostmanコレクションをLoadViewにシームレスに統合してロードテストを実施できます。
LoadViewの専門チームがロードテスト戦略の開発・強化を支援し、非技術者でも使いやすい直感的なプラットフォームをご提供します。LoadViewは実ブラウザテスト、ポイント&クリックスクリプティング、わかりやすく包括的なレポートを提供し、ロードテストの推測を排除し、開発機能間の効果的な協働を可能にします。
今日からLoadViewでAPIのロードテストを始めましょう。無料トライアルに登録して無料ロードテストを受け取るか、パフォーマンスエンジニアによるプライベートデモに登録してください。エンジニアがLoadViewプラットフォームの全機能を案内し、Postmanコレクションとの統合およびJenkinsでの自動化方法を説明します。
ロードテストを次のレベルへ
次のレベルへ
無限のスケーラビリティで比類のない機能を体験してください。クレジットカード不要、契約不要。