(57)【要約】【課題】ウェブ負荷試験で負荷シミュレータにより生成される仮想ウェブクライアントがリクエストメッセージの送信とレスポンスメッセージの受信とを適切に行えるシナリオを作成できるようにすること。【解決手段】シナリオ作成モジュール２３ａは、操作者から所定の指示を受け付けるたびに、メッセージの送受信を実行し、リクエストメッセージとレスポンスメッセージとを対応付けてシナリオテーブル３１に登録する（ステップＳ１０１〜Ｓ１０８）。続いて、シナリオ作成モジュール２３ａは、シナリオテーブル３１内のレコードのうち、リクエストパラメータを含んでいるレコードについて、そのレコードより順番が前のレコードの中からそのリクエストパラメータと同じ内容のレスポンスパラメータを含むレコードを検索し、レコードが検出できた場合に、双方のレコードの識別情報を対応付けたレコードを対応テーブルに記憶する（ステップＳ２０２〜Ｓ２１３）。【選択図】図４
2008234151.tif 000002
【特許請求の範囲】
【請求項１】
試験対象のウェブサーバ装置にアクセス負荷を掛ける複数の仮想ウェブクライアントに対して与えられるシナリオを作成するためのシナリオ作成プログラムであって、
コンピュータを、
入力装置を通じて操作者から所定の指示を受け付けるたびに、その指示に基づくリクエストメッセージの前記ウェブサーバ装置への送信とそのウェブサーバ装置からのレスポンスメッセージの受信とを実行するとともに、それらリクエストメッセージとレスポンスメッセージとを対応付けたレコードを、各レコードを一意に特定するための識別情報を付加して、リクエスト順に、記憶装置内のシナリオテーブルに記憶する第１の記憶手段、
前記シナリオテーブル内のレコードのうち、前記リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードの中から、そのリクエストパラメータと同じ内容のレスポンスパラメータを前記レスポンスメッセージに含むレコードを検索する検索手段、及び、
前記シナリオテーブル内のレコードのうち、前記リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードを前記検索手段が検出した場合に、双方のレコードの識別情報を対応付けて、記憶装置内の対応テーブルに記憶する第２の記憶手段
として機能させる
ことを特徴とするシナリオ作成プログラム。
【請求項２】
前記第２の記憶手段は、双方のレコードの識別情報とともに、更に、前記仮想ウェブクライアントが前記シナリオテーブル内のリクエストメッセージのリクエストパラメータを負荷試験中に取得したレスポンスパラメータに置換するための媒介関数を、対応付けて、記憶装置内の対応テーブルに記憶する
ことを特徴とするシナリオ作成プログラム。
【請求項３】
試験対象のウェブサーバ装置にアクセス負荷を掛ける複数の仮想ウェブクライアントに対して与えられるシナリオを作成するためのシナリオ作成装置であって、
入力装置を通じて操作者から所定の指示を受け付けるたびに、その指示に基づくリクエストメッセージの前記ウェブサーバ装置への送信とそのウェブサーバ装置からのレスポンスメッセージの受信とを実行するとともに、それらリクエストメッセージとレスポンスメッセージとを対応付けたレコードを、各レコードを一意に特定するための識別情報を付加して、リクエスト順に、記憶装置内のシナリオテーブルに記憶する第１の記憶部、
前記シナリオテーブル内のレコードのうち、前記リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードの中から、そのリクエストパラメータと同じ内容のレスポンスパラメータを前記レスポンスメッセージに含むレコードを検索する検索部、及び、
前記シナリオテーブル内のレコードのうち、前記リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードを前記検索部が検出した場合に、双方のレコードの識別情報を対応付けて、記憶装置内の対応テーブルに記憶する第２の記憶部
を備えることを特徴とするシナリオ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷シミュレータが使用するシナリオを作成するためのシナリオ作成プログラム及びシナリオ作成装置に、関する。
【背景技術】
【０００２】
周知のように、ウェブ負荷試験装置は、試験対象となるウェブサーバ装置にアクセス負荷を掛けてそのウェブサーバ装置の状態を観察するため、負荷シミュレータ，及び、ビューワを、含んでいる。このうち、負荷シミュレータは、仮想的にウェブクライアントとして機能するスレッドを複数生成し、それら複数の仮想ウェブクライアントに対し、試験対象となるウェブサーバ装置内のウェブページデータをリクエストする順番を定義したシナリオを与えて、そのシナリオ通りにリクエストメッセージの送信とレスポンスメッセージの受信とを行わせる機能である。負荷シミュレータは、各仮想ウェブクライアントがそのウェブサーバ装置から受けたレスポンスメッセージそのものを保存したりレスポンスのログを録ったりする。ビューワは、ウェブ負荷試験で仮想ウェブクライアントが取得したレスポンスメッセージ内のウェブページデータに基づいてウェブページを表示したり、レスポンスのログ情報を一覧表示したりするための機能である。
【０００３】
前述したシナリオは、ウェブ負荷試験を行う前に試験対象のウェブサーバ装置に実際にアクセスして幾つかのウェブページを順に表示させたときのリクエスト履歴に基づいて作成されるものであり、具体的には、幾つかのリクエストメッセージからなるとともに、それらの送信順を定義したデータである。そして、このシナリオを構成する各リクエストメッセージの中には、ゲットメソッド又はポストメソッドによりウェブサーバ装置に引き渡すべき引数を含むものもある。
【０００４】
しかしながら、それら引数は、シナリオを作成する際に適正なものであって、ウェブサーバ装置にアクセス負荷を掛ける際に適正なものとならない場合がある。例えば、仮想ウェブクライアントは、ウェブ負荷試験中にウェブサーバ装置からレスポンスメッセージを介してセッションＩＤ［Identification］を取得した場合、本来ならば、その次のリクエストメッセージにそのセッションＩＤを含んでウェブサーバ装置に送信せねばならない。しかし、ウェブ負荷試験では、仮想ウェブクライアントは、シナリオデータに従って、シナリオ作成当時のセッションＩＤを含むリクエストメッセージをそのままウェブサーバ装置に送信するようになっている。このため、ウェブサーバ装置は、そのリクエストメッセージに含まれるセッションＩＤに基づいてセッションエラーを検出し、その結果、ウェブ負荷試験が継続されくなってしまう。
【０００５】
なお、特許文献１には、シナリオ中で変化させるべきパラメータを入力パラメータとして事前に複数用意しておく技術は、記載されている。しかし、この技術では、ウェブサーバ装置へアクセスするごとに値が異なるセッションＩＤのようなパラメータについて、応用することができない。
【０００６】
【特許文献１】特開２００５−２５０９４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、前述したような従来の事情に鑑みてなされたものであり、その課題は、ウェブ負荷試験で負荷シミュレータにより生成される仮想ウェブクライアントがリクエストメッセージの送信とレスポンスメッセージの受信とを適切に行えるシナリオを作成できるようにすることにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための案出されたシナリオ作成プログラムは、試験対象のウェブサーバ装置にアクセス負荷を掛ける複数の仮想ウェブクライアントに対して与えられるシナリオを作成するためのシナリオ作成プログラムであって、コンピュータを、入力装置を通じて操作者から所定の指示を受け付けるたびに、その指示に基づくリクエストメッセージのウェブサーバ装置への送信とそのウェブサーバ装置からのレスポンスメッセージの受信とを実行するとともに、それらリクエストメッセージとレスポンスメッセージとを対応付けたレコードを、各レコードを一意に特定するための識別情報を付加して、リクエスト順に、記憶装置内のシナリオテーブルに記憶する第１の記憶手段、シナリオテーブル内のレコードのうち、リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードの中から、そのリクエストパラメータと同じ内容のレスポンスパラメータをレスポンスメッセージに含むレコードを検索する検索手段、及び、シナリオテーブル内のレコードのうち、リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードを検索手段が検出した場合に、双方のレコードの識別情報を対応付けて、記憶装置内の対応テーブルに記憶する第２の記憶手段として機能させることを、特徴としている。
【０００９】
このように構成されると、コンピュータは、操作者から所定の指示を受け付けるたびに、リクエストメッセージの送信とレスポンスメッセージの受信とを実行するとともに、リクエストメッセージとレスポンスメッセージとを対応付けてシナリオテーブルに登録するよう、動作する。そして、両メッセージの組み合わせがシナリオテーブルに幾つか登録された後、コンピュータは、シナリオテーブル内のレコードのうち、リクエストパラメータを含んでいるレコードについて、そのレコードより順番が前のレコードの中からそのリクエストパラメータと同じ内容のレスポンスパラメータを含むレコードを検索し、レコードが検出できた場合に、双方のレコードの識別情報を対応付けたレコードを対応テーブルに記憶するよう、動作する。
【００１０】
以上のような動作により作成されたシナリオテーブルと対応テーブルとによれば、仮想ウェブクライアントは、シナリオテーブル内のリクエストメッセージを試験対象のウェブサーバ装置に送信する前において、そのリクエストメッセージ内にリクエストパラメータが含まれていたときには、対応テーブルに基づいて、そのリクエストパラメータを、負荷試験中に取得したレスポンスパラメータに置換することができる。すなわち、シナリオ内で一意の値であるべきパラメータを洗い出し、一意なまま変更することができる。
【００１１】
また、上記の課題を解決するための案出されたシナリオ作成装置は、試験対象のウェブサーバ装置にアクセス負荷を掛ける複数の仮想ウェブクライアントに対して与えられるシナリオを作成するためのシナリオ作成装置であって、入力装置を通じて操作者から所定の指示を受け付けるたびに、その指示に基づくリクエストメッセージのウェブサーバ装置への送信とそのウェブサーバ装置からのレスポンスメッセージの受信とを実行するとともに、それらリクエストメッセージとレスポンスメッセージとを対応付けたレコードを、各レコードを一意に特定するための識別情報を付加して、リクエスト順に、記憶装置内のシナリオテーブルに記憶する第１の記憶部、シナリオテーブル内のレコードのうち、リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードの中から、そのリクエストパラメータと同じ内容のレスポンスパラメータをレスポンスメッセージに含むレコードを検索する検索部、及び、シナリオテーブル内のレコードのうち、リクエストメッセージ内にリクエストパラメータを含んでいる各レコードについて、そのレコードより順番が前のレコードを検索部が検出した場合に、双方のレコードの識別情報を対応付けて、記憶装置内の対応テーブルに記憶する第２の記憶部を備えることを、特徴としている。
【００１２】
従って、このシナリオ作成装置は、前述した本発明のシナリオ作成プログラムが動作したコンピュータと同等に機能することとなる。
【発明の効果】
【００１３】
以上に説明したように、本発明によれば、ウェブ負荷試験で負荷シミュレータにより生成される仮想ウェブクライアントがリクエストメッセージの送信とレスポンスメッセージの受信とを適切に行えるシナリオが、作成できるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照しながら、本発明を実施するための一つの形態について、説明する。
【００１５】
図１は、本実施形態のコンピュータネットワークシステムの構成図である。
【００１６】
図１に示すように、本実施形態のコンピュータネットワークシステムは、ウェブ負荷試験の対象となるウェブサーバ装置１０と、そのウェブ負荷試験のためにそのウェブサーバ装置１０にアクセス負荷を掛けるウェブ負荷試験装置２０とからなる。両装置１０、２０は、互いに通信自在となるよう、ネットワークＮを介して接続されている。
【００１７】
ウェブサーバ装置１０は、周知のウェブサーバ機能が付加された汎用コンピュータである。従って、このウェブサーバ装置１０は、ストレージユニット１０ａ、ＣＰＵ［Central Processing Unit］１０ｂ、メモリユニット１０ｃ、及び、通信アダプタ１０ｄ等のハードウエアを、内蔵している。このうち、ストレージユニット１０ａは、各種のプログラム及び各種のデータを記憶するユニットである。ＣＰＵ１０ｂは、ストレージユニット内のプログラムに従って処理を行うユニットである。メモリユニット１０ｃは、ストレージユニットから読み出されたプログラムがキャッシュされたりＣＰＵ１０ｂの作業領域が展開されたりするユニットである。通信アダプタ１０ｄは、ネットワークＮ上の他のコンピュータとの間でデータの遣り取りをするためのユニットである。
【００１８】
そして、ウェブサーバ装置１０のストレージユニット１０ａは、基本ソフトウエア１１、ウェブページデータ１２、及び、ウェブサーバプログラム１３を、記憶している。基本ソフトウエア１１は、通信アダプタ１０ｄにおけるデータの入出力の管理や、ストレージユニット１０ａ及びメモリユニット１０ｃの記憶領域の管理といった基本的な機能を多くのアプリケーションソフトウエアに提供するためのソフトウエアである。ウェブページデータ１２は、ウェブページを表示するためのデータであり、ＨＴＭＬ［HyperText Markup Language］データや、画像データである。このウェブページデータ１２の中には、別のウェブページへ飛ぶためのリンクを表示する情報を内部に含んでいるウェブページデータ１２が含まれていても良い。ウェブサーバプログラム１３は、図示せぬウェブクライアント装置からの要求に応じてウェブページデータ１２を送信するためのプログラムである。具体的には、このウェブサーバプログラム１３（に従ったＣＰＵ１０ｂ）は、通信アダプタ１０ｄを通じて図示せぬウェブクライアント装置から要求を受けると、要求されたウェブページデータ１２をストレージユニット１０ａから読み出し、通信アダプタ１０ｄを通じて要求元のウェブクライアント装置へ送信する。
【００１９】
ウェブ負荷試験装置２０は、ウェブ負荷試験ツールが付加されたパーソナルコンピュータである。従って、このウェブ負荷試験装置２０は、液晶ディスプレイ等の表示装置２０ａと、キーボードやマウス等の入力装置２０ｂと、これら装置２０ａ，２０ｂに接続される本体とからなる。また、その本体は、ストレージユニット２０ｃ、ＣＰＵ２０ｄ、メモリユニット２０ｅ、及び、通信アダプタ２０ｆ等のハードウエアを、内蔵している。
【００２０】
そして、ウェブ負荷試験装置２０のストレージユニット２０ｃは、基本ソフトウエア２１、ウェブブラウザ２２，及び、ウェブ負荷試験ツールソフトウエア２３を記憶している。基本ソフトウエア２１は、ウェブサーバ装置１０の基本ソフトウエア１１と同等の機能を発揮するソフトウエアである。ウェブブラウザ２２は、操作者からの指示に従ってウェブサーバ装置１０からウェブページデータ１２を取得してウェブページを表示するためのプログラムである。より具体的には、ウェブブラウザ２２（に従ったＣＰＵ２０ｄ）は、ウェブページ内のリンクボタンのクリックやウェブブラウザ画面へのＵＲＬ［Uniform Resource Locator］の入力などの操作者からの指示、又は、ウェブページデータ１２内に記述されたイメージタグやフレームタグなどによるウェブページデータ１２の取得の指示があると、その指示においてＵＲＬで指定されたウェブページデータ１２の送信を要求するリクエストメッセージをウェブサーバ装置１０へ送信し、そのウェブサーバ装置１０からレスポンスメッセージを受信して、そのレスポンスメッセージのボディ内のウェブページデータ１２に基づいて、ウェブページを表示装置２０ａに表示する。
【００２１】
ウェブ負荷試験ツールソフトウエア２３は、パーソナルコンピュータをウェブ負荷試験装置として機能させるためのプログラム及びデータである。このウェブ負荷試験ツールソフトウエア２３は、シナリオ作成モジュール２３ａ及び負荷シミュレータ２３ｂを、含んでいる。
【００２２】
シナリオ作成モジュール２３ａは、ウェブ負荷試験のために負荷シミュレータ２３ｂが生成する仮想ウェブクライアントに対して与えられるシナリオを作成するためのモジュールプログラムである。シナリオは、詳しくは後述するが、簡単に説明すると、仮想ウェブクライアントが試験対象となるウェブサーバ装置１０内のウェブページデータ１２をリクエストする順番を定義したものである。このシナリオ作成モジュール２３ａに従ってＣＰＵ２０ｄが実行する処理の内容については、図２乃至図６を用いて後述する。
【００２３】
負荷シミュレータ２３ｂは、試験対象となるウェブサーバ装置１０にアクセス負荷を掛けるためのモジュールプログラムである。より具体的には、負荷シミュレータ２３ｂ（に従ったＣＰＵ２０ｄ）は、仮想的にウェブクライアントとして機能するスレッドを複数生成し、それら複数の仮想ウェブクライアントそれぞれにシナリオを与えることによって、それら仮想ウェブクライアントに対し、そのシナリオ通りにリクエストメッセージの送信とレスポンスメッセージの受信とを行わせる。また、負荷シミュレータ２３ｂは、各仮想ウェブクライアントがそのウェブサーバ装置から受信したレスポンスメッセージそのものを保存したり、レスポンスのログを録ったりする。なお、仮想ウェブクライアントが実行する処理の内容については、図７乃至図９を用いて後述する。
【００２４】
以上のように構成されるコンピュータネットワークシステムにおいて、ウェブ負荷試験装置２０のＣＰＵ２０ｄは、ウェブ負荷試験を行おうとする操作者によって入力装置２０ｂが操作されることにより、シナリオ作成モジュール２３ａの起動が指示されると、シナリオ作成モジュール２３ａをストレージユニット２０ｃから読み出し、シナリオ作成モジュール２３ａの動作を開始させる。
【００２５】
図２は、シナリオ作成モジュール２３ａによる処理の流れを示す図である。
【００２６】
シナリオ作成処理の開始後、最初のステップＳ１０１では、シナリオ作成モジュール２３ａ（を実行したＣＰＵ２０ｄ）は、作業画面をウインドウ内に表示する。この作業画面は、シナリオ作成に関する操作を行うための画面であり、図示していないが、幾つかのボタンを含んでいる。この作業画面に含まれるボタンには、ウェブブラウザ２２を利用したウェブサーバ装置１０へのアクセスを開始する前にクリックすべき開始ボタンと、そのアクセスを終了した後でクリックすべき保存ボタンとが、含まれている。
【００２７】
次のステップＳ１０２では、シナリオ作成モジュール２３ａは、ステップＳ１０１で表示した図示せぬ作業画面内の開始ボタンのクリックによる作成開始指示があるまで、待機する。そして、作成開始指示があると、シナリオ作成モジュール２３ａは、ステップＳ１０３へ処理を進める。
【００２８】
ステップＳ１０３では、シナリオ作成モジュール２３ａは、作業画面とは別のウインドウに、ウェブブラウザ２２を起動する。このように別ウインドウで起動したウェブブラウザ２２により、作業者は、作業画面を意識することなく、ウェブサーバ装置１０が提供するウェブページをサーフィン（閲覧）することができる。ここで、ウェブブラウザ２２は、図示せぬウェブブラウザ画面のＵＲＬ入力欄にＵＲＬが入力されたり、ウェブページ上のリンクボタンがクリックされたり、ウェブページデータ１２内に記述されたフレームタグやイメージタグによりウェブページデータ１２の取得が指示されたりすることにより、リクエストメッセージをウェブサーバ装置１０に送信する。なお、ウェブブラウザ２２は、ウェブサーバ装置１０にリクエストメッセージを送信する前に、リクエストヘッダの内容の一部をシナリオ作成モジュール２３ａに通知するようになっている。また、ウェブブラウザ２２は、ウェブサーバ装置１０からレスポンスメッセージを受信した後で、そのレスポンスメッセージをシナリオ作成モジュール２３ａに引き渡すようになっている。シナリオ作成モジュール２３ａは、ウェブブラウザ２２の起動後、ステップＳ１０４へ処理を進める。
【００２９】
ステップＳ１０４では、シナリオ作成モジュール２３ａは、リクエストヘッダとレスポンスメッセージとを対応付けるためのワークテーブルを、メモリユニット２０ｅ上に生成する。
【００３０】
図３は、ワークテーブル３１のデータ構造の一例を示す図である。
【００３１】
図３に示すように、ワークテーブル３１は、図示せぬ作業画面内の開始ボタンがクリックされてから終了ボタンがクリックされるまでにウェブブラウザ２２がウェブサーバ装置１０にアクセスした回数と同数のレコードを、有している。各レコードは、「ＩＤ」、「リクエスヘッダ」及び「レスポンスメッセージ」の各フィールドを、有している。「ＩＤ」フィールドは、そのアクセス一意に特定するための識別情報であるＩＤが記録されるフィールドである。なお、本実施形態では、この識別情報は、アクセスの順番を特定する自然数の番号となっている。「リクエストヘッダ」フィールドは、そのアクセスでウェブブラウザ２２がウェブサーバ装置１０に送信したリクエストメッセージのリクエストヘッダが記録されるフィールドである。「レスポンスメッセージ」フィールドは、そのアクセスでウェブブラウザ２２がウェブサーバ装置１０から受信したレスポンスメッセージが記録されるフィールドである。
【００３２】
シナリオ作成モジュール２３ａは、図３に示すようなワークテーブル３１を作成した後、図２のステップＳ１０５へ処理を進める。但し、この時点では、このワークテーブル３１にはレコードが１つも記録されていない。すなわち、ステップＳ１０４では、新規のワークテーブル３１が生成される。
【００３３】
ステップＳ１０５では、シナリオ作成モジュール２３ａは、ステップＳ１０１で表示された図示せぬ作業画面内の保存ボタンのクリックによる保存指示があったか否かを、判別する。そして、保存指示がなかった場合、シナリオ作成モジュール２３ａは、ステップＳ１０４からステップＳ１０６へ処理を分岐させる。
【００３４】
ステップＳ１０６では、シナリオ作成モジュール２３ａは、ウェブブラウザ２２（を実行したＣＰＵ２０ｄ）からリクエスト実行通知があったか否かを、判別する。なお、このリクエスト実行通知は、前述したように、ウェブブラウザ２２がリクエストメッセージの送信前に送信してくる通知である。そして、ウェブブラウザ２２からリクエスト実行通知がなかった場合、シナリオ作成モジュール２３ａは、ステップＳ１０６から処理を分岐して、ステップＳ１０５へ処理を戻す。
【００３５】
そして、ステップＳ１０５及びＳ１０６の処理ループの実行中、ウェブブラウザ２２からリクエスト実行通知があった場合、シナリオ作成モジュール２３ａは、ステップＳ１０６からステップＳ１０７へ処理を進める。
【００３６】
ステップＳ１０７では、シナリオ作成モジュール２３ａは、図３のワークテーブル３１で使われていない新規ＩＤを、発行する。
【００３７】
次のステップＳ１０８では、シナリオ作成モジュール２３ａは、ウェブブラウザ２２からリクエスト実行通知とともに受け取ったリクエストヘッダを、ステップＳ１０７で発行された新規ＩＤとともに、図３のワークテーブル３１に登録する。
【００３８】
次のステップＳ１０９では、シナリオ作成モジュール２３ａは、ウェブブラウザ２２からレスポンス受領通知があるまで、待機する。なお、このレスポンス受領通知は、前述したように、ウェブブラウザ２２がレスポンスメッセージの受信後に送信してくる通知である。そして、ウェブブラウザ２２からレスポンス受領通知があると、シナリオ作成モジュール２３ａは、ステップＳ１１０へ処理を進める。
【００３９】
ステップＳ１１０では、シナリオ作成モジュール２３ａは、ウェブブラウザ２２からレスポンス受領通知とともに受け取ったレスポンスメッセージを、図３のワークテーブル３１に登録する。なお、ステップＳ１０８で登録された新規ＩＤ及びリクエストヘッダと、このステップＳ１１０で登録されたレスポンスメッセージは、図３のワークテーブル３１内でレコードを構成する。シナリオ作成モジュール２３ａは、レスポンスメッセージの登録後、ステップＳ１０５へ処理を戻す。
【００４０】
また、ステップＳ１０５及びＳ１０６の処理ループの実行中、図示せぬ作業画面内の保存ボタンのクリックによる保存指示があった場合、シナリオ作成モジュール２３ａは、ステップＳ１０５からステップＳ１１１へ処理を進める。
【００４１】
ステップＳ１１１では、シナリオ作成モジュール２３ａは、図３のワークテーブル３１を、シナリオテーブルとして、ストレージユニット２０ｃに保存する。
【００４２】
なお、ステップＳ１０１乃至Ｓ１１１を実行するシナリオ作成モジュール２３ａ（ＣＰＵ２０ｄ）は、前述した第１の記憶手段に相当している。
【００４３】
次のステップＳ１１２では、シナリオ作成モジュール２３ａは、パラメータ対応付けサブルーチンを実行する。
【００４４】
図４及び図５は、パラメータ対応付けサブルーチンの流れを示す図である。
【００４５】
パラメータ対応付けサブルーチンの開始後、最初のステップＳ２０１では、シナリオ作成モジュール２３ａは、リクエストパラメータとレスポンスパラメータとを対応付けるためのワークテーブルを、メモリユニット２０ｅ上に生成する。
【００４６】
図６は、ワークテーブル３２のデータ構造の一例を示す図である。
【００４７】
図６に示すように、ワークテーブル３２の各レコードは、「ＩＤ」、「種別」、「パラメータ名」及び「媒介変数名」の各フィールドを、有している。「ＩＤ」フィールドは、図３のシナリオテーブル３１におけるレスポンスパラメータ又はリクエストパラメータの所属元のレコードの識別情報が記録されるフィールドである。「種別」フィールドは、パラメータがレスポンスパラメータであるかリクエストパラメータであるかを特定する種別情報が記録されるフィールドである。なお、図６では、種別情報には、「格納」と「適用」の二種類が存在している。「格納」が、パラメータがレスポンスパラメータであることを示し、「適用」が、パラメータがリクエストパラメータであることを示している。「パラメータ名」フィールドは、そのパラメータのパラメータ名が記録されるフィールドである。「媒介変数名」フィールドは、リクエストパラメータのパラメータ値を一時的に代入するために使用される媒介変数の名称が記録されるフィールドである。この媒介変数は、より具体的には、仮想ウェブクライアントがウェブ負荷試験中にシナリオ内のリクエストメッセージ内のリクエストパラメータのパラメータ値を、ウェブサーバ装置１０から取得したレスポンスパラメータのパラメータ値に置換するときに、そのレスポンスパラメータのパラメータ値を一時的に代入するために使用される。ここで、レスポンスパラメータ内のパラメータ値を媒介変数に代入することは、「格納」と称され、シナリオのリクエストパラメータのパラメータ値を媒介変数の代入値で置換することは、「適用」と称される。前述した種別情報のうち、「格納」は、そのパラメータがパラメータ値を媒介変数に代入するのに必要なパラメータということを意味し、その結果として、パラメータがレスポンスパラメータであることを示すものとなっている。同様に、種別情報の「適用」は、そのパラメータがパラメータ値を媒介変数の代入値で置換すべきパラメータということを意味し、その結果として、パラメータがリクエストパラメータであることを示すものとなっている。なお、本実施形態では、媒介変数の名称は、パラメータ名に「m_」という文字列を付加したものとなっている。
【００４８】
シナリオ作成モジュール２３ａは、図６に示すようなワークテーブル３２を作成した後、図４の第１の処理ループＬ１を実行する。但し、この時点では、このワークテーブル３２にはレコードが１つも記録されていない。すなわち、ステップＳ２０１では、新規のワークテーブル３２が生成される。
【００４９】
第１の処理ループＬ１では、シナリオ作成モジュール２３ａは、ステップＳ１１１で生成したシナリオテーブル３１の全てのレコードについて、ウェブブラウザ２２のアクセス順に、一つずつ、ステップＳ２０２とステップＳ２０３と第２の処理ループＬ２とからなる処理を、実行する。
【００５０】
ステップＳ２０２では、シナリオ作成モジュール２３ａは、処理対象レコードの「リクエストヘッダ」フィールドの値（リクエストヘッダ）内から、リクエストパラメータ（パラメータ名と「＝」とパラメータ値の組み）を、検索する。
【００５１】
次のステップＳ２０３では、シナリオ作成モジュール２３ａは、ステップＳ２０２の検索の結果、リクエストパラメータが検出できたか否かを、判別する。そして、リクエストパラメータが検出できなかった場合、シナリオ作成モジュール２３ａは、ステップＳ２０３から処理を分岐させ、第１の処理ループＬ１におけるこの処理対象レコードに対する処理を終了する。一方、リクエストパラメータが検出できた場合、シナリオ作成モジュール２３ａは、第２の処理ループＬ２を実行する。
【００５２】
第２の処理ループＬ２では、シナリオ作成モジュール２３ａは、ステップＳ２０２の検索により検出された幾つかのリクエストパラメータについて、一つずつ、ステップＳ２０４乃至Ｓ２０９と第３の処理ループＬ３とからなる処理を、実行する。
【００５３】
ステップＳ２０４では、シナリオ作成モジュール２３ａは、処理対象レコードの「ＩＤ」フィールドの値（ＩＤ）を、処理対象レコードより順番が前のレコードのＩＤを記憶しておくために利用する変数Ｐに、代入する。その後、シナリオ作成モジュール２３ａは、ステップＳ２０５へ処理を進める。
【００５４】
ステップＳ２０５では、シナリオ作成モジュール２３ａは、変数Ｐの代入値を１つ減らして更新する処理を行う。すなわち、処理対象レコードを一つずつ前の順番のレコードに遡って処理を行うことになる。
【００５５】
次のステップＳ２０６では、シナリオ作成モジュール２３ａは、変数Ｐの代入値がゼロであるか否かを、判別する。そして、変数Ｐの代入値がゼロでなかった場合、ＣＰＵ２０ｄは、ステップＳ２０６からステップＳ２０７へ処理を分岐させる。
【００５６】
ステップＳ２０７では、シナリオ作成モジュール２３ａは、図３のシナリオテーブル３１から、変数Ｐの代入値と同じ値（ＩＤ）を「ＩＤ」フィールドに持つレコードを、読み出す。
【００５７】
次のステップＳ２０８では、シナリオ作成モジュール２３ａは、ステップＳ２０７で読み出したレコードの「レスポンスメッセージ」フィールドの値（レスポンスメッセージ）の中から、レスポンスパラメータ（パラメータ名とパラメータ値の組み）を、検索する。
【００５８】
次のステップＳ２０９では、シナリオ作成モジュール２３ａは、ステップＳ２０８の検索の結果、レスポンスパラメータが検出できたか否かを、判別する。そして、レスポンスパラメータが検出できなかった場合、シナリオ作成モジュール２３ａは、ステップＳ２０９から処理を分岐させ、第２の処理ループＬ２におけるこの処理対象リクエストパラメータに対する処理を終了する。一方、レスポンスパラメータが検出できた場合、シナリオ作成モジュール２３ａは、第３の処理ループＬ３を実行する。
【００５９】
第３の処理ループＬ３では、シナリオ作成モジュール２３ａは、ステップＳ２０８の検索により検出された幾つかのレスポンスパラメータについて、一つずつ、ステップＳ２１０乃至Ｓ２１３からなる処理を、実行する。
【００６０】
ステップＳ２１０では、シナリオ作成モジュール２３ａは、第２の処理ループＬ２の処理対象リクエストパラメータと第３の処理ループＬ３の処理対象レスポンスパラメータとを、比較する。
【００６１】
なお、ステップＳ２０２乃至Ｓ２１０を実行するシナリオ作成モジュール２３ａ（ＣＰＵ２０ｄ）は、前述した検索手段に相当している。
【００６２】
次のステップＳ２１１では、シナリオ作成モジュール２３ａは、処理対象リクエストパラメータと処理対象レスポンスパラメータとが一致しているか否かを、判別する。そして、両パラメータが一致していなかった場合、シナリオ作成モジュール２３ａは、ステップＳ２１１から処理を分岐し、第３の処理ループＬ３におけるこの処理対象レスポンスパラメータに対する処理を終了する。一方、両パラメータが一致していた場合、シナリオ作成モジュール２３ａは、ステップＳ２１２へ処理を進める。
【００６３】
ステップＳ２１２では、シナリオ作成モジュール２３ａは、変数Ｐの代入値（すなわち、処理対象レスポンスパラメータの所属元のレコードのＩＤ）と、処理対象レスポンスパラメータに対応する種別情報（格納）と、処理対象レスポンスパラメータ内のパラメータ名と、そのパラメータ名に対応する媒介変数名とからなる新規レコードを、図６のワークテーブル３２に登録する。これにより、ワークテーブル３２は、リクエストパラメータ内に出現するパラメータ名の値を、該リクエストよりも前にレスポンスパラメータとして受信したパラメータの値と紐付けることになる。すなわち、複数のリクエストパラメータ及び複数のレスポンスパラメータから構成されるひとつのシナリオ内で、一貫して同一であるべきパラメータの値として、いずれのレコードに示される値を用いるべきかが、ワークテーブル３２で示されることになる。
【００６４】
次のステップＳ２１３では、シナリオ作成モジュール２３ａは、第１の処理ループＬ１の処理対象レコード（処理対象リクエストパラメータの所属元）の「ＩＤ」フィールドの値（ＩＤ）と、処理対象リクエストパラメータに対応する種別情報（適用）と、処理対象リクエストパラメータ内のパラメータ名と、そのパラメータ名に対応する媒介変数名とからなる新規レコードを、図６のワークテーブル３２に登録する。
【００６５】
なお、図６のワークテーブル３２には、ステップＳ２１２及びＳ２１３を経ることにより、同じパラメータ名を持つ一対（種別情報が「格納」である１つのレコードと、種別情報が「適用」である１つまたは複数のレコードからなる組）のレコードが登録されることとなる。そして、この一対のレコードが同一のパラメータ名を持つことにより、この一対のレコードに含まれるＩＤにて特定されるレスポンスパラメータとリクエストパラメータとが、互いに対応付けられることとなる。
【００６６】
シナリオ作成モジュール２３ａは、処理対象レスポンスパラメータ及び処理対象リクエストパラメータに係る登録を終えると、第３の処理ループＬ３におけるこの処理対象レスポンスパラメータに対する処理を終了する。
【００６７】
なお、これらステップＳ２１１乃至Ｓ２１３を実行するシナリオ作成モジュール２３ａ（ＣＰＵ２０ｄ）は、前述した第２の記憶手段に相当している。
【００６８】
シナリオ作成モジュール２３ａは、ステップＳ２０８の検索により検出された全てのレスポンスパラメータについて、ステップＳ２１０乃至Ｓ２１３からなる処理を、実行し終えると、第３の処理ループＬ３から離脱し、ステップＳ２０５へ処理を戻す。
【００６９】
そして、ステップＳ２０５乃至Ｓ２０９と第３の処理ループＬ３とからなる処理ループの実行中、変数Ｐの代入値がゼロになった場合、シナリオ作成モジュール２３ａは、第２の処理ループＬ２におけるこの処理対象リクエストパラメータに対する処理を終了する。
【００７０】
シナリオ作成モジュール２３ａは、ステップＳ２０２の検索により検出された全てのリクエストパラメータについて、ステップＳ２０４乃至Ｓ２０９と第３の処理ループＬ３とからなる処理を、実行し終えると、第２の処理ループＬ２から離脱し、第１の処理ループＬ１におけるこの処理対象レコードに対する処理を終了する。
【００７１】
シナリオ作成モジュール２３ａは、ステップＳ１０８で生成したシナリオテーブル３１の全てのレコードについて、ステップＳ２０２とステップＳ２０３と第２の処理ループＬ２とからなる処理を、実行し終えると、第１の処理ループＬ１から離脱し、ステップＳ２１４へ処理を進める。
【００７２】
ステップＳ２１４では、シナリオ作成モジュール２３ａは、ステップＳ２１２及びＳ２１３でパラメータに係る情報が登録されたワークテーブル３２を、パラメータ対応テーブルとしてストレージユニット２０ｃに保存する。このとき、パラメータ対応テーブル３２は、ステップＳ１０８で生成されたシナリオテーブル３１に関連付けられるようになっている。その後、シナリオ作成モジュール２３ａは、図４及び図５に係るパラメータ対応付けサブルーチンを終了し、更に、図２に係るシナリオ作成処理も終了する。
【００７３】
このようにＣＰＵ２０ｄにより実行されるシナリオ作成モジュール２３ａによると、操作者は、図示せぬ作業画面上の開始ボタンをクリックして、ウェブブラウザ画面上でウェブページをサーフィンして、図示せぬ作業画面上の保存ボタンをクリックすれば、シナリオテーブル３１とパラメータ対応テーブル３２とを作成することができる。
【００７４】
また、ウェブ負荷試験装置２０のＣＰＵ２０ｄは、作成したシナリオテーブル３１とパラメータ対応テーブル３２とを用いたウェブ負荷試験を行おうとする操作者によって入力装置２０ｂが操作されることにより、負荷シミュレータ２３ｂの起動が指示されると、負荷シミュレータ２３ｂをストレージユニット２０ｃから読み出し、負荷シミュレータ２３ｂの動作を開始させる。
【００７５】
負荷シミュレータ２３ｂ（に従ったＣＰＵ２０ｄ）は、まず、操作者から、入力装置２０ｂを通じて、ウェブ負荷試験に用いるシナリオテーブル３１を指定する情報を、受け付け、そのシナリオテーブル３１とそれに関連するパラメータ対応テーブル３２とをストレージユニット２０ｃから読み出す。続いて、負荷シミュレータ２３ｂは、仮想的にウェブクライアントとして機能するスレッドを、メモリユニット２０ｅ上に複数生成し、それら複数の仮想ウェブクライアントに対し、読み出したシナリオテーブル３１及びパラメータ対応テーブル３２を引き渡す。仮想ウェブクライアントのそれぞれは、これらのテーブル３１、３２を受けて、指定された同一のシナリオに従ってウェブサーバ装置１０へのアクセスを開始する。また、仮想ウェブクライアントのそれぞれは、それぞれがウェブサーバ装置１０からレスポンスとして受信したパラメータの値を用いて、該シナリオ内に含まれる該レスポンス以降のリクエスト内に含まれる同一名のパラメータの値を設定することになる。
【００７６】
図７は、仮想ウェブクライアントによる処理の流れを示す図である。
【００７７】
処理開始後、仮想ウェブクライアント（に従ったＣＰＵ２０ｄ）は、第４の処理ループＬ４を実行する。第４の処理ループＬ４では、仮想ウェブクライアントは、負荷シミュレータ２３ｂから引き渡されたシナリオテーブル３１の全レコードについて、一つずつ、順に、ステップＳ３０１乃至Ｓ３０７からなる処理を、実行する。
【００７８】
ステップＳ３０１では、仮想ウェブクライアントは、処理対象レコードの「リクエストメッセージ」フィールドの値（リクエストメッセージ）の中から、リクエストパラメータ（パラメータ名と「＝」とパラメータ値の組み）を、検索する。
【００７９】
次のステップＳ３０２では、仮想ウェブクライアントは、ステップＳ３０１の検索の結果、リクエストパラメータが検出できたか否かを、判別する。そして、リクエストパラメータが検出できなかった場合、仮想ウェブクライアントは、ステップＳ３０２からステップＳ３０４へ処理を分岐させる。一方、リクエストパラメータが検出できた場合、仮想ウェブクライアントは、ステップＳ３０３へ処理を進める。
【００８０】
ステップＳ３０３では、仮想ウェブクライアントは、リリースサブルーチンを実行する。
【００８１】
図８は、リリースサブルーチンの流れを示す図である。
【００８２】
リリースサブルーチンの開始後、仮想ウェブクライアントは、第５の処理ループＬ５を実行する。第５の処理ループＬ５では、仮想ウェブクライアントは、ステップＳ３０１の検索により検出された幾つかのリクエストパラメータについて、一つずつ、ステップＳ４０１乃至Ｓ４０３からなる処理を、実行する。
【００８３】
ステップＳ４０１では、仮想ウェブクライアントは、処理対象レコードの「ＩＤ」フィールドの値（ＩＤ）と、「適用」の種別情報と、処理対象リクエストパラメータのパラメータ名とを検索条件として、図６のパラメータ対応テーブル３２を検索する。
【００８４】
次のステップＳ４０２では、仮想ウェブクライアントは、ステップＳ４０１の検索の結果、レコードが検出できたか否かを、判別する。そして、レコードが検出できなかった場合、仮想ウェブクライアントは、ステップＳ４０２から処理を分岐させ、第５の処理ループＬ５におけるこの処理対象リクエストパラメータに対する処理を終了する。一方、レコードが検出できた場合、仮想ウェブクライアントは、ステップＳ４０３へ処理を進める。
【００８５】
次のステップＳ４０３では、仮想ウェブクライアントは、ステップＳ４０１の検索により検出されたレコードの「媒介変数名」フィールドの値（媒介変数名）にて特定される媒介変数から、代入値を読み出す。続いて、仮想ウェブクライアントは、処理対象レコードの「リクエストヘッダ」の値（リクエストヘッダ）の中の処理対象リクエストパラメータにおいて、そのパラメータ値を、読み出した代入値に置換する。その後、仮想ウェブクライアントは、第５の処理ループＬ５におけるこの処理対象リクエストパラメータに対する処理を終了する。
【００８６】
仮想ウェブクライアントは、ステップＳ３０１の検索により検出された全てのリクエストパラメータについて、ステップＳ４０１乃至Ｓ４０３からなる処理を、実行し終えた後、第５の処理ループＬ５から離脱し、図８に係るリリースサブルーチンを終了する。その後、仮想ウェブクライアントは、図７のステップＳ３０４へ処理を進める。
【００８７】
ステップＳ３０４では、仮想ウェブクライアントは、ステップＳ４０３でリクエストパラメータのパラメータ値が媒介変数の代入値に置換されたリクエストデータを、リクエストメッセージとしてウェブサーバ装置１０へ送信し、レスポンスメッセージを受信するまで待機する。そして、レスポンスメッセージをウェブサーバ装置１０から受信すると、仮想ウェブクライアントは、ステップＳ３０５へ処理を進める。
【００８８】
ステップＳ３０５では、仮想ウェブクライアントは、受信したレスポンスメッセージの中から、レスポンスパラメータ（パラメータ名とパラメータ値の組み）を、検索する。
【００８９】
次のステップＳ３０６では、仮想ウェブクライアントは、ステップＳ３０５の検索の結果、レスポンスパラメータが検出できたか否かを、判別する。そして、レスポンスパラメータが検出できなかった場合、仮想ウェブクライアントは、ステップＳ３０６から処理を分岐させ、第４の処理ループＬ４におけるこの処理対象レコードに対する処理を終了する。一方、レスポンスパラメータが検出できた場合、仮想ウェブクライアントは、ステップＳ３０７へ処理を進める。
【００９０】
ステップＳ３０７では、仮想ウェブクライアントは、キャッチサブルーチンを実行する。
【００９１】
図９は、キャッチサブルーチンの流れを示す図である。
【００９２】
キャッチサブルーチンの開始後、仮想ウェブクライアントは、第６の処理ループＬ６を実行する。第６の処理ループＬ６では、仮想ウェブクライアントは、ステップＳ３０５の検索により検出された幾つかのレスポンスパラメータについて、一つずつ、ステップＳ５０１乃至Ｓ５０３からなる処理を、実行する。
【００９３】
ステップＳ５０１では、仮想ウェブクライアントは、処理対象レコードの「ＩＤ」フィールドの（ＩＤ）と、「格納」の種別情報と、処理対象レスポンスパラメータのパラメータ名とを検索条件として、図６のパラメータ対応テーブル３２を検索する。
【００９４】
次のステップＳ５０２では、ＣＰＵ２０ｄは、ステップＳ５０１の検索の結果、レコードが検出できたか否かを、判別する。そして、レコードが検出できなかった場合、仮想ウェブクライアントは、ステップＳ５０２から処理を分岐させ、第６の処理ループＬ６におけるこの処理対象レスポンスパラメータに対する処理を終了する。一方、レコードが検出できた場合、仮想ウェブクライアントは、ステップＳ５０３へ処理を進める。
【００９５】
次のステップＳ５０３では、仮想ウェブクライアントは、ステップＳ５０１の検索により検出されたレコードの「媒介変数名」フィールドの値（媒介変数名）にて特定される媒介変数に対し、処理対象レスポンスパラメータのパラメータ値を、代入する。その後、仮想ウェブクライアントは、第６の処理ループＬ６におけるこの処理対象レスポンスパラメータに対する処理を終了する。
【００９６】
仮想ウェブクライアントは、ステップＳ３０５の検索により検出された全てのレスポンスパラメータについて、ステップＳ５０１乃至Ｓ５０３からなる処理を、実行し終えた後、第６の処理ループＬ６から離脱し、図９に係るキャッチサブルーチンを終了する。その後、仮想ウェブクライアントは、第４の処理ループＬ４におけるこの処理対象レコードに対する処理を終了する。
【００９７】
仮想ウェブクライアントは、負荷シミュレータ２３ｂから引き渡されたシナリオテーブル３１の全てのレコードについて、ステップＳ３０１乃至Ｓ３０７からなる処理を、実行し終えた後、第４の処理ループＬ４から離脱し、図７に係る処理を終了する。
【００９８】
なお、各仮想ウェブクライアントが、図７に係る処理を終了すると、負荷シミュレータ２３ｂは、各仮想ウェブクライアントがウェブサーバ装置１０から受信したレスポンスメッセージそのものを保存するとともに、レスポンスのログを保存する。
【００９９】
本実施形態のコンピュータネットワークシステムが、以上に説明したように構成されるため、以下のように動作する。例えば、仮想ウェブクライアントが、図３のシナリオテーブル３１における「ＩＤ」フィールドの値が「３」であるレコードのリクエストヘッダを含むリクエストメッセージを、ウェブサーバ装置１０に送信する場合、その送信の直前に、仮想ウェブクライアントは、リクエストヘッダの中からリクエストパラメータ（userid=A）を検出する（ステップＳ３０１、Ｓ３０２）。
【０１００】
続いて、仮想ウェブクライアントは、そのリクエストパラメータのパラメータ名（userid）と、「適用」の識別情報と、そのリクエストパラメータの所属元のレコードの識別情報（３）とで、図６のパラメータ対応テーブル３２を検出する。そして、仮想ウェブクライアントは、検出したレコード内の媒介変数名（m_userid）を持つ媒介変数から、代入値を読み出して、「ＩＤ」フィールドの値が「３」であるレコードのリクエストデータのリクエストパラメータのパラメータ値を、その代入値に変換し、このリクエストデータを送信する（ステップＳ３０３、Ｓ４０１〜Ｓ４０３、Ｓ３０４）。
【０１０１】
このときリクエストデータのパラメータ値として使用された媒介変数（m_userid）の代入値は、図６のパラメータ対応テーブル３２において同じ媒介変数名（m_userid）を持つレコードの「ＩＤ」フィールドの値が「２」であるとおり、仮想ウェブクライアントが、図３のシナリオテーブル３１における「ＩＤ」フィールドの値が「２」であるレコードのリクエストデータをウェブサーバ装置１０に送信したときに、そのウェブサーバ装置１０から受信したレスポンスメッセージ内に含まれているレスポンスパラメータから取り出して媒介変数に代入したパラメータ値である（ステップＳ３０５〜Ｓ３０７、Ｓ５０１〜Ｓ５０３）。
【０１０２】
このように、本実施形態のウェブ負荷試験装置２０によりシナリオテーブル３１とともに生成されたパラメータ対応テーブル３２によれば、仮想ウェブクライアントは、シナリオテーブル３１内のリクエストメッセージを試験対象のウェブサーバ装置１０に送信する前において、そのリクエストメッセージ内にリクエストパラメータが含まれていたときには、パラメータ対応テーブル３２に基づいて、そのリクエストパラメータを、負荷試験中に取得したレスポンスパラメータに置換することができる。
【０１０３】
従って、本実施形態のウェブ負荷試験装置２０によれば、ウェブ負荷試験で負荷シミュレータ２３ｂにより生成される仮想ウェブクライアントがリクエストメッセージの送信とレスポンスメッセージの受信とを適切に行えるシナリオが、作成できる。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態のコンピュータネットワークシステムの構成図
【図２】シナリオ作成モジュールによる処理の流れを示す図
【図３】ワークテーブル（シナリオテーブル）のデータ構造の一例を示す図
【図４】パラメータ対応付けサブルーチンの流れを示す図
【図５】パラメータ対応付けサブルーチンの流れを示す図
【図６】ワークテーブル（パラメータ対応テーブル）のデータ構造の一例を示す図
【図７】仮想ウェブクライアントによる処理の流れを示す図
【図８】リリースサブルーチンの流れを示す図
【図９】キャッチサブルーチンの流れを示す図
【符号の説明】
【０１０５】
１０    ウェブサーバ装置
１０ａ  ストレージユニット
１０ｃ  メモリユニット
１０ｄ  通信アダプタ
１２    ウェブページデータ
１３    ウェブサーバプログラム
２０    ウェブ負荷試験装置
２０ａ  表示装置
２０ｂ  入力装置
２０ｃ  ストレージユニット
２０ｅ  メモリユニット
２０ｆ  通信アダプタ
２２    ウェブブラウザ
２３    ウェブ負荷試験ツールソフトウエア
２３ａ  シナリオ作成モジュール
２３ｂ  負荷シミュレータ
３１    シナリオテーブル
３２    ワークテーブル（パラメータ対応テーブル）
【図１】
2008234151.tif 000003
【図２】
2008234151.tif 000004
【図３】
2008234151.tif 000005
【図４】
2008234151.tif 000006
【図５】
2008234151.tif 000007
【図６】
2008234151.tif 000008
【図７】
2008234151.tif 000009
【図８】
2008234151.tif 000010
【図９】
2008234151.tif 000011