Performance Testing Service (PTS) を使用すると、VPC 内に JMeter やその他のツールをデプロイすることなく、PTS コンソールから直接、VPC にデプロイされた Dubbo マイクロサービスをテストできます。
前提条件
開始する前に、以下を確認してください。
ジェネリック方式で呼び出し可能な Dubbo マイクロサービス
テストシナリオの作成
PTS コンソールにログインし、パフォーマンス テスト > シナリオの作成 を選択し、Dubbo をクリックします。
マイクロサービスシナリオ ページで、シナリオ名、テスト対象アプリケーションのソース、リージョン、マイクロサービスの名前空間を指定します。
シナリオ設定 タブで、+ Dubbo3 ノードの追加 をクリックして、ビジネスセッションにテストノードを追加します。
ビジネスセッションの右側にある展開アイコンをクリックして、基本設定、関数パラメーター、出力パラメーター、チェックポイントを設定します。
基本設定
| パラメーター | 説明 | 例 |
|---|---|---|
| アプリケーション名 | アプリケーションの名前。 | testapp |
| API | マイクロサービスへのアクセスに使用される API。 | com.alibaba.pts.dubbo.api.DemoService |
| レジストリタイプ | サービスレジストリのタイプ。有効な値:ZooKeeper、Nacos、Redis、ダイレクト接続。 | Nacos |
| レジストリアドレス | マイクロサービスレジストリのアドレスを [ip]:[port] または [ドメイン名]:[port] のフォーマットで指定します。複数のレジストリはカンマで区切ります。例:[ip1]:[port1],[ip2]:[port2]。 | 192.168.0.0:8080 |
| グループ | Dubbo マイクロサービスのグループ。 | testgroup |
| バージョン | Dubbo マイクロサービスのバージョン。デフォルト:1.0。 | 1.0 |
| メソッド名 | Dubbo マイクロサービスにアクセスするためのメソッド名。 | sayHello |
| 接続タイムアウト | Dubbo マイクロサービスとの接続を確立するためのタイムアウト期間。 | 5000 |
| 応答タイムアウト | Dubbo マイクロサービスからの応答を受信するためのタイムアウト期間。 | 20000 |
Microservices Engine (MSE) ユーザーの場合、レジストリアドレスのフォーマットは、名前空間が設定されているかどうかによって異なります:
名前空間が設定されていない場合:デフォルトの名前空間 DEFAULT_GROUP が使用されます。レジストリアドレスを直接入力します。例:
XXX.nacos-ans.mse.aliyuncs.com:8848。名前空間が設定されている場合:レジストリアドレスに名前空間を追加します。例:
XXX.nacos-ans.mse.aliyuncs.com:8848?namespace=TEST。
関数パラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| 共通パラメーター | パフォーマンステストに関わる Dubbo マイクロサービス関数の共通パラメーター。 | パラメーター名:java.lang.String、パラメーター値:${date} |
| 暗黙的パラメーター | パフォーマンステストに関わる Dubbo マイクロサービス関数の暗黙的パラメーター。 | パラメーター名:setAttachment、パラメーター値:("index","1") |
出力パラメーター
セッションの[出力パラメーター定義]タブで、出力パラメーターを設定します。詳細については、「出力パラメーター」をご参照ください。
チェックポイント
セッションの [チェックポイント(アサーション)] タブで、チェックポイントを設定します。詳細については、「チェックポイント(アサーション)」をご参照ください。
ストレステストパラメーターの設定
| パラメーター | 説明 |
|---|---|
| ストレスソース | インターネット:負荷テストノードは世界中に配置されています。ノードリソース(IP アドレス)はテスト規模に応じて割り当てられます。Alibaba Cloud仮想プライベートクラウド(VPC):テストはVPC上で実行されます。負荷テストツールとテスト対象サーバーは同一リージョンに配置されます。詳細については、「Alibaba Cloud VPC での負荷テスト」をご参照ください。 |
| ストレスモード | 仮想ユーザーモード:クライアントの視点から、ビジネスシステムの各ノードが処理できる同時オンラインユーザー数を測定します。目標の仮想ユーザー数を設定します。秒間リクエスト数 (RPS) モード:サーバーの視点からシステムのスループットを測定します。仮想ユーザーから変換することなく、RPS 値を直接指定します。 |
| 自動増分モード | 手動調整:仮想ユーザー数は固定されます。ストレス予測チャートはフラットな線で表示されます。段階的増分:仮想ユーザー数は段階的に増加します。仮想ユーザーは、目標数に達するまで各間隔で設定された量だけ増加し、その後は一定に保たれます。ストレス予測チャートはステップパターンで表示されます。 |
| 最大仮想ユーザー数 | 仮想ユーザーモードにおけるシナリオ全体の最大仮想ユーザー数。 |
| 増分率 | 段階的増分モードでは、増分率を指定する必要があります。 |
| 単一負荷レベルの持続時間 | 段階的増分モードで必須です。各負荷レベルで問題を特定するのに十分な時間を確保するため、少なくとも 1 分に設定します。 |
| 合計テスト時間 | 段階的増分モードでは、持続時間は「単一負荷レベルの持続時間 / 増分量 x 1.1 (切り上げ)」以上である必要があります。最大持続時間は 24 時間です。 |
| 指定 IP アドレス数 | ストレスをかける IP アドレスの数です。詳細については、「ストレスをかける IP アドレスの数を指定する」をご参照ください。 |
| リージョン別トラフィック | このスイッチをオンにして、ローカルユーザーのトラフィックをシミュレートします。オンにした後、ストレステスターのリージョン分布を設定します。詳細については、「カスタムトラフィック」をご参照ください。 |
パフォーマンステストの開始
保存して開始 をクリックします。注意 ページで、今すぐ実行 と このテストは許可されており、適用される法律および規制に準拠しています。 を選択し、開始 をクリックします。
完全なテストを実行する前にシナリオをデバッグするには、[デバッグ] をクリックします。詳細については、「シナリオのデバッグ」をご参照ください。
テスト結果の表示
パフォーマンステストが完了すると、システムは、シナリオメトリック、ビジネス詳細、モニタリング詳細、および API サンプリングログを含むレポートを生成します。詳細については、「PTS ストレステストレポートを参照する」をご参照ください。
(オプション) コントローラーとタイマーの追加
コントローラーとタイマーを追加して、テストノードの実行動作をカスタマイズします。
コントローラー
シナリオ設定 タブで、コントローラーの追加 をクリックし、コントローラータイプを選択します。
ループコントローラー
テストノードがループ内で実行される回数を制御します。ループコントローラーを選択し、その横にある「その他」アイコンをクリックし、ループさせるノードを選択して、ループ回数を指定します。テスト中、指定されたノードは指定された回数だけ順次実行されます。
トランザクションコントローラー
内部のすべてのテストノードを単一のトランザクションとしてグループ化します。2 つのスイッチが利用可能です:
親サンプルの生成:
オン:トランザクションコントローラー内の個々のノードの結果は個別に記録されません。代わりに、トランザクションコントローラーの結果として集計されます。
オフ:トランザクションコントローラーの結果と個々のテストノードの結果の両方がレポートに表示されます。
サンプルにタイマーと前処理/後処理の期間を含める:
オン:トランザクションコントローラーの平均応答時間は、すべてのテストノード、タイマー、前処理および後処理の平均応答時間の合計です。
オフ:トランザクションコントローラーの平均応答時間は、すべてのテストノードの平均応答時間の合計のみです。
1 回だけ実行されるコントローラー
このコントローラーに追加されたノードは 1 回だけ実行されます。
タイマー
シナリオ設定 タブで、タイマーの追加 をクリックし、タイマータイプを選択します。
固定タイマー
パフォーマンステスト中に固定の一時停止時間を指定します。単位:ミリ秒。
同期タイマー
タイムアウト と シミュレートされたユーザー数 の値を指定します。タイムアウト期間内に指定されたユーザー数に達すると、パフォーマンステストがトリガーされます。タイムアウト内に指定されたユーザー数に達しない場合、テストはそれ以上待たずにトリガーされます。
一様ランダムタイマー
ランダムな一時停止時間を指定します。固定遅延オフセット と ランダム遅延 を設定します。合計一時停止時間は、固定一時停止時間 (固定遅延オフセット) に、ランダム遅延 で指定された範囲内のランダムな値を加えたものになります。各ランダム値は等しい確率で発生します。
ガウス タイマー
一様ランダムタイマーに似ていますが、ランダムな一時停止時間は正規分布に従います。固定遅延オフセット と ランダム遅延 を設定します。
固定スループットタイマー
ターゲットスループットに基づいてテストノードの実行を制御します。以下のオプションからスループット条件を設定します:
現在のスレッドのみ
すべてのアクティブスレッド
現在のリンク内のアクティブスレッド
グローバルにアクティブなスレッド
現在のリンク内のグローバルにアクティブなスレッド