ApacheJMeterでのリクエスト間の遅延の挿入
1. 概要
Apache JMeterでテストしている場合、ユーザーの動作をより適切にモデル化するために、リクエスト間に遅延を追加したい場合があります。
このチュートリアルでは、簡単なテスト計画を作成します。 生成されたワークロードを調整するために使用可能なパラメーターを確認してから、遅延を追加するようにタイマーを構成します。
2. 使用事例
リクエスト間に遅延を追加したい場合があります。
- 特定の時間内に送信されるリクエストが多すぎることに関連するエラーを回避する
- 実行されたアクションの自然なギャップで実際のユーザーアクションをエミュレートします
- 1分あたりのリクエスト数を調整して、ワークロードの構成をより細かく制御します
3. 遅延の使用
まず、荷重プロファイルを定義する必要があります。 ここではさまざまな目的を設定できます。
- 増大するワークロードの下でシステムがどのように動作するかを確認して、パフォーマンスの制限を見つけます
- ピーク負荷後にアプリケーションがどのように回復するかを確認します
これらのユースケースをシミュレートするための2つのJMeterオプションがあります。
- スレッドグループ–並列ユーザーの数
- タイマー–各ユーザーのリクエスト間の遅延
4. テスト計画
4.1. 基本計画
1つのスレッドグループで基本的なテストプランを作成しましょう。 並列リクエストの数、立ち上げ期間、およびテストを実行する回数を設定します。 JMeter表記の1つのスレッドは、1人の同時ユーザーを意味することに注意してください。
ランプアップ期間を使用して、ワークロードを増やすことができます。 ここでは、1つのスレッドから開始して定義されたスレッド数に到達するまでの期間を設定する必要があります。
より洗練されたローディングプロファイルを作成するために、スレッドの寿命を指定することもできます。 この設定は2つのことを意味します:
- 起動遅延–JMeterがスレッドの開始を待機する時間
- 期間–実行時間
ループカウントは、指定されたHTTP要求の繰り返し量を指定するための便利な設定でもあります。
4.2. リクエストの追加
次に、2つのHTTPリクエストを追加します。 スクリプトをテストするには、https://gorest.co.in/にあるオンラインRESTAPIを使用します。 HTTPリクエスト設定は、ユーザーインターフェイスで構成されます。
また、リクエストがデータを返すことを確認するために、2つのアサーションを追加しましょう。
テストがエラーなしで機能することを確認する必要があります。 このため、結果ツリーの表示要素を追加してから、テストプランを実行してみましょう。
最初のリクエストを実行した結果は、結果ツリーの表示パネルに表示されます。
2番目のリクエストのサンプラー結果の出力を見てみましょう。 ここで、 SampleStartは2021-05-1715:00:40 であり、最初のリクエストと同じ時間です。 これは、デフォルトでは、リクエスト間に遅延がないことを意味します。
Thread Name:Thread Group 1-1 Sample Start:2021-05-17 15:00:40 SAMT
これを念頭に置いて、リクエスト間のこのギャップをどのように増やすことができるかを見てみましょう。
5. タイマーの追加
5.1. コンスタントタイマー
タイマー要素を追加するには、スレッドグループ要素を右クリックして、追加、タイマー、定数タイマーを選択する必要があります。
ここでは、スレッドグループにスレッド遅延が3秒のコンスタントタイマーを追加しました。 このタイマーは、各リクエストの間に遅延を追加します。
テストプランを再実行して、結果ツリーの表示を確認しましょう。タイマー要素で設定した遅延でリクエストが実行されたことがわかります。
Thread Name:Thread Group 1-1 Sample Start:2021-05-17 15:18:17 SAMT
そして、次のHTTPリクエストが最初のリクエストの3秒後に実行されたことがわかります。
Thread Name:Thread Group 1-1 Sample Start:2021-05-17 15:18:20 SAMT
5.2. コンスタントタイマーの代替
コンスタントタイマーの代わりに、ユニフォームランダムタイマーを使用できます。 このタイプのタイマーは、コンスタントタイマーと同じ方法で追加できます。
ドロップダウンメニューでは、コンスタントタイマーの直後にあります。
タイマー名からわかるように、この遅延を特定の範囲で変化させたい場合に使用する必要があります。 このタイマーをサンプルに追加して、どのように機能するかを見てみましょう。
一定遅延オフセットは、遅延ごとに永続的な部分を追加します。 ランダム遅延最大は、一定遅延オフセットに追加される追加のランダム部分を定義するのに役立ちます。 これらの設定により、遅延が小さくなりすぎることなくランダムな係数を提供できます。
このテストを実行して、ViewResultsTree要素を見てみましょう。
サンプルの開始点を詳しく見ると、定義されたタイマーパラメーターに従ってランダムな遅延が追加されていることがわかります。
Thread Name:Thread Group 1-1 Sample Start:2021-07-15 09:43:45 SAMT Thread Name:Thread Group 1-1 Sample Start:2021-07-15 09:43:49 SAMT Thread Name:Thread Group 1-1 Sample Start:2021-07-15 09:43:55 SAMT
ここでは、いくつかのタイマーオプションについて説明しましたが、他のタイマー構成も利用できます。
6. 結論
このチュートリアルでは、Apache JMeterで2つのリクエストの間にカスタム遅延を挿入し、スレッドグループ設定を使用して作成されたワークロードモデルの柔軟性を高める方法を説明しました。