すべてのプロダクト
Search
ドキュメントセンター

Performance Testing:JMeter での RPS 制限の設定

最終更新日:Jan 08, 2025

RPS は 1 秒あたりのリクエスト数であり、通常は JMeter エンジン下での負荷の動作を示します。 API パフォーマンスのテストに適しています。このトピックでは、JMeter ベースのシナリオで RPS を制御する方法について説明します。

RPS 制限の設定

既存の JMeter スクリプトを再利用するために、PTS は JMeter テストをサポートしています。デフォルトでは、JMeter エンジンは同時実行モードで実行されます。RPS は、同時実行数と応答時間によって決まります。 同時実行数が少なすぎると、予期しない RPS になる可能性があります。同時実行数が多いと、サーバーが過負荷になる可能性があります。 したがって、JMeter は RPS を制限するために Constant Throughput Timer コンポーネントを提供しています。

次の手順を実行することで、JMeter スクリプトのスレッドグループに [constant Throughput Timer] ノードを追加して、このスレッドグループの RPS を制限できます。次の図は、JMeter シナリオで RPS を制御する方法を示しています。

image

使用上の注意:

[constant Throughput Timer] ノードを設定する際には、次の項目に注意してください。

  1. [calculate Throughput Based On][this Thread Only] に設定する必要があります。その後、トリガーされた操作は単一のスレッドを使用して実行されます。PTS は、同時実行数に基づいて、異なるシナリオで複数の JMeter エンジンを自動的に起動します。その他の設定は、単一のエンジンに対してのみ有効です。したがって、最大 RPS と最大同時実行数を設定することで、グローバルな最大 RPS を取得できます。

  2. [target Throughput][constant Throughput Timer] の)は分単位で表されます。__jexl3 を使用して、RPS に 60 秒(1 分 = 60 秒)を掛けることができます。 単一のスレッドで 0.5 RPS を取得するには、[target Throughput]${__jexl3(0.5 x 60)} に設定します。グローバル RPS 制限を同時実行数で割ることで、単一のスレッドの RPS 制限を取得できます。

設定例:

image

要約すると、JMeter テスト中の RPS の制御は、設定された同時実行数に依存しており、それに応じて調整することはできず、必要な機能をサポートしていない可能性があります。RPS でのテストを実装するには、PTS シナリオを作成することをお勧めします。このシナリオでは、秒単位での RPS の設定と調整がサポートされています。詳細については、「負荷モデルとレベルの設定」をご参照ください。