起動スレッドで設定した変数に基づいて変更できます。下記参照。
Jmeterでは、beanshellサンプラー変数を使用して可変数のスレッドを設定するにはどうすればよいですか?
ただし、スレッド グループが開始されると、それを変更することはできません。この機能が役に立たないと言った人には同意しません。負荷テストには多くの種類があり、期間中にすべて同じ数のユーザーが実行されるわけではありません。以下に、私が勤務する銀行で実施しているエンタープライズ ロード テストの 2 つのタイプの例を示します。
- 持続時間テスト - 常に同じ数のユーザーが実行されます (おそらく短い立ち上げ期間で)
- ブレークポイント テスト - アプリケーションが壊れるまでユーザー数を段階的に増加させます
- スパイク テスト - 一定数のユーザーで実行しますが、散発的に多数のユーザーを
投入します
ブレーク ポイント テストでは、アプリケーションが壊れるまでユーザー数を増やします (ポイントは、アプリがどれだけスケーリングできるかを確認することです)。スレッドグループの「ランプアップ期間」プロパティを使用して、これを行うことができます。ランプアップ時間を 1000 に設定し、スレッド数を 100 に設定すると、10 秒ごとに 1 つのスレッドが追加されます。
スパイク テストは持続時間テストに似ていますが、ある間隔で多数のユーザーがログインします。これは、ピーク時のアプリケーションの応答時間や、突然多数のユーザー (非常に実際のシナリオ)。
Jmeter は、エンタープライズ負荷テストに必要なすべての負荷テスト シナリオを処理できるわけではありません。私が検討している回避策の 1 つは、すべてのスレッドを開始するだけで、スレッドの一部をスリープ状態にする方法を見つけることです。したがって、スレッド数を 1000 に設定しても、そのうち 980 スレッドをスリープ状態にするか、何もしないようにすることができます。次に、time_in_seconds%5==0 (5 分ごと) のときに、他のスレッドの実行を許可して、スパイク テストをシミュレートします。アイデアは、スレッドを 1000 にハードコーディングでき、常に 1000 のスレッドが実行されるようにすることができますが、すべてのスレッドが常に何かを実行している必要はありません。
(言い換えれば、おそらく方法を見つけることができますが、創造的になる必要があります)
更新: さまざまな種類のテストを可能にするこのプラグインを見つけました。まだ試していませんが、有望に見えます:
http://jmeter-plugins.org/wiki/ThroughputShapingTimer/