サードパーティ製のツールで使用するために Azure Load Testing からテスト結果をエクスポートする
この記事では、Azure Load Testing のテスト結果とレポートをエクスポートする方法について説明します。 結果は Azure portal を利用してダウンロードするか、CI/CD ワークフローで成果物としてダウンロードするか、バックエンド リスナーを利用して JMeter でダウンロードするか、Azure ストレージ アカウントからコピーできます。 これらの結果は、サード パーティ製のツールでのレポート作成やテストエラーの診断に使用できます。 Azure Load Testing では、コンマ区切り値 (CSV) ファイル形式でテスト結果を生成し、ロード テストの各アプリケーション要求の詳細が提供されます。
ロード テスト中のエラーを診断するためにテスト結果を使うこともできます。 responseCode
と responseMessage
の各フィールドで、失敗した要求に関する詳細な情報がわかります。 エラーの調査の詳細については、失敗したロード テストを診断する方法に関するページを参照してください。
こちらで説明する手順に従って、CSV ログ ファイルから Apache JMeter ダッシュボードを生成できます。
また、オフライン表示とコラボレーション用の HTML レポートとして、Azure Load Testing の結果ダッシュボードをダウンロードすることもできます。
前提条件
- アクティブなサブスクリプションが含まれる 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 ワークフローの成果物として、ロード テストの結果と HTML レポートにアクセスしてダウンロードできます。
重要
エンジン インスタンスが 45 を超える、またはテストの実行期間が 3 時間を超えるロード テストの場合、結果ファイルはダウンロードできません。 JMeter バックエンド リスナーを構成して、選択したデータ ストアに結果をエクスポートするか、ストレージ アカウント コンテナーから結果をコピーできます。 サンプラーが 30 より大きいテストの場合、ダウンロードした HTML レポートには、すべてのサンプラーに集計されたデータのグラフのみが含まれます。 グラフには、サンプラーごとのデータは表示されません。 さらに、ダウンロードしたレポートでは、サーバー側のメトリックに対応するグラフはサポートされていません。
Azure portal でテスト実行のテスト結果と HTML レポートをダウンロードするには:
Azure portal の Azure Load Testing リソースに移動します。
左側のペインで、[テスト] を選択してテストの一覧を表示し、対象のテストを選択します。
ヒント
検索ボックスと [時間の範囲] フィルターを使用して、リストに表示されるテストの数を制限できます。
テスト結果ファイルは、次の 2 つのいずれかの方法で zip 形式のフォルダーとしてダウンロードできます。
使用しているロード テストの実行の横にある省略記号 (...) を選択し、[Download results file]\(結果ファイルのダウンロード\) を選択します。
Note
結果ファイルをダウンロードするには、ロード テストの実行状態が "完了"、"停止済み"、または "失敗" である必要があります。
[Test run details] (テストの実行結果) ウィンドウで [ダウンロード] を選択します。 結果をダウンロードするには、[結果] を選択します。 HTML レポートをダウンロードするには、[レポート] を選択します。
任意の zip ツールを使用してフォルダーを解凍し、ダウンロードされたファイルにアクセスできます。
フォルダーには、テスト エンジンごとの個別の CSV ファイルが含まれており、ロード テスト中にテスト エンジンによって実行された要求の詳細が含まれています。
レポート フォルダーには、テストの実行の概要と、オフライン表示とコラボレーションのためのパフォーマンス メトリックのグラフで構成される HTML ファイルが含まれています。
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 で次の手順を実行します。
Azure portal の Azure Load Testing リソースに移動します。
左側のペインで、[テスト] を選択してテストの一覧を表示し、対象のテストを選択します。
テスト実行の一覧から、テストの実行を選択します。
ヒント
検索ボックスと [時間の範囲] フィルターを使用して、リストに表示されるテストの数を制限できます。
[テストの実行の詳細] ペインで [成果物のコピー] を選択します。
Note
結果ファイルをダウンロードするには、ロード テストの実行状態が [完了]、[停止済み]、または [失敗] である必要があります。
ストレージ アカウント コンテナーの SAS URL をコピーします。
Azure Storage Explorer または AzCopy で SAS URL を使用し、テストの実行の結果 CSV ファイルとログ ファイルをストレージ アカウントにコピーできます。
SAS URL は、生成された時点から 60 分間有効です。 URL の有効期限が切れた場合、[成果物のコピー] を選択して新しい SAS URL を生成します。