サードパーティ製のツールで使用するために Azure Load Testing からテスト結果をエクスポートする

この記事では、Azure Load Testing のテスト結果をエクスポートする方法について説明します。 結果は Azure portal を利用してダウンロードするか、CI/CD ワークフローで成果物としてダウンロードするか、バックエンド リスナーを利用して JMeter でダウンロードするか、Azure ストレージ アカウントからコピーできます。 これらの結果は、サード パーティ製のツールでのレポート作成やテストエラーの診断に使用される可能性があります。 Azure Load Testing では、コンマ区切り値 (CSV) ファイル形式でテスト結果を生成し、ロード テストの各アプリケーション要求の詳細が提供されます。

ロード テスト中のエラーを診断するためにテスト結果を使うこともできます。 responseCoderesponseMessage の各フィールドで、失敗した要求に関する詳細な情報がわかります。 エラーの調査の詳細については、失敗したロード テストを診断する方法に関するページを参照してください。

こちらで説明する手順に従って、CSV ログ ファイルから Apache JMeter ダッシュボードを生成できます。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
  • テスト実行が完了した Azure Load Testing リソース。 Azure Load Testing リソースを作成する必要がある場合は、ロード テストの作成と実行に関するページを参照してください。

テスト結果ファイル形式

Azure Load Testing では、テスト エンジン インスタンスごとにテスト結果の CSV ファイル生成されます。 ロード テストをスケールアウトする方法を確認してください。

Azure Load Testing では、Apache JMeter CSV ログ形式が使用されます。 各フィールドの詳細については、Apache JMeter ドキュメントの JMeter 用語集を参照してください。

ロード テストの実行に対する各アプリケーション要求の詳細は、テスト結果ファイルで確認できます。 次のスニペットは、テスト結果のサンプルを示しています。

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1676040230680,104,Homepage,200,OK,172.18.33.7-Thread Group 1-5,text,true,,1607,133,5,5,https://www.example.com/,104,0,100
1676040230681,101,Homepage,200,OK,172.18.33.7-Thread Group 1-3,text,true,,1591,133,5,5,https://www.example.com/,101,0,93
1676040230680,101,Homepage,200,OK,172.18.33.7-Thread Group 1-1,text,true,,1591,133,5,5,https://www.example.com/,98,0,94

ロード テストの結果にアクセスしてダウンロードする

ロード テストの実行が完了したら、Azure portal から、または CI/CD ワークフローの成果物として、ロード テストの結果にアクセスしてダウンロードできます。

重要

エンジン インスタンスが 45 を超える、またはテストの実行期間が 3 時間を超えるロード テストの場合、結果ファイルはダウンロードできません。 JMeter バックエンド リスナーを構成して、選択したデータ ストアに結果をエクスポートするか、ストレージ アカウント コンテナーから結果をコピーできます。

次の手順で、Azure portal でテスト実行のテスト結果をダウンロードします。

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. 左側のペインで、[テスト] を選択してテストの一覧を表示し、対象のテストを選択します。

    Screenshot that shows the list of tests for an Azure Load Testing resource.

    ヒント

    検索ボックスと [時間の範囲] フィルターを使用して、リストに表示されるテストの数を制限できます。

  3. テスト結果ファイルは、次の 2 つのいずれかの方法で zip 形式のフォルダーとしてダウンロードできます。

    • 使用しているロード テストの実行の横にある省略記号 (...) を選択し、[Download results file]\(結果ファイルのダウンロード\) を選択します。

      Screenshot that shows how to download the results file for a load test run.

      Note

      結果ファイルをダウンロードするには、ロード テストの実行状態が "完了"、"停止済み"、または "失敗" である必要があります。

    • [テストの実行の詳細] ペインで、[ダウンロード] を選択してから、[結果] を選択します。

      Screenshot that shows how to download the test results from the 'Test run details' pane.

  4. 任意の zip ツールを使用してフォルダーを抽出し、テスト結果にアクセスできます。

    Screenshot that shows the test results zip file in the downloads list.

    フォルダーには、テスト エンジンごとに個別の CSV ファイルが含まれており、ロード テスト中にテスト エンジンによって実行された要求の詳細が含まれています。

JMeter バックエンド リスナーを使用してテスト結果をエクスポートする

JMeter バックエンド リスナーを使用して、データベース (InfluxDB、MySQL、Azure Application Insights などの監視ツール) にテスト結果をエクスポートできます。

既定の JMeter バックエンド リスナー、jmeter-plugins.org のバックエンド リスナー、または Java アーカイブ (JAR) ファイルの形式のカスタム バックエンド リスナーを使用できます。

次のコード スニペットは、JMeter ファイル (JMX) 内にある Azure Application Insights のバックエンド リスナーを使用する方法の例を示しています。

<BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
  <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
    <collectionProp name="Arguments.arguments">
      <elementProp name="testName" elementType="Argument">
        <stringProp name="Argument.name">testName</stringProp>
        <stringProp name="Argument.value">jmeter</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="connectionString" elementType="Argument">
        <stringProp name="Argument.name">connectionString</stringProp>
        <stringProp name="Argument.value">Enter your AppInsights connection string</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="liveMetrics" elementType="Argument">
        <stringProp name="Argument.name">liveMetrics</stringProp>
        <stringProp name="Argument.value">true</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="samplersList" elementType="Argument">
        <stringProp name="Argument.name">samplersList</stringProp>
        <stringProp name="Argument.value"></stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="useRegexForSamplerList" elementType="Argument">
        <stringProp name="Argument.name">useRegexForSamplerList</stringProp>
        <stringProp name="Argument.value">false</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logResponseData" elementType="Argument">
        <stringProp name="Argument.name">logResponseData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logSampleData" elementType="Argument">
        <stringProp name="Argument.name">logSampleData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
    </collectionProp>
  </elementProp>
  <stringProp name="classname">io.github.adrianmo.jmeter.backendlistener.azure.AzureBackendClient</stringProp>
</BackendListener>

Azure Application Insights バックエンド リスナーの使用例の完全版をダウンロードできます。

ストレージ アカウント コンテナーからテスト成果物をコピーする

重要

ストレージ アカウント コンテナーからのテスト成果物のコピーは、45 を超えるエンジン インスタンスを含むロード テストか、テストの実行時間が 3 時間を超えるロード テストでのみ有効になります。

ストレージ アカウントからテスト実行のテスト結果とログ ファイルをコピーするには、Azure portal で次の手順を実行します。

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. 左側のペインで、[テスト] を選択してテストの一覧を表示し、対象のテストを選択します。

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. テスト実行の一覧から、テストの実行を選択します。

    Screenshot that shows the list of test runs for a test in an Azure Load Testing resource.

    ヒント

    検索ボックスと [時間の範囲] フィルターを使用して、リストに表示されるテストの数を制限できます。

  4. [テストの実行の詳細] ペインで [成果物のコピー] を選択します。

    Screenshot that shows how to copy the test artifacts from the 'Test run details' pane.

    Note

    結果ファイルをダウンロードするには、ロード テストの実行状態が [完了][停止済み]、または [失敗] である必要があります。

  5. ストレージ アカウント コンテナーの SAS URL をコピーします。

    Azure Storage Explorer または AzCopy で SAS URL を使用し、テストの実行の結果 CSV ファイルとログ ファイルをストレージ アカウントにコピーできます。

    SAS URL は、生成された時点から 60 分間有効です。 URL の有効期限が切れた場合、[成果物のコピー] を選択して新しい SAS URL を生成します。

  • 失敗したロード テストを診断する方法についてはこちらを参照してください。
  • 複数のテスト結果を比較する方法についてはこちらを参照してください。
  • Azure Pipelines で自動パフォーマンス テストを構成する方法についてはこちらを参照してください。