目次へ

解答例 - 実習課題1 - 8.負荷テスト計画の立て方

(実習課題1)

以下のようなWebアプリケーションに対して、負荷テストの『テスト計画』を作成しなさい。また、その際、どのような根拠・想定で『テスト計画』を作成したかも述べること。

対象とするWebアプリケーション:[会員向け物販サイト]

  • 会員数は50000人
  • 表示されるページはログインページ(/login.do)、トップページ(/top.do)、商品検索ページ(/search.do)、お勧め商品表示ページ(/special.do)、購入ページ(/buy.do)の5ページ
  • 各ページの画面遷移は、以下の通りとする。
  • なお、詳細は自分で想定してよい。
表示されるページの図

解答例

この解答例では、適宜Webアプリケーションの詳細の想定を示しつつ、『スレッドグループ』の設定、リクエストおよびコントローラの配置、各HTTPリクエストの設定の順に説明していきます。

スレッドグループ

ピーク時の同時アクセス数は状況により大きく異なるので、これを見積もることは難しいのですが、ここでは次のように想定しました。

  • ピーク時にアクセスする会員数は全会員数の 1% である。
  • 個々の会員は平均5秒の間隔で次々にページを遷移していく。

この想定のもとで「スレッドグループ」を設定すると下図のようになります。

スレッドグループ

「スレッド数」は同時アクセスする会員数に相当するので、50000 の 1% で 500 としました。
「Ramp-Up期間」はスレッドが適度に分散して起動するように 5秒としました。
「ループ回数」はテスト期間を任意の長さとするため、無限ループにチェックを入れておきました。

このままでは、各スレッドは最大限のスピードでリクエストを繰り返し発行することになります。
リクエストの発行間隔を調整するために、「スレッドグループ」に「タイマ」を追加します。
この解答では、間隔が平均5秒で適度に分散するように「ガウス乱数タイマ」を使用し、「遅延時間オフセット定義」を 5000 ミリ秒、「偏差」を 2000 ミリ秒としました。

ガウス乱数タイマ

リクエストおよびコントローラの配置

問題文で与えられていないWebアプリケーションの詳細を以下のように想定しました。

  • セッション管理にはクッキーを使用する。
  • 使用するプロトコルは HTTPS とする。
  • パラメータを送信するページには POST メソッド、送信しないページには GET メソッドを使用する。
  • ログインページには、パラメータとして「ユーザ名(username)」と「パスワード(password)」を送信する。
  • 商品検索ページには、パラメータとして「検索キーワード(keyword)」を送信する。
  • 購入ページには、パラメータとして「商品ID(product)」と「数量(nubmer)」を送信する。
  • 遷移先ページが複数ある場合は、それらのなかからランダムにひとつを選択する。

問題文と上記の想定を踏まえて、テスト計画を次の図のように構成しました。

テスト計画

ログインページとそれに続くトップページは最初に一度だけ実行されるので、「一度だけ実行されるコントローラ」の子として配置しました。それ以降は、

  • 商品検索ページまたはお勧め商品表示ページ
  • トップページまたは購入ページ

の繰り返しであるので、これらリクエストの組をそれぞれ乱数コントローラの子として配置し、2つの乱数コントローラをインタリーブコントローラの子として配置しました。

HTTPリクエストの設定

「HTTPリクエスト初期設定」には、各HTTPリクエストに共通な項目を設定しました。「プロトコル」には HTTPS 、「サーバ名またはIP」にサーバ名を指定しました。
各HTTPリクエストの設定は以下の図のようになります。

ログインページ

トップページ

商品検索ページ

お勧め商品表示ページ

購入ページ


↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp