JMeter は、Apache によって開発されたオープンソースのパフォーマンステストツールです。 JMeter は、パラメーター化やアサーションなどの機能をサポートしています。 広範なオープンソースエコシステムにより、Apache JMeter は、幅広いプロトコルとコントローラーの拡張機能に加えて、パラメーター処理用のカスタムスクリプトを作成する機能を提供します。 PTS では、JMeter を直接使用してパフォーマンステストを実行できます。 シームレスなリソース拡張とクラウド監視との統合により、高並行性をシミュレートし、ボトルネックと問題を特定する JMeter の機能が強化されます。 このトピックでは、PTS での JMeter パフォーマンステストの利点と手順について説明します。
手順 1:JMeter シナリオの作成
JMeter テストファイルをアップロードします。
PTS console にログインし、 を選択して、 をクリックします。JMeter
[jmeter シナリオの作成] ダイアログボックスで、[シナリオ名] を入力します。
[シナリオ設定] セクションで、YAML 形式の JMeter テストファイルをアップロードします。 ファイル名は
jmxで終わり、スペースを含めることはできません。ファイルがアップロードされると、PTS は自動的にプラグインを完了します。 詳細については、「JMeter プラグインの自動補完」をご参照ください。
ファイルをアップロード をクリックして、CSV 形式のデータファイルや JAR 形式のプラグインなどの他のファイルをアップロードします。
重要これらのファイルは、以前にアップロードされた同じ名前のファイルを上書きする場合があります。 上書きするかどうかを確認するには、[アクション] 列にあるファイルの MD5 ハッシュ値を表示し、オンプレミスファイルの MD5 ハッシュ値と比較します。
制限:
JMX スクリプトファイル:ファイルサイズは 2 MB を超えることはできません。 複数の JMX スクリプトファイルをアップロードできます。 ただし、JMeter テストに使用できる JMX スクリプトファイルは 1 つだけです。 テストを開始する前に、1 つの JMX スクリプトファイルを選択する必要があります。2 MB
JAR ファイル:ファイルサイズは 10 MB を超えることはできません。 アップロードする JAR ファイルをローカルの JMeter 環境でデバッグして、デバッグが成功したことを確認してください。10 MB
CSV ファイル:CSV ファイルのサイズは 60 MB を超えることはできません。 60 MB を超えるファイルをアップロードするには、60 MBOSS データソース機能を使用できます。 JMX 以外のファイルの数は合計で 20 を超えることはできません。
重要XLSX ファイルの接尾辞を CSV に直接変更しないでください。 Excel、Numbers などのソフトウェアを使用して CSV ファイルをエクスポートするか、Apache Commons CSV を使用して CSV ファイルを生成することをお勧めします。
データファイルが JMX スクリプトに関連付けられている場合は、[CSV データセット設定] の [ファイル名] にファイル名を入力する必要があります。 ファイル名にファイルパスを含めることはできません。 次の図は例を示しています。 そうしないと、データファイルを読み取ることができません。 同様に、__CSVRead を使用して CSV ファイルからデータを読み取るか、JAR パッケージ内のファイルを指定する場合は、ファイル名を入力する必要があります。

複数の JMX ファイルをアップロードした場合は、JMeter テストの開始に使用する JMeter スクリプトとして 1 つの JMX ファイルを選択する必要があります。
(オプション) CSV ファイルに対して [ファイルの分割] を選択して、ファイル内のデータが各ロードジェネレーターに対して一意であることを確認します。 そうしないと、異なるジェネレーターで同じデータが使用されます。 詳細については、「JMeter での CSV パラメーターファイルの使用」をご参照ください。
(オプション) アップロードするスクリプトに、タイマーやコントローラーなどの分散適応コンポーネントが含まれている場合は、複数の JMeter テストの異なる IP アドレスに基づいてこれらのコンポーネントを設定できます。 これにより、正確で効果的なパフォーマンステストが保証されます。
[同期タイマー] を設定します。 アップロードされた JMeter スクリプトにタイマーが提供されている場合は、タイマーのパラメーターを [グローバル] または [単一ジェネレーター] に設定する必要があります。
[一定スループットタイマー] を設定します。 アップロードされた JMeter スクリプトにコントローラーが提供されている場合は、コントローラーのパラメーターを [グローバル] または [単一ジェネレーター] に設定する必要があります。 詳細については、「一定スループット分散使用の例」をご参照ください。
[依存環境の使用] を有効にするかどうかを指定します。 詳細については、「JMeter 環境管理」をご参照ください。
[はい] を選択した場合は、既存の環境を選択する必要があります。
[いいえ] を選択した場合は、JMeter バージョンを選択する必要があります。 Apache JMeter 5.0 および Java 11 がサポートされています。
設定のロード
負荷の設定方法の詳細については、「負荷モデルとレベルの設定」をご参照ください。
(オプション) 詳細設定。
詳細設定には、ログサンプリングレート設定、DNS 設定、分散適応コンポーネント設定が含まれます。 デフォルトでは、この機能は無効になっています。 この機能を有効にして設定を実行できます。
詳細設定が無効になっている状態
この場合、デフォルトの設定がサポートされます。 ログサンプリングレートは 1% です。 自動 DNS キャッシュクリアは、各サイクルで無効になっています。 デフォルトの DNS リゾルバーを使用します。 同期タイマーと一定スループットタイマーの両方が、単一のテストで有効になります。

詳細設定が有効になっている状態
ログサンプリングレート設定
デフォルトのサンプリングレートは 1% です。 ログサンプリングレートを指定できます。 サンプリングレートを下げるには、
(0,1]内の値を入力します。 サンプリングレートを上げるには、(1,50]間隔内で 10 で割り切れる数 (例:20) を入力します。重要サンプリングレートを 1% より大きく指定すると、追加料金が発生します。 たとえば、サンプリングレートを 20% に設定すると、20% × VUM の追加料金が発生します。 詳細については、「従量課金制」をご参照ください。
DNS キャッシュ設定
アクセスリクエストごとに DNS キャッシュをクリアするかどうかを選択できます。 デフォルトの DNS リゾルバーまたはカスタム DNS リゾルバーを使用して、DNS キャッシュをクリアできます。
カスタム DNS リゾルバーを使用する必要がある状況:
インターネットでのパフォーマンステスト
インターネット上のサービスをテストするには、サービスのパブリックドメイン名をテスト環境の IP アドレスにバインドして、テストトラフィックをオンライントラフィックから分離できます。
Alibaba Cloud VPC でのパフォーマンステスト
Alibaba Cloud VPC 内のサービスをテストするには、API のドメイン名を VPC の内部アドレスにバインドできます。 詳細については、「Alibaba Cloud VPC でのパフォーマンステスト」をご参照ください。
分散適応コンポーネント設定
アップロードするスクリプトに、タイマーやコントローラーなどの分散適応コンポーネントが含まれている場合は、複数の JMeter テストの異なる IP アドレスに基づいてこれらのコンポーネントを設定できます。 これにより、正確で効果的なパフォーマンステストが保証されます。
同期タイマー を設定します。アップロードされた JMeter スクリプトにタイマーが指定されている場合は、タイマーのパラメーターを グローバル または 単一ジェネレーター に設定する必要があります。

グローバルは、スクリプトのしきい値がすべてのロードジェネレーターの合計しきい値として適用されることを指定します。 単一ジェネレーターのしきい値 = (スクリプトのしきい値)/(IP アドレスの数)。 たとえば、2 つの IP アドレスが使用され、スクリプトのしきい値は 1,000 です。 この例では、単一ジェネレーターのしきい値は 500 です。
単一ジェネレーターは、スクリプトのしきい値が各ロードジェネレーターに適用されることを指定します。これはスクリプトを上書きしません。 同時ユーザーは設定値と一致する必要があることに注意してください。 たとえば、2 つの IP アドレスが使用され、スクリプトのしきい値は 1,000 です。 この例では、単一ジェネレーターのしきい値とすべてのジェネレーターのしきい値は、それぞれ 1,000 と 2,000 です。
定数スループットタイマーを設定します。アップロードされたJMeterスクリプトにコントローラーが提供されている場合は、コントローラーのパラメーターをグローバルまたは単一ジェネレーターに設定する必要があります。

グローバルは、スクリプトのしきい値がすべてのロードジェネレーターの合計しきい値として適用されることを指定します。 単一ジェネレーターのしきい値 = (スクリプトのしきい値)/(IP アドレスの数)。 パフォーマンステストで 2 つの IP アドレスを使用して、スレッドグループで 100 人の同時ユーザーをシミュレートするとします。 スクリプトでは、ターゲットスループットは [このスレッドのみ] モードで 1 分あたり 100 リクエストに設定されています。 この場合、シナリオの 1 分あたりの合計ターゲット TPS は 2 × (100 人の同時ユーザー/2) × (100/2) = 5000 です。
単一ジェネレーターは、スクリプトのしきい値が各ロードジェネレーターに適用されることを指定します。これはスクリプトを上書きしません。 同時ユーザー数は、設定値と一致する必要があることに注意してください。 パフォーマンステストで 2 つの IP アドレスを使用して、スレッドグループで 100 人の同時ユーザーをシミュレートするとします。 スクリプトでは、ターゲットスループットは [このスレッドのみ] モードで 1 分あたり 100 リクエストに設定されています。 この場合、シナリオの 1 分あたりの合計ターゲット TPS は 2 × (100 人の同時ユーザー/2) × 100 = 10,000 です。
(オプション) クラウドリソース監視を追加します。
この機能を有効にすると、テスト中にテストレポートで対応する監視データをすばやく表示できます。 デフォルトでは、この機能は無効になっています。 この機能を手動で有効にする必要があります。
(オプション) 追加情報を追加します。
パフォーマンステストの所有者と関連する備考を追加できます。 デフォルトでは、この機能は無効になっています。 この機能を手動で有効にする必要があります。
手順 2:テストの開始
スムーズなパフォーマンステストを確実にするために、デバッグシナリオでネットワーク接続、プラグインの整合性、およびスクリプト設定を確認できます。 シナリオをデバッグするには、[シナリオのデバッグ] をクリックします。 詳細については、「シナリオのデバッグ」をご参照ください。
[保存して開始] をクリックします。 [ヒント] ページで、[今すぐ実行] を選択し、[テストは許可されており、適用される法律および規制に準拠しています] をクリックしてから、[開始] をクリックします。
(オプション) パフォーマンステストデータを監視し、テスト速度を調整できます。
データ情報
データ情報
説明
リアルタイム VUM
各パフォーマンステストで消費されるリソースの総数。 単位:VUM (仮想ユーザーあたり 1 分あたり)。
リクエスト成功率 (%)
統計期間におけるすべてのエージェントの全シナリオリクエストの成功率。
平均 RT (成功リクエスト/失敗リクエスト)
成功 RT 平均 (ms):すべての成功リクエストの平均 RT。
失敗 RT 平均 (ms):すべての失敗リクエストの平均 RT。
TPS
統計期間におけるすべてのエージェントのリクエストの総数を期間 (単位:秒 (s)) で割った値に等しい。
例外の数
リクエスト例外の数。 リクエスト例外は、接続タイムアウトやリクエストタイムアウトなど、さまざまな原因で発生します。
トラフィック (リクエスト/レスポンス)
ロードジェネレーターがリクエストを送信し、レスポンスを受信するために消費するトラフィック。
同時実行性 (現在/最大)
負荷テストの同時実行性。 パフォーマンステストに速度調整が設定されている場合、システムは現在の同時実行性と設定された最大同時実行性を表示します。 ウォームアップフェーズ中に設定された最大同時実行性に達しない場合、ウォームアップの完了後、現在の同時実行性が設定された同時実行性として使用されます。
[速度調整] をクリックし、必要な同時リクエスト数を入力します。 テスト中に数を調整できます。
合計リクエスト数
シナリオのパフォーマンステスト中に送信されたリクエストの総数。
説明Backend Listener を使用して、監視データのソースを集計および計算します。 統計サンプリングとデータの集計および計算の両方で期間は 15 秒です。 そのため、データの遅延が発生する場合があります。
設定
このページには、負荷ソース、設定期間、トラフィックモデル、指定された IP アドレスの数など、シナリオ設定の基本情報が表示されます。
負荷テスト
[テストの詳細] タブで、リンクの右側にある [チャートの表示] をクリックして、TPS、成功率、応答時間、トラフィックなどのリアルタイムデータを表示します。
[ロードジェネレーターのパフォーマンス] タブをクリックして、すべてのロードジェネレーターの CPU 使用率、Load 5、メモリ使用率、ネットワークトラフィックの時系列曲線を表示します。 ジェネレータータイプ別にパフォーマンスを表示できます。
ECS 監視、SLB 監視、RDS 監視、ARMS 監視を追加した場合は、[クラウドリソース監視] タブをクリックして、各ジェネレーターの監視情報を表示できます。
サンプリングログ
[サンプリングログ] タブでは、テスト中にサンプラー、応答ステータス、RT 範囲に基づいてログをフィルタリングし、ログの詳細を表示できます。
テスト中にサンプラーと応答ステータスに基づいてログをフィルタリングします。 ログに対応する [アクション] 列の [詳細の表示] をクリックします。
[ログの詳細] ダイアログボックスの [一般] タブで、ログフィールドとフィールド値を表示します。 ダイアログボックスの右上隅で、表示形式を切り替えます:[共通] または [HTTP] プロトコルスタイル。
JMeter スクリプトで [HTML ファイルからの埋め込みリソース] が設定されている場合、ログの詳細に [サブリクエストの詳細] タブが表示されます。
特定のサブリクエストを選択して、対応するリクエストログをフィルタリングできます。
[タイミングウォーターフォール] タブには、すべてのリクエストと各サブリクエストに費やされた時間が表示されます。
[トレースビュー] タブには、テスト API のアップストリームトレースとダウンストリームトレースの詳細が表示されます。
手順 3:テストレポートの表示
テストが停止すると、システムはテスト中のデータを自動的に収集し、レポートを作成します。 このレポートには、さまざまな JMeter シナリオとこれらのシナリオの動的トレンドが含まれています。
PTS console にログインし、 を選択します。
[レポートリスト] ページで、ドロップダウンリストからシナリオを選択します。 表示するレポートを見つけて、[アクション] 列の [レポートの表示] をクリックします。 詳細については、「JMeter テストレポートの表示」をご参照ください。
説明トレンドチャートでは、各ポイントの統計データサンプリング期間は 15 秒であり、最終データレポートでは最初にデータの遅延が表示される場合があります。 レポートデータを保持できる最大日数は 30 です。 必要に応じて、レポートをコンピューターにエクスポートできます。
(オプション) 手順 4:テストレポートのエクスポート
現在のテストレポートをコンピューターにエクスポートできます。
[レポートの詳細] ページで、[レポートのエクスポート] をクリックします。
[透かしバージョン] または [透かしなしバージョン] を選択し、テストレポート (PDF) をコンピューターにダウンロードします。
サンプルシナリオ
次のシナリオで JMeter パフォーマンステストを使用できます。
高並列分散テストが必要なシナリオ。
テスト中にリアルタイムの高精度監視が必要で、テスト後にテストレポートが自動的に生成されるシナリオ。
JMeter スクリプトと JMeter 環境の依存関係ファイルを管理する必要があるシナリオ。
JMeter の使用方法の詳細については、「JMeter を使用したアップロードのシミュレート」をご参照ください。