Performance Testing Service (PTS) は、クラウド上で Apache JMeter テストを大規模に実行します。.jmx スクリプトをアップロードし、負荷パラメーターを設定して、ローカルインフラストラクチャをプロビジョニングまたは管理することなく分散性能テストを実行できます。PTS は、エラスティックなリソーススケーリングを処理し、自動生成されたレポートとともにリアルタイムモニタリングを提供します。
前提条件
開始前に、以下の準備が整っていることを確認してください。
PTS コンソールへのアクセス権
.jmxファイルとして保存された JMeter テストプラン(ファイル名にスペースを含めることはできません)(任意)CSV データファイルや JAR プラグインファイルなどの補助ファイル
手順 1:シナリオの作成
PTS コンソールにログインし、Performance Test > Create Scenario を選択して、JMeter をクリックします。
Create a JMeter Scenario ダイアログボックスで、Scenario Name を入力します。
Scenario Settings セクションで、JMeter テストプラン(
.jmxファイル)をアップロードします。アップロードが完了すると、PTS は必要なプラグインを自動的に解決・インストールします。詳細については、「Automatic completion of JMeter plugins」をご参照ください。Upload File をクリックして、CSV データファイルや JAR プラグインパッケージなどの補助ファイルを追加します。1 つのシナリオにつき、JMX 以外のファイルを最大 20 個までアップロードできます。
重要既存のファイルと同じ名前のファイルをアップロードすると、上書きされます。Actions 列の MD5 ハッシュとローカルファイルのハッシュを比較して、ファイルが上書きされたかどうかを確認できます。
重要.xlsxファイルの拡張子を変更して.csvファイルに名前変更しないでください。代わりに、Excel や Numbers から CSV としてエクスポートするか、Apache Commons CSV などのライブラリを使用してプログラムで CSV ファイルを生成してください。JMX スクリプト内で CSV ファイルが参照されている場合、CSV Data Set Config 要素の Filename フィールドには、ファイルパスではなくファイル名のみを入力します。たとえば、
/data/websites.csvではなく、websites.csvと入力します。このルールは、__CSVRead関数を使用する場合や、JAR パッケージ内のファイルを参照する場合にも同様に適用されます。

ファイル制限:
ファイルタイプ サイズ制限 備考 JMX スクリプト 1 ファイルあたり 2 MB 複数の JMX ファイルをアップロードできますが、1 回のテストで選択できるのは 1 つだけです JAR プラグイン 1 ファイルあたり 10 MB アップロード前に、ローカルの JMeter 環境で JAR をデバッグしてください CSV データ 1 ファイルあたり 60 MB より大きなファイルには、OSS データソース 機能をご利用ください 複数の JMX ファイルをアップロードした場合は、このテストで使用するファイルを選択します。
(任意)各負荷ジェネレーターに対して一意のデータを保証するには、CSV ファイルに対して Split File を選択します。このオプションを指定しない場合、すべてのジェネレーターが同じデータを使用します。詳細については、「Use CSV parameter files in JMeter」をご参照ください。
(任意)スクリプトでタイマーやコントローラーを使用しており、ジェネレーター間で動作を調整する必要がある場合は、分散適応コンポーネントを設定します。これらのモードが負荷をどのように分散するかの詳細については、「Advanced settings」をご参照ください。使用例については、「Constant throughput distributed usage example」をご参照ください。
Synchronous Timer: Global または Single Generator を設定します。
Constant Throughput Timer: Global または Single Generator を設定します。
Use Dependency Environment で JMeter 実行環境を設定します。
オプション 動作 Yes 既存のマネージド環境を選択します。詳細については、「JMeter environment management」をご参照ください。 No JMeter バージョンを選択します。PTS は、Java 11 で動作する Apache JMeter 5.0 をサポートしています。
手順 2:負荷設定の構成
負荷モデル、同時実行レベル、ランプアップ期間、その他のパラメーターを設定します。
詳細については、「Configure load models and levels」をご参照ください。
手順 3:高度な設定(任意)
高度な設定は、デフォルトで無効になっています。無効の状態では、PTS は以下のデフォルト値を使用します。
| 設定項目 | デフォルト値 |
|---|---|
| ログサンプリングレート | 1% |
| リクエストサイクルごとの DNS キャッシュクリア | 無効 |
| DNS リゾルバー | デフォルト |
| 分散タイマーの範囲 | 単一テスト |
これらの動作をカスタマイズするには、高度な設定を有効にしてください。
ログサンプリングレート
デフォルトのサンプリングレートは 1% です。これを調整するには、以下のいずれかの範囲で値を入力します。
| 目的 | 値の範囲 | 例 |
|---|---|---|
| サンプリングを減らす | (0, 1] | 0.5 でログの 0.5% をサンプリング |
| サンプリングを増やす | (1, 50]内の 10 の倍数 (1, 50] | 20 でログの 20% をサンプリング |
1% を超えるサンプリングレートには追加料金が発生します。たとえば、20% のレートでは、VUM の 20% × VUM 分の料金が加算されます。詳細については、「Pay-as-you-go」をご参照ください。
DNS キャッシュ設定
各リクエストで DNS キャッシュをクリアするかどうかを設定します。デフォルトの DNS リゾルバーまたはカスタムリゾルバーを選択できます。
カスタム DNS リゾルバーは、以下の状況で役立ちます。
インターネットテスト: サービスのパブリックドメイン名をテスト環境の IP アドレスにバインドし、テストトラフィックを本番トラフィックから分離します。
VPC テスト: API ドメイン名を内部 Virtual Private Cloud (VPC) アドレスにバインドします。詳細については、「Alibaba Cloud VPC でのパフォーマンステスト」をご参照ください。
分散適応コンポーネント
スクリプトに Synchronizing Timer または Constant Throughput Timer が含まれている場合、各タイマーがジェネレーター間で負荷をどのように分散するかを設定します。
Synchronizing Timer
モードにより、スクリプトで定義されたしきい値が複数のジェネレーターにわたってどのように適用されるかが決まります。
Global: ジェネレーターごとのしきい値 = スクリプトのしきい値 / IP 数
Single Generator: 各ジェネレーターがスクリプトのしきい値を独立してフルに使用
| モード | 計算式 | 例(IP 数:2、しきい値:1,000) |
|---|---|---|
| Global | スクリプトのしきい値 / IP 数 | 各ジェネレーター:500 |
| Single Generator | ジェネレーターごとのスクリプトのしきい値 | 各ジェネレーター:1,000(合計:2,000) |

Constant Throughput Timer
モードにより、目標スループットがジェネレーター間でどのように分散されるかが決まります。
Global: ジェネレーターごとのスループット = スクリプトの目標値 / IP 数
Single Generator: 各ジェネレーターがスクリプトの目標値を独立してフルに使用
| モード | 計算式 | 例(IP 数:2、同時接続ユーザ数:100、目標値:100 req/min、「This Thread Only」モード) |
|---|---|---|
| Global | (ユーザ数 / IP 数) × (目標値 / IP 数) per IP | 合計 TPS/min = 2 × (100/2) × (100/2) = 5,000 |
| Single Generator | (ユーザ数 / IP 数) × 目標値 per IP | 合計 TPS/min = 2 × (100/2) × 100 = 10,000 |

手順 4:モニタリングとメタデータの追加(任意)
どちらの機能も、デフォルトで無効になっています。
| 機能 | 説明 |
|---|---|
| Cloud resource monitoring | テストレポートで Elastic Compute Service (ECS)、Server Load Balancer (SLB)、ApsaraDB RDS、Application Real-Time Monitoring Service (ARMS) のメトリックを表示します。 |
| Additional information | テストの所有者と備考を追加して、追跡を容易にします。 |
手順 5:テストの開始
フルロード実行前にネットワーク接続、プラグインの整合性、スクリプト構成を検証するには、Debug Scenario をクリックします。詳細については、「Debug scenarios」をご参照ください。
Save and Start をクリックします。Tips ページで、Execute Now を選択し、The test is permitted and complies with the applicable laws and regulations をチェックして、Start をクリックします。
(任意)テスト実行中にパフォーマンスデータをモニタリングし、テスト速度を調整します。
リアルタイムメトリック
| メトリック | 説明 |
|---|---|
| Real-time VUM | 消費されたリソースの合計。単位:Virtual User per Minute (VUM)。 |
| Request Success Rate (%) | すべてのエージェントにおける成功したリクエストの割合。 |
| Average RT | 成功および失敗したリクエストの平均レスポンスタイム (RT)(ミリ秒)。成功と失敗は別々に表示されます。 |
| TPS | サンプリング期間中のリクエスト総数を期間の長さで割った値。 |
| Number of Exceptions | 接続タイムアウト、リクエストタイムアウト、その他のエラーによる失敗したリクエストの件数。 |
| Traffic (request/response) | リクエスト送信および応答受信に使用された帯域幅。 |
| Concurrency (current/maximum) | 現在の同時実行数と設定済みの最大同時実行数。ウォームアップフェーズ中に設定済みの最大同時実行数に達しなかった場合、ウォームアップ完了後は現在の同時実行数が設定済みの同時実行数として使用されます。テスト中に同時実行数を調整するには、Speed Regulation をクリックします。 |
| Total Requests | テスト中に送信されたリクエストの累計件数。 |
モニタリングデータは、15 秒のサンプリング期間で Backend Listener から集約されます。若干のデータ遅延が発生する可能性があります。
テスト詳細
Test Details: リクエスト横の View Chart をクリックして、リアルタイムの TPS、成功率、レスポンスタイム、トラフィックのチャートを表示します。
Load Generator Performance: 各ジェネレーターの CPU 使用率、Load 5、メモリ使用率、ネットワークトラフィックを表示します。
Cloud Resource Monitoring: 有効にした場合、各リソースごとに ECS、SLB、RDS、ARMS のメトリックを表示します。
サンプリングログ
Sampling Logs タブで、Sampler、応答ステータス、または応答時間の範囲でログをフィルターできます。
Actions 列の View Details をクリックして、Log Details ダイアログボックスを開きます。General タブで、ログフィールドを Common または HTTP フォーマットで表示します。
JMX スクリプトで Embedded Resources from HTML Files が設定されている場合、ログ詳細に Sub-request Details タブが表示されます。サブリクエストを選択して、そのログをフィルターできます。
Timing Waterfall: すべてのリクエストおよびサブリクエストの時間内訳を表示します。
Trace View: テスト対象 API の上流および下流のトレースを表示します。
手順 6:テストレポートの表示
テストが停止すると、PTS は集計メトリックとトレンドチャートを含むレポートを自動的に生成します。
PTS コンソールで、Performance Test > Reports を選択します。
Report List ページで、シナリオを選択し、該当するレポートを見つけて、View Report をクリックします。詳細については、「View JMeter test reports」をご参照ください。
トレンドチャートの各データポイントは、15 秒のサンプリング期間をカバーしています。レポートデータは最大 30 日間保持されます。長期保存が必要な場合は、レポートをエクスポートしてください。
テストレポートのエクスポート(任意)
Report Details ページで、Export Report をクリックします。
Watermark Version または No Watermark Version を選択して、レポートを PDF としてダウンロードします。
サンプルシナリオ
PTS 上での JMeter 性能テストは、以下のシナリオに適しています。
ローカルインフラストラクチャを超えて弾力的スケーリングを必要とする高同時接続の分散テスト。
テスト中のリアルタイムかつ高精度のモニタリングと、テスト完了後の自動生成レポート。
テスト環境間での JMeter スクリプトおよび依存ファイルの一元管理。