jmeter processors controllers
JMeterのプリプロセッサーとコントローラーの概要(パートIII):
=> ここで無料のJMeterチュートリアルの包括的なシリーズに従ってください
この記事では、JMeterでのプリプロセッサー、ポストプロセッサー、およびコントローラーの使用法についてユーザーをガイドします。コントローラーは、テストシナリオを作成するので非常に便利です。
サーバーに送信される要求の独自のシーケンスを構成して、応答時間やその他のパフォーマンス要因を監視するさまざまなシナリオをテストすることをお勧めします。
学習内容:
プリプロセッサ
これらは、サンプラーが実行される前に実行される要素です。リクエストに変更を加えるサンプラーにプリプロセッサーをアタッチできます。
最も単純なケースは、HTTPリクエストで「SampleTimeout」プリプロセッサを追加して、このリクエストが定義された時間だけ実行されるようにすることです。また、この変更が親サンプラーに対してのみ行われるようにします。
以下は、JMeterで使用されるプリプロセッサの一部です。
- BeanShellプリプロセッサ
- HTMLリンクパーサー
- HTTPURLの書き換え
- JDBCプリプロセッサ
- サンプルタイムアウト
- ユーザーパラメータ
最も一般的に使用されるものを例とともに以下に説明します。プロジェクトにすべてが必要な場合とそうでない場合があります。プロジェクトに関連するシナリオを特定し、リアルタイムのパフォーマンスシナリオをカバーするのに役立つシナリオを実装してください。
ユーザーパラメータ
ユーザーパラメーターは、サンプラーで使用される前に変数の値を定義するために使用されます。 JMeterがこのプリプロセッサ要素を実行すると、同じスレッドグループ内の任意のサンプラーが参照できる変数に値が格納されます。
アンドロイド用の無料mp3音楽ダウンロードアプリ
「ユーザーパラメータ」のユーザー数よりも多くのスレッドがある場合、余分なスレッドが値を繰り返し処理します。
例えば、 スレッドグループには5人のユーザーがいますが、プリプロセッサには3人しかいません。次に、4人です。thと5thスレッドは使用します param1 そして param2 。
サンプルタイムアウト
このプリプロセッサは、リクエストのタイムアウト期間を定義するために使用されます。
例えば、 400ミリ秒のサンプル時間を設定した場合、400を超える時間がかかるすべてのリクエストの応答は失敗します。以下のスクリーンショットを参照してください。
コントローラー
コントローラーは、リアルタイムのJMeterテスト計画を作成する上で非常に重要です。リクエストがサーバーに送信される順序を定義します。
例えば、 ログインを1回実行して検索するWebアプリケーションをテストする場合、アイテム選択はすべての反復で1つずつ実行するように要求します。コントローラーは、テスト対象のサーバーで行われる要求のフローを管理することでそれを可能にします。
以下は、JMeterで最も一般的に使用されるコントローラーです。
- シンプルなコントローラー
- モジュールコントローラー
- 一度だけのコントローラー
- インターリーブコントローラー
- ループコントローラー
- コントローラーの場合
- 各コントローラー用
- 録音コントローラー等、
シンプルなコントローラー
シンプルなコントローラーは特定の機能を実行しません。これは、テスト計画を簡単に理解できるようにするために、同様の要求を保持できる一種のコンテナーです。
ループコントローラー
特定のリクエストでスレッドグループで指定されているよりも多くの反復を実行する場合は、それらをループコントローラーの下に置き、コントローラー設定にループカウントを入力できます。
例: 1ユーザーと3回の反復を持つスレッドグループがある場合、このグループの下のすべてのリクエストは3回実行されます。ここで、ループカウント2のループコントローラーの下に2つのHTTPサンプラーがある場合、これらのサンプラーは両方とも1 * 3 * 2 = 6回実行されます。
それをさらに説明する以下のスクリーンショットを参照してください
一度だけのコントローラー
このコントローラーは、スレッドグループに複数のスレッドがある場合でも、特定の要求を1回だけ実行する場合に使用されます。考えられる最も簡単な例は、「Webサイトのホームページの取得」または「Webアプリケーションへのログイン」です。リアルタイムシナリオでは、1回だけ発生し、検索や編集/削除などの他のリクエストが複数回発生するようにします。
一度だけ実行されるリクエストは、一度だけのコントローラーの下に置くことができます。以下のスクリーンショットを参照してください。一度だけコントローラー設定が親スレッドグループ設定をバイパスします。
レコーディングコントローラー
Simple Controllerと同様に、RecordingControllerはサーバーに送信される要求のシーケンスを変更しません。 HTTP(S)スクリプトレコーダーで使用されます。この非テスト要素で記録されたすべての要求は、記録コントローラーの下に保存されます。
サーバーに対して行われた記録された要求を保存するには、ターゲットコントローラーを指定する必要があります。
テスターがリクエストのURLとパラメーターに関する情報を持っていない場合、レコーディングコントローラーとHTTP(s)スクリプトレコーダーが登場します。サーバーにヒットするすべてのリクエストを簡単に記録してキャプチャできます。これは、モバイルプロジェクトとWebプロジェクトの両方で機能します。
スループットコントローラー
このコントローラーは、実行フローの制御にも使用されます。以下のクリッピングに見られるように、このコントローラーはさらに2つの部分に分かれています。
実行率 - この選択により、Jmeterは、このコントローラーの下に配置されたサンプラーの合計反復の特定の割合のみを実行します。 「ユーザーごと」チェックボックスをオンにして、これをユーザーレベルで制御することもできます。
例えば、 スレッドグループは10ユーザーで構成され、ループ数は5です。したがって、合計反復回数は50です。実行率が50%に設定されている場合、スループットコントローラーの下のすべてのサンプラーは25回の反復のみを行います(50回の50%)。
総実行数– これにより、ユーザーはこのコントローラーの下に含まれるサンプラーの反復回数を直接指定できます。
インターリーブコントローラー
このコントローラーを使用すると、n個の方法でシーケンスを変更することでパフォーマンステストの範囲を拡大できるため、アプリケーションがさまざまなシーケンスで要求にヒットしたときにサーバーの負荷をテストできます。インターリーブコントローラーは、その下のサンプラーを使用して代替選択を行います。
Simple Controllerのような他のコントローラーがこのブロックの下に保持されている場合、インターリーブコントローラーは、反復ごとにコンテナーからそれぞれ1つのサンプラーを選択する特権を与えます。さらに説明するために、以下のテスト計画を検討してください。
そのため、Jmeterは、反復ごとにコントローラー間で交互に反復します。したがって、シーケンスについては以下で説明します。
Request1-> Request3-> Request 5 – Request2-> Request4-> Request6
スレッド数= 2およびループ数= 2の以下のJMeterの結果を参照してください。
ルーターのセキュリティキーは何ですか
上記の例では、Jmeterは次のループ/反復でインターリーブしています。 Interleave Controllerには、JMeterが新しいスレッドごとに代替リクエストを送信できるようにする設定があります。
以下の結果をご覧ください。これは、同じマシンからの要求のシーケンスが異なるシーケンシャルまたは同時の負荷ヒットサーバーが必要なシナリオで役立ちます。
ランダムコントローラー
インターリーブコントローラーとほぼ同じように機能しますが、サンプラーを順番に選択しません。サブコントローラーとその中のサンプラーをランダムに選択するだけです。
コントローラーの場合
Controllerが同様に機能する場合、IF式は任意のプログラミング言語で処理されます。条件が最初に検証され、条件がTRUEの場合、このコンテナーの下のコンポーネントが実行されます。それ以外の場合、IFコントローラーの外部の要素が実行されます。
例 : インターリーブコントローラーに関する以前の例の1つを続けると、2つのインターリーブコントローラーの1つがIFコントローラーと条件「$(COUNT)」の下に保持されます。<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
COUNT変数への値の定義と割り当て。
で条件を定義する コントローラーの場合 設定。 Jmeterはこの条件を検証し、TRUEの場合、このコンテナーの下のブロックを実行します。
以下のテスト計画からわかるように、IF条件が次のように評価された場合、Request3、Request4、およびRequest5のみが実行されます。 誤り 。
コントローラーが
このコントローラーは、条件がfalseになるまで、その下のコンポーネントを実行します。
例えば、 条件があると言うwhile($(count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
「Counter」構成要素を1から開始し、反復ごとにインクリメントするように構成します。詳細については、以下を参照してください。
ビデオチュートリアルでは、残りのコントローラーについて説明します。
リアルタイムの例
テストチームが、テスト対象のサーバーにヒットするすべてのリクエストのURLとパラメーターを知らないシナリオを考えてみましょう。ここで、サーバーの負荷テストを行うには、要求を記録してから、負荷を順次または同時に調整し、パフォーマンステストを行うためのシナリオを作成する必要があります。
ステップ
無料の64ビットファイアウォールの独立した公平なレビュー
- JmeterにRecordingControllerのテンプレートを追加します
- ブラウザでプロキシを設定し、HTTP(s)ScriptRecorderで同じポートを選択します
- リクエストを記録する
- テスト計画を変更し、負荷を増やします
- それに応じてトランザクションをグループ化します
- リクエストのさまざまな組み合わせを試してください
JMeterのレコーディングテンプレート
JMeterには、事前定義されたテンプレートもいくつかあります。 (ファイル)メニューから(テンプレート)オプションを選択します。テンプレートを選択した後、開いたウィンドウで「記録」オプションを選択し、「作成」をクリックします。
この記録テンプレートを選択するとすぐに、テスト計画にすでに追加されているいくつかのコンポーネントが表示されます。
- 作業台の下のHTTP(s)スクリプトレコーダ
- HTTPリクエストのデフォルトとHTTPCookie Manager
- スレッドグループの下の記録コントローラー。
ブラウザでプロキシ設定を行ってJMeterプロキシサーバーと通信するか、CHROME ExtensionBlazemeterを使用してリクエストを記録してからエクスポートすることができます。 jmxファイルをJmeterに。スクリプトを記録してJMeterにエクスポートするための拡張機能は他にもたくさんあります。 BADBOYツールは、Webヒットとモバイルヒットの両方を記録するためにJmeterともうまく機能します。
クリック。記録されたリクエストをJmeterにエクスポートするjmxオプション。 Jmeterから、を開きます。 jmxファイルを作成し、リクエストと各リクエストに関連付けられているパラメータを確認します。
結論
ここまでで、JMeterの基本ロジック、負荷のシミュレート方法、さまざまなタイプのサンプラーの操作方法、コントローラーと変数の使用による実行フローの制御方法、および反復全体でループを実行する関数。これは確かにJMeterの一連のチュートリアルの終わりではありません。
多くのビデオチュートリアルがあります Jmeterのさまざまなシナリオと、各JMeterコンポーネントを最適な方法で利用する方法について、テスターをより多くの手でガイドします。
=> ここでJMeterビデオチュートリアルの完全なリストを確認してください
コメントや質問を私たちと共有してください。