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

Performance Testing:JMeter での複数スレッドグループの使用に関する注意事項

最終更新日:Jan 08, 2025

JMeter テストプランに複数のスレッドグループが存在する場合、JMeter およびパフォーマンス テスト (PTS) のパラメーターを設定することにより、複数スレッドグループで並列またはシリアルパフォーマンステストを実行する方法を理解する必要があります。

背景

Apache JMeter には、スレッドグループ、セットアップスレッドグループ、およびティアダウン スレッドグループが含まれています。

  • スレッドグループ: スレッドグループは、テストプランの中核コンポーネントの 1 つです。スレッドグループは、テスト対象ユーザーの動作シミュレーションを定義し、仮想ユーザー (スレッド) の数と仮想ユーザーの動作およびライフサイクルを制御します。

  • セットアップ スレッドグループ: セットアップ スレッドグループは、PTS の前に初期化操作を実行する特殊なスレッドグループタイプです。通常、セットアップ スレッドグループは、データベース接続の確立など、テスト環境を準備したり、PTS の前提条件を設定したりします。

  • ティアダウン スレッドグループ: ティアダウン スレッドグループは、PTS プランの完了後にクリーンアップ操作を実行する特殊なスレッドグループタイプです。通常、ティアダウン スレッドグループは、テスト環境の復元または終了作業を行います。このようにして、データベース接続のクローズなど、PTS 中のシステムへの変更を取り消すことができます。

前置后置线程组

PTS で設定された同時実行数とループ数は、JMeter スクリプトのメイン スレッドグループの構成を排他的に上書きし、セットアップ スレッドグループとティアダウン スレッドグループには影響しません。

image

並列またはシリアルの複数スレッドグループを設定する

JMeter スクリプトに複数のメイン スレッドグループが含まれている場合は、次の手順を参照して、並列またはシリアルの複数スレッドグループを設定できます。

PTS 負荷設定の [ループ] は、すべてのスレッドグループに適用されます。[テスト期間] が完了すると、パフォーマンステスト全体が停止します。

並列複数スレッドグループ

  • 複数のスレッドグループが並列で実行されている場合、実行時間は [ループ] または [テスト期間] のどちらが先に来るかによって決まります。たとえば、テスト期間が 10 分に設定され、ループが 5 回に設定されているとします。この場合、5 つのループすべてを完了するのに 5 分しかかからない場合、パフォーマンステストは 5 分で停止します。

  • 複数のスレッドグループを並列で実行している場合は、ローカル JMeter スクリプトの [テストプラン] プロパティで [スレッドグループを連続して実行する (一度に 1 つ)] を選択しないでください。これは、すべてのスレッドグループが同時に開始され、各スレッドグループが独立して実行されることを意味します。並列複数スレッドグループは、次のシナリオをサポートしています。

    • 並列負荷テスト: 複数のユーザーが同時にシステムにアクセスすることをシミュレートする場合、並列複数スレッドグループを設定できます。たとえば、複数スレッドグループで異なるタイプのユーザー動作を設定できます。

    • 異なるシナリオでの同時テスト: テストプランで異なるシナリオまたは機能モジュールを同時にテストする必要がある場合は、並列複数スレッドグループを設定できます。

    • テスト期間の短縮: 並列複数スレッドグループを設定すると、すべてのスレッドグループが同時に実行されるため、テスト期間を短縮できます。

Run Thread Groups consecutively

シリアル複数スレッドグループ

シリアルシナリオはもう少し複雑で、操作は次のとおりです。

  1. JMeter スクリプトをローカルでデバッグする場合は、[テストプラン] プロパティで [スレッドグループを連続して実行する (一度に 1 つ)] を選択します。これは、スレッドグループが順番に実行され、前のグループが完了した後にのみ次のグループが開始されることを意味します。これは、段階的にテストする場合に特に役立ちます。たとえば、初期化タスクが完了した後にのみ負荷テストを開始します。

    独立运行每个线程组

  2. PTS で [ループ] を設定します。ループ数は各スレッドグループに適用されます。たとえば、テストプランに A、B、C の 3 つのスレッドグループが含まれており、PTS 負荷設定でループ数が 5 回に設定されているとします。この場合、実行シーケンスは、A の同時実行に基づく 5 ループ、B の同時実行に基づく 5 ループ、C の同時実行に基づく 5 ループです。

  3. PTS で設定された [テスト期間] は、複数スレッドグループでのシリアルパフォーマンステスト中に中断が発生しないように十分な長さである必要があります。パフォーマンステストの推定期間は、サービスリクエストの RT にリクエストの総数を掛けたものとして計算されます。パフォーマンステストの推定期間に基づいて期間を延長できます。