ストレステストシナリオを設定した後、シナリオをデバッグして設定を検証し、テストの失敗を防ぐことができます。このトピックでは、Performance Testing (PTS) シナリオと JMeter シナリオのデバッグ方法について説明します。
前提条件
PTS シナリオまたは JMeter シナリオが作成済みであること。詳細については、「PTS シナリオの作成」または「JMeter シナリオの作成」をご参照ください。
操作手順
-
PTS コンソールにログインし、 を選択します。
-
対象シナリオの アクション 列で 編集 をクリックして Edit Scenario ページを開きます。次に、Debug をクリックしてシナリオ全体をデバッグします。
デバッグ中に、右上隅の
アイコンをクリックしてウィンドウを最小化できます。右下隅にフローティングウィンドウが表示され、デバッグステータスをモニターできます。フローティングウィンドウをクリックすると、Debug Scenario ダイアログボックスが復元されます。 -
デバッグ結果では、すべてのリクエストのリクエストログを表示できます。API をクリックすると、そのデバッグ詳細が表示されます。
単一の API のみをデバッグする必要がある場合は、シナリオ設定ページに移動し、API の右側にある Debug API をクリックしてデバッグ結果を表示することもできます。
重要VPC 内の単一 API のデバッグはサポートされていません。VPC 内のシナリオをデバッグするには、Debug をクリックしてシナリオ全体をデバッグしてください。
PTS シナリオ
PTS シナリオのデバッグインターフェイスでは、左側にシリアル実行リストが表示されます。このリストは各 API の実行ステータスを示し、緑色のドットは成功、赤色のドットは例外を表します。アサーションが失敗した場合、インターフェイスには「アサーションが失敗したため、後続のリクエストは送信されません」というメッセージが表示されます。右側の [全般] セクションには、リクエスト URL、リクエストメソッド、レスポンスコード、エクスポートコンテンツ、チェック結果 JSON などの情報が表示されます。このセクションの下には、[リクエスト詳細]、[レスポンス詳細]、[タイミング] の 3 つのタブがあります。[レスポンス詳細] タブでは、セクションを展開してチェックポイント情報、レスポンスヘッダー、レスポンスボディ、エラー情報を表示できます。リクエストが異常な場合、エラー情報セクションには IllegalArgumentException: forbidden uri, uri host must match vpc cidr pattern 10.0.0.0/8, 172.16.0.0/12 のような詳細が表示されます。これは、リクエスト URI のホストが指定された VPC CIDR パターンに一致する必要があることを示しています。
-
アサーション結果
'x' アイコンは例外を示します。API を選択すると、右側にレスポンス詳細が表示されます。
-
レスポンスステータス
ステータスは、ステータスコード (200、302、403、503、500 など) または エラー メッセージのいずれかです。エラー メッセージは、応答が受信されなかったことを意味します。これは、リクエストのタイムアウト、またはリクエスト URL やボディのエラー (認識されない関数や無効な URL フォーマットなど) が原因である可能性があります。
説明デバッグされた各 API のリクエストとレスポンスの詳細を表示できます。これらの問題をトラブルシューティングするには、次の点を確認してください。
-
レスポンスステータスが エラー の場合、Response Details タブの [エラー情報] セクションで例外の詳細を確認してください。たとえば、システム関数の無効な使用など、無効なパラメーターが原因で例外が発生することがあります。
-
レスポンスステータスが 200 以外のステータスコードである場合、返された情報を確認し、ご利用のサーバー上のログを使用して標準的なトラブルシューティングを実行してください。
-
アサーションが失敗した場合、Response Details タブの Check Point Information セクションでアサーションの詳細を確認してください。現在の値が空の場合、出力パラメーターの値は抽出されていません。
-
-
エラー情報
このセクションには、タイムアウト、パラメーターエラー、接続拒否など、異常な応答に関する詳細が表示されます。
-
[タイミング] タブには、リクエストのコアライフサイクル中に要した時間が詳述されます。
タイミングウォーターフォールモデルを使用してエラー情報を表示できます。すべてのエラーはタイミングウォーターフォールモデルに表示されます。
たとえば、シナリオ設定で 302 リダイレクトを有効にした場合、タイミングウォーターフォールモデルでリダイレクトが発生したかどうか、およびその特定のパスを確認できます。
-
出力パラメーターの式をテストする
リクエストのレスポンス詳細 (通常はテキストベースのレスポンスボディ) から特定の文字列を抽出する必要がある場合、デバッグウィンドウで正規表現をテストして、それが正しいかどうかを確認できます。必要に応じて、出力パラメーターをリセットすることもできます。
説明この機能は、`application/json` および `text/json` タイプの JSON フォーマットでは利用できません。これらのフォーマットは解析が容易なためです。
-
Debug Scenario ダイアログボックスで、右側で API を選択し、Click to test the regular expression for the output parameter をクリックします。
-
[出力パラメーターの正規表現をテスト] ダイアログボックスで、ソースフォーマットを選択し、正規表現を入力し、N 番目のマッチを指定します。次に、Test Expression をクリックします。レスポンス詳細のマッチング結果を使用して、抽出されたコンテンツが期待どおりであることを確認します。
-
出力パラメーターをリセットする必要がある場合、Sync Output Parameter をクリックして、正規表現を API の出力パラメーターリストに同期します。
説明デバッグ中に出力パラメーターを同期した場合、ストレステストシナリオの [シナリオ設定] タブに戻り、API の Output Parameter Definition タブで出力パラメーターの名前を設定してください。
-
JMeter シナリオ
右側の [エンジンログ] パネルには、JMeter エンジンの起動ログが表示されます。これには、バージョン番号、JDK バージョン、オペレーティングシステム、最大メモリ、利用可能なプロセッサ数などの実行環境情報が含まれます。右下隅の [アーキテクチャトポロジー] エリアには、アーキテクチャトポロジーが表示されます。
サンプラーをクリックすると、[サンプリングログ] エリアで、リクエストとレスポンスの詳細、およびタイミングウォーターフォールモデルを表示できます。
-
サンプリングログ:
-
[全般] タブには、リクエスト URL、リクエストメソッド、リクエストステータスコードが表示されます。
-
[リクエスト詳細] タブには、リクエストヘッダー、ボディ、オリジナルパケットが表示されます。
-
Response Details タブには、レスポンスヘッダー、ボディ、オリジナルパケットが表示されます。
-
[タイミング] タブには、各 API に要した時間が表示されます。
-
-
Engine Logs エリアには、JMeter の実行ログが表示されます。スクリプトをデバッグした後にサンプリングログが生成されない場合は、エンジンログのエラー情報を使用して問題を分析し、トラブルシューティングできます。よくあるエラーとその原因の詳細については、「よくあるエラー」をご参照ください。