APIを構築および維持する際には、パフォーマンスと安定性が最も重要です。APIのパフォーマンスはユーザーエクスペリエンスおよびシステムの可用性に直接影響を及ぼすため、包括的なパフォーマンステストが不可欠です。
APIパフォーマンステストとは何ですか?
APIパフォーマンステストは通常、実際のユーザーの動作をシミュレートし、ストレステストおよび負荷テストを実施してシステムの安定性とパフォーマンスメトリクスを評価します。
パフォーマンステストを実施する前に、APIが期待どおりに正しく機能することを確認するために、APIに対して機能テストを実施することをお勧めします。機能テストは機能的な問題を特定して修正するのに役立ち、パフォーマンステストは高負荷下でのAPIの動作を評価することに焦点を当てます。機能的に無音なAPIのみが意味のあるパフォーマンステスト結果を生成し、さらなるパフォーマンス最適化のための信頼できる基盤を提供します。
Apidogでのパフォーマンステストの実施方法
このガイドでは、Apidogの「パフォーマンステスト」機能を利用してAPIのパフォーマンスを評価する手順を説明します。
ステップ1:パフォーマンステストシナリオの編成
パフォーマンステストを開始する前に、テストケースを作成する必要があります。これを既存のAPIまたはAPIの使用ケースからインポートするか、カスタムリクエストを定義できます。テストステップが準備できたら、パフォーマンステストを進める前にAPIが期待どおりに機能することを確認するために、機能テストを実行することをお勧めします。
ステップ2:パフォーマンステスト設定の構成
Apidogの「テスト」セクションでは、「パフォーマンス(ベータ)」の専用モジュールが見つかります。ここで、今後のパフォーマンステストに備えてさまざまな設定を構成できます。
構成オプション:
「パフォーマンステスト」中のリクエストに対するバックエンドサービス環境を指定します。デフォルトでは、現在のプロジェクトに設定された環境構成が自動的に適用されます。
テストデータは、パフォーマンステスト中にリクエストを開始するために使用されるデータセットを指します。テストデータを使用すると、各同時ユーザーが異なるパラメーターでリクエストを行い、現実のトラフィックをより良くシミュレートできます。
- テストデータを使用するには、「テストデータ」タブをクリックして新しいデータセットを作成します。
- 対応する環境のためにデータセットを構成します。手動でデータを追加するか、JSONまたはCSV形式でインポートできます。編集後にデータセットを保存してください。
- テストステップの詳細ページで、テストデータと変数を関連付けます。
- パフォーマンステストでテストデータを関連付けることを選択すると、同時ユーザーはテストデータで定義された変数を使用してリクエストを行います。「ランダム化」モードと「順序付け」モードのいずれかを選択してテストできます。
各同時ユーザーはテストデータからランダムにデータの行を選択します。これにより、各ユーザーがユニークなデータを取得でき、パフォーマンステストで広範なカバレッジを保証します。
順序付けマッチ:
各同時ユーザーは、テストデータから次の行を順番に選択します。同時ユーザーの数がテストデータの行数を超える場合、超過したユーザーはテストに参加できません。このモードに対してすべての同時ユーザーをサポートするのに十分なテストデータがあることを確認してください。
- 同時ユーザー(仮想ユーザー):
パフォーマンステストは現在、最大100の同時ユーザーをシミュレートすることをサポートします。これらのユーザーは指定されたテスト期間内に、実際のオンラインユーザーの動作を同時にシミュレートし、テストシナリオを繰り返し実行します。これにより、多数のユーザーリクエストの下でAPIのパフォーマンスと安定性を評価するための高同時接続シナリオが効果的にシミュレートされます。
- 実行時間:
パフォーマンステストの総期間を定義します。各同時ユーザーは、この設定された時間内にテストシナリオで定義されたすべてのAPIリクエストを継続してループします。現在サポートされている最大テスト期間は60分です。
- ラフアップ時間:
特定のケースでは、多くのユーザーがサービスに瞬時にアクセスするのではなく、時間をかけて徐々に増加します。
ラフアップ時間は、ユーザートラフィックの徐々の増加をシミュレートします。テストの開始時にすべての同時ユーザーをすぐに使用する代わりに、ユーザーの数は設定された時間(X分)にわたって直線的に増加し、同時ユーザーの総数に達します。Xを0に設定すると、すべての同時ユーザーが開始からストレステストに使用されます。
上記のオプションを構成した後、設定を保存して「実行」ボタンをクリックしてパフォーマンステストを開始します。
ステップ3:パフォーマンステストの実施
「実行」をクリックすると、パフォーマンステストが開始されます。Apidogのパフォーマンステストはユーザーのコンピュータから発信され(Apidogサーバーではなく)、設定されたテストステップ、テストデータ、および同時リクエストを実行するためにコンピュータのハードウェアリソースを利用します。
したがって、APIのテストにおけるパフォーマンスの問題がAPIに起因するものか、テストを開始するコンピュータに起因するものかを判断するために、コンピュータのパフォーマンスおよび他のAPIの動作を考慮する必要があります。リクエストの発生数がサーバーまたはAPIに関係なく増加しない場合、パフォーマンステストを実施するには、より強力なコンピュータが必要になるかもしれません。
パフォーマンステストが開始されると、Apidogは主要なリアルタイムパフォーマンス指標を監視し表示する直感的な可視化パネルを提供します。これには、各APIの総リクエスト数、秒あたりのリクエスト数、平均応答時間、最大/最小応答時間、およびリクエスト失敗率が含まれます。
パフォーマンスメトリクスの理解:
可視化パネルは、テストシナリオ全体および個別のAPIデータに関する包括的なデータを提供します。
包括的データ:
- 総リクエスト:テスト中にAPIが処理したリクエストの総数を反映します。総リクエスト数が多いことは、大規模なユーザーシナリオでは妥当ですが、APIがこれらのリクエストを効果的に処理できることを確認してください。
- 秒あたりのリクエスト:高い数値は、APIが短時間で大量のリクエストを処理できることを示し、優れたパフォーマンスを示します。低い数値はパフォーマンスのボトルネックを示唆する場合があります。
- 平均応答時間:低い平均応答時間は、ユーザーが迅速なフィードバックを受け取っていることを示し、優れたAPIパフォーマンスを反映します。高い応答時間は遅い応答を示し、ユーザーエクスペリエンスに影響を及ぼす可能性があります。
- リクエスト失敗率:実際に、失敗率はゼロに近くあるべきです。高い失敗率は、APIが特定の状況でリクエストを適切に処理できないことを示し、さらなるエラー分析と最適化が必要です。
- 同時ユーザー:適切な数の同時ユーザーを設定することで、現実世界のユーザーロードをシミュレートするのに役立ちます。ただし、高すぎるとシステムが過負荷になり、パフォーマンスが低下する可能性があります。
個別のAPIデータ:
- 総リクエスト:単一APIのための送信リクエストの総数。
- 秒あたりのリクエスト:単一APIのための秒あたりの平均リクエスト数。
- 平均応答時間(ms):単一APIへのすべてのリクエストの平均応答時間。
- 最小応答時間(ms):単一APIへのすべてのリクエストの中で最短の応答時間。
- 最大応答時間(ms):単一APIへのすべてのリクエストの中で最も長い応答時間。
- 90%応答時間:単一APIへの90パーセンタイルのリクエストの応答時間。
- 失敗率:単一APIのための失敗したリクエストの割合。
テスト結果の分析:
- 可視化:
可視化パネルの異なる曲線の色は、縦軸上の異なるパフォーマンスメトリクスに対応しています。横軸はパフォーマンステストの期間を示し、縦軸はリクエスト失敗率、平均応答時間、および秒あたりのリクエスト(同時ユーザーはデフォルトで非表示)を表示します。特定のメトリックをクリックすると、それをハイライトまたは隠して焦点を絞った分析ができます。
- フィルタリングと詳細:
特定の失敗したリクエストを確認するには、「レスポンスエラーを検証」をクリックしてください。また、フィルタリング機能を使用して特定のAPIのパフォーマンスに焦点を当てることもできます。
- テストレポート:
パフォーマンステストの後、「テストレポート」タブをクリックしてテストシナリオのすべての履歴レポートを表示します。これらのレポートは、パフォーマンステストを実行する前に設定された「構成オプション」を詳述しています。
レポートはタイプ(機能テスト、パフォーマンステスト)でフィルタリングできます。テストレポートをクリックすると、その詳細ページに移動し、パフォーマンステスト中に収集されたのと同じメトリクスが表示されます。
注意:プロジェクトあたり同時に実行できるパフォーマンステストは1つのみです。優先度の高いテストを実行する必要がある場合は、現在のテストを停止するために右上隅の「終了」ボタンをクリックしてください。
結論
ApidogはAPIパフォーマンステストのためのユーザーフレンドリーなソリューションを提供し、テストパラメータの設定、テストの実行、および結果の表示プロセスを簡素化します。詳細なパフォーマンスメトリクスと明確な可視化パネルを使用することで、APIのパフォーマンスを包括的に理解できます。