SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

JMeterでWebアプリケーションのパフォーマンス測定を行う

オープンソースの負荷テストツールJMeterの利用


JMeterでテストシナリオを設定(後半)

5.コントローラーの作成

 今回のテストシナリオでは、ログインした後に複数回メモ追加処理を行います。つまり、ログイン→メモ追加→ログイン→メモ追加ではなく、ログイン→メモ追加→メモ追加のような処理の流れになります。先ほどのサンプラーを作成しただけだと、交互にリクエスト処理を繰り返すだけになってしまうので、ログインのリクエスト処理は最初の一度だけという設定にしたいところです。

 こういった場合には、コントローラーが有効です。コントローラーでは、サンプラーなどの処理をコントロールすることにより、複雑なテストシナリオを行うことができます。基本的にコントローラーはそれ自身の子要素に、コントロール対象のサンプラーなどを配置します。ある要素をある要素の子要素にしたい場合には、順番を並び替えるのと同じで、ドラッグ&ドロップして、[子として追加]を選択すればできます。コントローラーの種類を表にまとめました。

コントローラーの種類一覧
コントローラー名 概要
シンプルコントローラ 実行処理は変わらないが、子要素に入れてグルーピングするのに使われる
インターリーブコントローラ 複数の子要素の中から順番に一つの要素を実行する
ランダムコントローラ インターリーブコントローラーの順番がランダムになったもの
ループコントローラ 全ての子要素を指定された回数繰り返し実行する
一度だけ実行されるコントローラ 全ての繰り返し処理の中で1度だけ実行する

 ここでは、一度だけ実行されるコントローラーを使用します。スレッドグループで右クリックして[追加]→[ロジックコントローラー]→[一度だけ実行されるコントローラー]を選択してください。さらに、ログイン処理のサンプラーを作成したコントローラーの子要素になるように移動させます。下のような構成になればOKです。

コントローラー
コントローラー

6.HTTPクッキーマネージャの作成

 JMeterでは、基本的なHTTPリクエストを送信するだけでなく、セッション、クッキー、Basic認証などの機能もサポートしています。今回のテストでは、ログイン後にユーザIDを保持するためにクッキーによるセッションを使用しています。ここでは、セッションを確立してリクエストを送受信するための設定を解説します。ちなみに、JMeterではURLリライトによるセッション確立もサポートしています。

 クッキーを使用するためには、次の手順に従い、HTTPクッキーマネージャーを追加します。[スレッドグループ]を右クリックして[追加]→[設定エレメント]→[HTTPクッキーマネージャー]を選択します。ここではクッキーの値を設定することができますが、これはサーバーからクッキーを受信してそのまま送信するだけであれば設定する必要はありません。クッキーの値は、独自にオリジナルなクッキーを送信したい場合に使用します。また、クッキーはスレッドごとに別々に管理されているので値がかぶってしまうようなことはありません。

HTTPクッキーマネージャ
HTTPクッキーマネージャ

7.タイマの作成

 今回のテストシナリオでは、2秒おきにリクエストを送信するというものになっています。通常特に何も設定しなければ、タイムラグがほとんどない状態で大量のリクエストが送信されてしまうことになります。これを防ぐにはタイマを使用します。タイマは、リクエスト送信のタイムラグを特定の値にすることができます。下にタイマの種類を表にしました。

タイマの種類一覧
タイマ名 概要
定数タイマ リクエスト送信ごとに特定の時間ポーズ
一様乱数タイマ 各スレッドでランダムな間ポーズ
ガウス乱数タイマ 各スレッドでランダムな間ポーズ(ガウス分布を使用)

 ここでは、リクエスト送信ごとに2秒のポーズを発生させたいため、定数タイマを使用します。[スレッドグループ]を右クリックして[追加]→[タイマ]→[定数タイマ]を選択します。そしてスレッド遅延時間に2000ミリ秒を設定すれば完了です。

HTTPクッキーマネージャ
HTTPクッキーマネージャ

8.アサーションの作成

 JMeterには、パフォーマンス的な情報の取得/解析だけでなく、レスポンス情報の内容が正しいかなどを判定するアサーション機能も持っています。JMeterのアサーション機能には以下のようなものがあります。

アサーションの種類一覧
アサーション名 概要
アサーション レスポンスのコードやテキストを検査
アサーションの持続 指定された時間内にサーバから応答があったかどうかを検査

 今回のテストで返されるレスポンスは、正常であれば必ずメモの一覧画面であるはずなので、レスポンスのテキストの中に、一覧画面のタイトルタグの文字列が含まれるかどうかを検証してみます。含まれていれば、少なくとも一覧画面の一部が正常に表示されていることになります。

 アサーションを追加するには、[スレッドグループ]を右クリックして[追加]→[アサーション]→[アサーション]を選択します。今回は、テキストのレスポンスに<title>JMeter-MemoList</title>が含まれていた場合にOKとします。画面では下のような設定になります。

アサーション
アサーション

9.リスナーの作成

 リスナーとは、テストの実行に得られる情報の収集・表示をするためのものです。JMeterでは、収集した情報を、表形式、メールで送信、グラフ表示などのさまざまな形式で表示することができます。また、リスナーは複数を同時に作成することもできます。

 では、リスナーを作成して必要な値を設定していきます。サンプルテストを右クリックして[追加]→[リスナー]→[結果を表で表示]を選択し、表を追加します。同様に、アサーション結果、グラフ表示を作成します。ここでは特別に値を設定する必要はありません。

リスナー
リスナー

 また、リスナーには今回のHTTPリクエスト以外にも以下のようなリスナーがあります。これらを使用することにより、さまざまな形でテスト結果を解析することができます。

リスナーの種類一覧
リスナー名 概要
メーラー・ビジュアライザー エラー情報をメールで送信
スプライン・ビジュアライザー 応答時間をスプライン曲線で表示
ビュー・リザルト・ツリー レスポンスをツリー表示

10.テスト計画の保存

 設定したテスト計画は、jmxという拡張子のXMLファイルで保存しておくことができます。テスト計画を保存するには、メニューから[ファイル]→[テスト計画を保存]を選択します。

 テスト計画を保存しておくことにより、Webアプリケーションのプログラムが修正される度に負荷テストを行うといったことが簡単にできます。そのため、テスト計画のパターンをいくつか作って保存しておくといいでしょう。

次のページ
テスト実行・検証

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 佐藤 真介(サトウ シンスケ)

WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/336 2008/08/19 20:51

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー