Performance Testing Service (PTS) コンソールで簡単な設定を行うことで、ゲートウェイのアクセスログに基づいて過去のゲートウェイ トラフィックを再生できます。このトピックでは、アクセスログに基づいてパフォーマンステストを開始する方法について説明します。
概要
アクセスログに基づくパフォーマンステストを使用すると、簡単な設定で過去のゲートウェイ トラフィックを再生し、パフォーマンステストのリクエストをパラメーター化し、テストシナリオを自動的に作成できます。また、アクセスログに基づくパフォーマンステストでは、シンプルなログオン API 設定を使用することで、ログオン セッションのタイムアウトの問題も解決します。アクセスログに基づくパフォーマンステストを使用するには、次の設定を完了します。
ログ プロデューサーの設定: アクセスログは、Application Load Balancer (ALB) インスタンス、Classic Load Balancer (CLB) インスタンス、Microservices Engine (MSE) ゲートウェイ、または Elastic Compute Service (ECS) インスタンス上の自己管理型 Web サービスから取得できます。最初に、アクセスログを Simple Log Service に配信する必要があります。ログを Simple Log Service に配信する方法については、アクセスログ、CLB アクセスログの設定、クラウドネイティブ ゲートウェイのログ シッピングを有効にする、および NGINX 設定モードを使用してテキストログを収集する を参照してください。
Simple Log Service の設定: ログ プロデューサーからログを受信するための設定を行います。
アクセスログに基づくパフォーマンステストの設定: Simple Log Service に保存されているログを分析し、テスト対象の API を特定し、テストシナリオを作成します。
テストシナリオの設定: アクセスログに基づくパフォーマンステストのシナリオが作成されると、[シナリオの編集] ページにリダイレクトされ、シナリオを設定できます。シナリオをデバッグして、パフォーマンステストを開始することもできます。
ログの仕様
URL フィールドのインデックスと値が存在し、インデックス名は request_uri、path、request_url、url、uri、requestURI、または requestURL である必要があります。URL のパスとパラメーターが個別に記録されている場合、各パラメーター フィールドに値が含まれている必要があり、パラメーター フィールドのインデックス名は method、http_method、または request_method である必要があります。
POST リクエストを再生するには、次の要件を満たす必要があります。
HTTP POST ボディ フィールドのインデックスと値が存在し、インデックス名は body、http_body、http_request_body、または request_body である必要があります。ボディは、application/x-www-form-urlencoded、text/plain、または application/json 形式である必要があります。バイナリ形式はサポートされていません。
Content-Type フィールドのインデックスと値が存在し、インデックス名は content_type または contentType である必要があります。それ以外の場合、PTS は Content-Type フィールドを自動的に推測します。
MSE ゲートウェイを使用している場合は、ゲートウェイログに POST リクエストのボディを出力できます。詳細については、完全なリクエストとレスポンス情報をアクセスログに追加する を参照してください。PTS は、ゲートウェイログに出力されたボディを持つ POST リクエストを直接再生できます。
シンプル モードを使用する場合は、次のログ仕様を満たす必要があります。仕様を満たさないログは無視されます。
ドメイン名フィールドのインデックスと値が存在し、インデックス名は host、http_host、または authority である必要があります。
HTTP プロトコル フィールドのインデックスと値が存在し、インデックス名は http_protocol、protocol、scheme、または http_scheme である必要があり、値は http または https である必要があります。それ以外の場合、http が自動的に使用されます。
手順 1: アクセスログに基づくパフォーマンステストのシナリオを作成する
開始する前に、し、プロジェクトと Standard Logstore を作成し、ログを収集し、インデックス作成を有効にしていることを確認してください。詳細については、プロジェクトの作成、ログストアの作成、および インデックスの作成 を参照してください。
PTS V3.0 コンソール にログオンします。左側のナビゲーション ペインで、 を選択します。次に、[アクセスログ] をクリックします。
ログのクエリと分析
[ログ リージョン]、[ログ プロジェクト]、および再生するアクセスログが属する [ログストア] を選択します。クエリ パラメーターを設定し、時間範囲を指定します。次に、[検索と分析] をクリックして、再生するログをクエリします。ログ インデックスは、ログの仕様 を満たしている必要があります。仕様を満たさないログは無視されます。ログの例:
手順 2: パフォーマンステスト モードを選択する
[アクセスログ テストシナリオ] ページで、[シンプル再生モード] をオンにし、[テスト対象 API の選択] をクリックして、シンプル モードのパラメーターを設定します。標準モードを使用する場合は、[シンプル再生モード] をオフにし、[テスト対象 API の選択] をクリックします。
シンプル モードでは、リクエスト構造を解析したり、ドメイン名と API の数に制限を設けたりすることなく、ログに記録されたトラフィックを再生できます。シンプル モードでは、シナリオ全体のリクエスト/秒 (RPS) の数のみを制御し、ログオン状態は考慮しません。
標準モードでは、ログオン状態を設定し、各 API のリクエスト数と最大クエリ/秒 (QPS) 値を分析し、各 API の負荷を正確に制御できます。ただし、標準モードでは、ドメイン名と API の数が制限されます。
ビジネス要件に基づいて、ログ再生にシンプル モードまたは標準モードを選択できます。次の表は、シンプル モードと標準モードを比較したものです。
パフォーマンステスト モード | 説明 |
シンプル モード |
|
標準モード |
|
シンプル モード
再生パラメーターの設定
シンプル モードでは、選択した時間範囲内の有効なリクエストの数が分析結果に表示されます。次のパラメーターを設定できます。
[POST リクエストの再生]: このパラメーターを有効にすると、PTS は POST リクエストを再生できます。リクエスト ボディがアクセスログに記録されていない場合、再生される POST リクエストにはリクエスト ボディが含まれません。これにより、エラーが発生する可能性があります。このパラメーターを有効にする場合は注意してください。
[繰り返し再生]: このパラメーターを有効にすると、再生がログの最後に達した後にログの先頭に戻ります。このパラメーターを無効にすると、再生がログの最後に達したときに PTS は負荷の生成を停止します。再生期間が終了しない場合、再生は自動的に停止しません。過剰な VUM (Virtual User × Minute) 消費を防ぐために、PTS が負荷の生成を停止した後、手動で再生を停止してください。
[再生時間 (分)]: トラフィック再生の時間を指定します。デフォルト値: 10。単位: 分。
[リクエスト/秒]: トラフィックを再生するレートを指定します。PTS は、指定されたレートでアクセスログ トラフィックを再生します。レートは、各抽象 API に均等に割り当てられます。
テストシナリオの作成
[シナリオの作成] をクリックします。PTS は再生設定をまとめます。次に、[確認] をクリックして [シナリオの編集] ページに移動します。作成したシナリオは、[シナリオの編集] ページで設定できます。(オプション) 手順 3: テストシナリオを設定する をスキップして、手順 4: パフォーマンステストを開始する に進むこともできます。
標準モード
ログにリクエストされたドメイン名が含まれており、ドメイン名フィールドの名前が host、http_host、または authority の場合、PTS はホストを自動的に補完します。ホストを変更できます。サポートされているホストは 1 つだけです。すべての API は同じホストを共有します。複数のドメイン名を再生する場合は、複数の API を順番に選択してテストシナリオを作成し、ドメイン名を再生するようにシナリオを設定できます。
テスト対象 API の選択
PTS はアクセスログを分析し、選択した時間範囲内のリクエスト数と最大 QPS に基づいて上位 10 件の API を表示します。テスト対象の API を選択するには、API の横にある灰色の円をクリックします。選択した API は、[選択済み] セクションに表示されます。
パフォーマンステスト パラメーターの設定
テストする API にログオンする必要がない場合は、[ログオン不要] をオンにします。テストする API にログオン状態情報が必要な場合は、次のいずれかの方法を使用してログオン API を指定します。
a. [API から選択] を選択します。[API から選択] ドロップダウン リストにログオン API が表示されている場合は、API を選択できます。PTS は、選択した API をログオン API として使用し、ログのパラメーターを使用し、手動設定なしで Cookie をログオン状態としてエクスポートします。
b. [ログオン API の設定] を選択します。[API から選択] ドロップダウン リストにログオン API が表示されていない場合は、ログオン API を設定できます。ログオン API の URL を入力します。例: http://example.com/login。ログオン API のボディ パラメーター (ユーザー名、パスワードなど) を設定します。${} を使用してパラメーターを参照できます。参照できるパラメーターをクエリするには、[パラメーター ファイルの選択] をクリックします。詳細については、データ ソース を参照してください。
設定が正しいことを確認した後、[シナリオの作成] をクリックします。[シナリオの編集] ページにリダイレクトされます。[シナリオの編集] ページでシナリオを設定できます。(オプション) 手順 3: テストシナリオを設定する をスキップして、手順 4: パフォーマンステストを開始する に進むこともできます。
(オプション) 手順 3: テストシナリオを設定する
[データのエクスポート] をクリックして、パフォーマンステストで使用できる Cookie の数を指定します。トークンなどの他のログオン状態情報を使用する場合は、ログオン API をクリックし、出力パラメーターを設定してから、データ エクスポート ノードでエクスポート設定を設定します。詳細については、データ エクスポート命令の使用 を参照してください。
API をクリックして、API にヘッダーを追加します。
負荷設定を行います。詳細については、負荷モード および テスト トラフィックの発信元 IP アドレスの数を指定する を参照してください。
手順 4: パフォーマンステストを開始する
[デバッグ] をクリックして、作成したシナリオをデバッグし、設定が正しいことを確認します。詳細については、ストレステスト シナリオのデバッグ を参照してください。
[保存して開始] をクリックします。表示されるダイアログ ボックスで、[今すぐ実行] を選択し、[開始] をクリックします。パフォーマンステスト プロセス ページが表示されます。このページでは、さまざまなパフォーマンス メトリックを表示できます。
手順 5: パフォーマンステストの結果を分析する
パフォーマンステストが完了したら、[レポート] ページでテスト レポートを表示できます。詳細については、PTS ベースのストレステスト レポートを表示する を参照してください。