4. Web テスト計画の構築

このセクションでは 、Web サイトをテストするための基本的なテスト計画を作成する方法を学習します。JMeter Web サイトの 2 つのページに要求を送信する 5 人のユーザーを作成します。また、ユーザーにテストを 2 回実行するように指示します。したがって、リクエストの総数は (5 ユーザー) x (2 リクエスト) x (2 回繰り返す) = 20 HTTP リクエストです。テスト計画を作成するには、次の要素を使用します: Thread GroupHTTP RequestHTTP Request Defaults、および Graph Results

より高度なテスト計画については、 Building an Advanced Web Test Planを参照してください。

4.1 ユーザーの追加

すべての JMeter テスト計画で行う最初のステップは、 スレッド グループ要素を追加することです。スレッド グループは、シミュレートするユーザーの数、ユーザーが要求を送信する頻度、送信する要求の数を JMeter に伝えます。

まずテスト計画を選択し、マウスの右ボタンをクリックして [追加] メニューを表示し、[追加] → [ThreadGroup] を選択して、ThreadGroup 要素を追加します。

Test Plan の下に Thread Group 要素が表示されます。要素が表示されない場合は、テスト計画要素をクリックしてテスト計画ツリーを「展開」します。

次に、デフォルトのプロパティを変更する必要があります。まだ選択していない場合は、ツリーでスレッド グループ要素を選択します。JMeter ウィンドウの右側のセクションにスレッド グループ コントロール パネルが表示されます (下の図 4.1 を参照)。


図 4.1。 デフォルト値を持つスレッド グループ
図 4.1。デフォルト値を持つスレッド グループ

まず、スレッド グループにわかりやすい名前を付けます。名前フィールドに、JMeter Users と入力します。

次に、ユーザー (スレッドと呼ばれる) の数を 5 に増やします。

次のフィールドであるランプアップ期間は、デフォルト値の 1 秒のままにします。このプロパティは、JMeter に各ユーザーの開始までの遅延時間を伝えます。たとえば、5 秒の Ramp-Up Period を入力すると、JMeter は 5 秒の終わりまでにすべてのユーザーの起動を終了します。したがって、5 人のユーザーと 5 秒のランプアップ期間がある場合、開始ユーザー間の遅延は 1 秒になります (5 ユーザー / 5 秒 = 1 秒あたり 1 ユーザー)。値を 0 に設定すると、JMeter はすぐにすべてのユーザーを開始します。

最後に、Loop Count フィールドに値 2 を入力します。このプロパティは、テストを繰り返す回数を JMeter に伝えます。ループ カウントの値として 1 を入力すると、JMeter はテストを 1 回だけ実行します。JMeter でテスト計画を繰り返し実行するには、Forever チェックボックスを選択します。

ほとんどのアプリケーションでは、コントロール パネルで行った変更を手動で受け入れる必要があります。ただし、JMeter では、コントロール パネルは変更を加えると自動的に受け入れます。要素の名前を変更すると、コントロール パネルを終了した後 (たとえば、別のツリー要素を選択したとき) にツリーが新しいテキストで更新されます。

完成した JMeter ユーザー スレッド グループについては、図 4.2 を参照してください。


図 4.2。 JMeter ユーザー スレッド グループ
図 4.2。JMeter ユーザー スレッド グループ

4.2 デフォルトの HTTP リクエスト プロパティの追加

ユーザーを定義したので、次はユーザーが実行するタスクを定義します。このセクションでは、HTTP 要求のデフォルト設定を指定します。そして、セクション 4.3 で、ここで指定したデフォルト設定の一部を使用する HTTP リクエスト要素を追加します。

まず、JMeter ユーザー (スレッド グループ) 要素を選択します。マウスの右ボタンをクリックして [追加] メニューを表示し、[追加] → [構成要素] → [HTTP 要求のデフォルト] を選択します。次に、この新しい要素を選択して、そのコントロール パネルを表示します (図 4.3 を参照)。


図 4.3。 HTTP リクエストのデフォルト
図 4.3。HTTP リクエストのデフォルト

ほとんどの JMeter 要素と同様に、HTTP Request Defaultsコントロール パネルには変更可能な名前フィールドがあります。この例では、このフィールドをデフォルト値のままにします。

Web サーバーのサーバー名/IP である次のフィールドに進みます。構築中のテスト計画では、すべての HTTP 要求が同じ Web サーバー jmeter.apache.org に送信されます。このドメイン名をフィールドに入力します。これは、デフォルトを指定する唯一のフィールドであるため、残りのフィールドはデフォルト値のままにしておきます。

HTTP Request Defaults 要素は、JMeter に HTTP 要求を送信するように指示しません。HTTP Request 要素が使用するデフォルト値を定義するだけです。

完成した HTTP Request Defaults 要素については、図 4.4 を参照してください。


図 4.4。 テスト計画の HTTP デフォルト
図 4.4。テスト計画の HTTP デフォルト

4.3 Cookie サポートの追加

アプリケーションが特に Cookie を使用しない場合を除き、ほぼすべての Web テストで Cookie サポートを使用する必要があります。Cookie サポートを追加するに は、テスト計画の各スレッド グループにHTTP Cookie Managerを追加するだけです。これにより、各スレッドが独自の Cookie を取得しますが、すべてのHTTP Requestオブジェクトで共有されます。


図 4.5。 HTTP Cookie マネージャー
図 4.5。HTTP Cookie マネージャー

HTTP Cookie Managerを追加するには、 Thread Groupを選択し、[編集] メニューまたは右クリックのポップアップ メニューから [追加] → [構成要素] → [HTTP Cookie Manager] を選択します。

4.4 HTTP リクエストの追加

テスト計画では、2 つの HTTP リクエストを作成する必要があります。1 つ目は JMeter ホームページ (http://jmeter.apache.org/) 用で、2 つ目は変更ページ (http://jmeter.apache.org/changes.html) 用です。

JMeter は、ツリーに表示される順序でリクエストを送信します。

最初のHTTP リクエスト を JMeter ユーザー要素に追加することから始めます (追加 → サンプラー → HTTP リクエスト)。次に、ツリーで HTTP Request 要素を選択し、次のプロパティを編集します (図 4.6 を参照)。

  1. 名前フィールドを「ホームページ」に変更します。
  2. パス フィールドを「/」に設定します。サーバー名フィールドを設定する必要がないことに注意してください。この値は、HTTP 要求のデフォルト要素で既に指定されているためです。


図 4.6。 JMeter ホームページの HTTP リクエスト
図 4.6。JMeter ホームページの HTTP リクエスト

次に、2 番目の HTTP リクエストを追加し、次のプロパティを編集します (図 4.7 を参照)。

  1. 名前フィールドを「Changes」に変更します。
  2. パス フィールドを「/changes.html」に設定します。


図 4.7。 JMeter 変更ページの HTTP リクエスト
図 4.7。JMeter 変更ページの HTTP リクエスト

4.5 リスナを追加してテスト結果を保存する

テスト計画に追加する必要がある最後の要素は Listenerです。この要素は、HTTP 要求のすべての結果をファイルに保存し、データのビジュアル モデルを提示する役割を果たします。

JMeter ユーザー要素を選択し、グラフ結果リスナーを追加します (追加 → リスナー → バックエンド リスナー)。

4.6 ウェブサイトへのログイン

ここではそうではありませんが、一部の Web サイトでは、特定のアクションの実行を許可する前にログインする必要があります。Web ブラウザーでは、ログインはユーザー名とパスワードのフォーム、およびフォームを送信するためのボタンとして表示されます。このボタンは POST リクエストを生成し、フォーム項目の値をパラメーターとして渡します。

JMeter でこれを行うには、HTTP リクエストを追加し、メソッドを POST に設定します。フォームで使用されるフィールドの名前と対象ページを知っておく必要があります。これらは、ログイン ページのコードを調べることで確認できます。[これが難しい場合は、JMeter Proxy Recorderを使用してログイン シーケンスを記録できます。] 送信ボタンのターゲットへのパスを設定します。[追加] ボタンを 2 回クリックし、ユーザー名とパスワードの詳細を入力します。ログインフォームに追加の非表示フィールドが含まれている場合があります。これらも追加する必要があります。


図 4.8。 サンプル HTTP ログイン要求
図 4.8。サンプル HTTP ログイン要求

4.7 同じユーザーまたは別のユーザーを選択する

テスト計画を作成するとき、スレッド グループの反復ごとに、複数の反復を実行する同じユーザーをシミュレートするか、1 つの反復を実行する異なるユーザーをシミュレートするかを選択できます。スレッド グループ要素でこの動作を構成し、HTTP キャッシュ マネージャー、HTTP Cookie マネージャー、HTTP 承認マネージャーをこの設定で制御できます。


図 4.9。 同じユーザーまたは別のユーザーを選択してください
図 4.9。同じユーザーまたは別のユーザーを選択してください

CookieManager/CacheManager/Authorization Manager で Cookie/キャッシュ コンテンツ/承認をクリアするか、スレッド グループによって制御されるかを選択できます。


図 4.10。 スレッド グループを使用して CookieManager を制御する
図 4.10。スレッド グループを使用して CookieManager を制御する

図 4.11。 スレッド グループを使用して CacheManager を制御する
図 4.11。スレッド グループを使用して CacheManager を制御する

図 4.12。 スレッド グループを使用して承認マネージャーを制御する
図 4.12。スレッド グループを使用して承認マネージャーを制御する
Go to top