(57)【特許請求の範囲】
【請求項１】
ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置であって、
前記サーバにアクセスする複数のクライアントモジュールを同時に動作させるクライアントモジュール管理手段と、
前記複数のクライアントモジュールのそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定手段と、
前記クライアントモジュールのそれぞれが前記サーバにアクセスする時に生成した送信パケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、前記仮想ネットワークアドレス設定手段によって当該クライアントモジュールに設定された仮想ネットワークアドレスに書き換えて前記サーバに渡す送信パケット書き換え手段と、
前記サーバから受信した受信パケット内の宛先ネットワークアドレス情報をチェックして、前記仮想ネットワークアドレス設定手段で設定されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアントモジュールに渡す受信パケット書き換え手段と
を備えることを特徴とする負荷テスト実行装置。
【請求項２】
前記送信パケット書き換え手段及び前記受信パケット書き換え手段が、前記書き換えをネットワークドライバレベルで行なうことを特徴とする請求項１に記載の負荷テスト実行装置。
【請求項３】
前記送信パケット書き換え手段が、前記送信パケット中の仮想ネットワークアドレスを条件として書き換えを行なうことを特徴とする請求項１に記載の負荷テスト実行装置。
【請求項４】
前記仮想ネットワークアドレス設定手段による仮想ネットワークアドレスの設定に先立って、前記負荷テスト実行装置の現在のネットワーク設定情報をバックアップするネットワーク設定情報バックアップ手段と、
負荷テストの終了時に、バックアップしていたネットワーク設定情報を復元するネットワーク再設定手段と
を備えることを特徴とする請求項１に記載の負荷テスト実行装置。
【請求項５】
１または複数台の請求項１に記載の負荷テスト実行装置と、該負荷テスト実行装置に対して負荷テストの実行指示を行なうテストマネージャ装置とを有する負荷テストシステムであって、
前記テストマネージャ装置が、
前記仮想ネットワークアドレス設定手段により設定される仮想ネットワークアドレスを管理する仮想ネットワークアドレス管理手段と、
前記仮想ネットワークアドレス管理手段により管理される仮想ネットワークアドレス情報を前記負荷テスト実行装置に配信する仮想ネットワークアドレス情報配信手段とを備えることを特徴とする負荷テストシステム。
【請求項６】
前記テストマネージャ装置が、
前記負荷テスト実行装置が実際に行なうテストの動作を設定するための負荷テスト動作情報を設定し、前記複数のクライアントモジュール及び当該クライアントモジュールが利用するテストデータとを指定する負荷テスト動作設定手段と、
前記負荷テスト動作設定手段により設定もしくは指定された、負荷テスト動作情報、テスト用クライアントモジュール、及びテストデータを前記負荷テスト実行装置に配信する負荷テスト動作情報配信手段とを備え、
前記負荷テスト実行装置のクライアント処理管理手段は、前記負荷テスト動作情報配信手段より配信された負荷テスト動作情報に従って、配信されたテストデータを利用して、配信されたクライアントモジュールを起動させることを特徴とする請求項５に記載の負荷テストシステム。
【請求項７】
前記負荷テスト動作情報中に、各負荷テスト実行装置が利用するテスト用クライアントモジュール、及びテストデータの情報を個別に記述することで、前記各負荷テスト実行装置のクライアント処理管理手段が、異なるクライアントモジュールと異なるテストデータを利用した負荷テストを同時に実行可能とすることを特徴とする請求項５に記載の負荷テストシステム。
【請求項８】
前記テストマネージャ装置が、前記テスト用クライアントモジュールに、負荷テストとしてどの機能を実行するかを指示するテスト機能指示手段を備えることを特徴とする請求項６に記載の負荷テストシステム。
【請求項９】
ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置における負荷テスト実行方法であって、
前記サーバにアクセスする複数のクライアントモジュールを前記負荷テスト実行装置上で同時に動作させるクライアントモジュール管理工程と、
前記複数のクライアントモジュールのそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定工程と、
前記クライアントモジュールのそれぞれが前記サーバにアクセスする時に生成した送信パケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、前記仮想ネットワークアドレス設定工程において当該クライアントモジュールに設定された仮想ネットワークアドレスに書き換えて前記サーバに渡す送信パケット書き換え工程と、
前記サーバから受信した受信パケット内の宛先ネットワークアドレス情報をチェックして、前記仮想ネットワークアドレス設定工程で設定されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアントモジュールに渡す受信パケット書き換え工程と
を備えることを特徴とする負荷テスト実行方法。
【請求項１０】
請求項９に記載の負荷テスト実行方法を前記負荷テスト実行装置となるコンピュータに実行させるためのコンピュータ読み取り可能な負荷テスト実行プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に存在する種々のネットワークサーバシステムに関し、クライアント端末からのアクセス負荷に対するパフォーマンステストを行なうことができる負荷テスト実行装置及びそのシステムに関するものである。
【０００２】
【従来の技術】
近年、ネットワーク技術の発達とともに、ネットワーク上でのサーバ／クライアントシステムとして実現されるアプリケーションが増加している。このようなアプリケーションのテストは、従来のスタンドアロン型のアプリケーションとは異なり、そのパフォーマンスの測定及びボトルネックの検出を行なうためには、ネットワークを含めたシステム全体の検査が必要となるために、非常に難しくなっている。
【０００３】
上記のような目的のために、従来のネットワークサーバへの負荷テストシステムでは、実際に複数のクライアント端末を用意して、それら各々に個々のネットワークアドレスを設定し、クライアントアプリケーションを実行して、実際にサーバへのアクセスを行なって負荷を発生させていた。
【０００４】
また、いくつかの負荷テストツールに於いては、１台の端末上で複数のクライアント処理を生成して、サーバにアクセスを発生させていたが、各クライアント処理は、全て同じネットワークアドレスを利用してサーバにアクセスを行っていたので、実際の異なるネットワークアドレスを持つ複数クライアント端末からのアクセスを忠実にシミュレートすることはできなかった。
【０００５】
また、更にＵＸＩＸやｗｉｎｄｏｗｓ等のオペレーティングシステムの有するマルチホームの機能を利用すると、１台の端末上で複数のアドレスを持たせることができる。この機能を利用して、各クライアントモジュール毎に異なるアドレスを持たせて対象のサーバにアクセスをかけることのできる負荷テストシステムもある。
【０００６】
一方、アクセスパターンについては、従来のネットワークサーバへの負荷テストシステムでは、予めサーバクライアント間のアクセスパターンを記録しておき、その後、各テスト実行端末で、そのアクセスパターンを一斉に再送する、或いは、テスト対象のサーバに特化した専用のテストシステムを構築するという手法を用いていた。
【０００７】
【発明が解決しようとする課題】
複数のクライアントモジュールに対応するためには、上記従来の負荷テストシステムの中では、マルチホームの機能を利用するものが一番望ましいが、この機能を利用するためには、各クライアントモジュールは、ネットワークの接続時に、オペレーティングシステムレベルでマルチホームに対応する処理を行なう必要があった。
【０００８】
そのために、各クライアントモジュールが利用するネットワークプロトコルによっては、上記のオペレーティングシステムレベルでの接続処理を利用することができないために、上記マルチホームの機能を利用できない場合があった。
【０００９】
また、上記のような仮想アドレスの設定を行なった際は、テストの実行毎に仮想アドレスを設定し直す必要があるため、テスト端末自身のネットワーク設定が非常に煩雑になる場合が多々発生することになる。
【００１０】
一方、アクセスパターンについては、上述したアクセスパターンを一斉に再送する方法は、ＷＥＢサーバのような簡単なレスポンスしか返さないネットワークサーバのようなものに対しては、有効であるが、アプリケーションサーバのように、サーバスのテータスによって、様々なレスポンスを返し、かつクライアント側はその各レスポンスに対応した処理を行なわなければならないようなものに対しては有効ではない。
【００１１】
また、上述した対象のサーバに特化した専用のテストシステムを構築する方法は、特定のサーバシステムに関しての負荷テストには有効であるが、別のサーバシステムに対しての負荷テストを行なう場合には、再度テストシステムの構築が必要となってしまう。
【００１２】
【課題を解決するための手段】
本発明は、上記従来技術の課題を解決するためになされたのもので、その目的とするところは、様々なネットワークプロトコルを利用するクライアントモジュールに対して、サーバへの接続処理の部分を変更することなく、１台の装置上で各クライアントモジュール毎に異なるアドレスを持たせて対象のサーバにアクセスをかけることのできる負荷テスト実行装置を提供することにある。
【００１３】
上記目的を達成するために、本発明によれば、ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置に、前記サーバにアクセスする複数のクライアントモジュールを同時に動作させるクライアントモジュール管理手段と、前記複数のクライアントモジュールのそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定手段と、前記クライアントモジュールのそれぞれが前記サーバにアクセスする時に生成した送信パケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、前記仮想ネットワークアドレス設定手段によって当該クライアントモジュールに設定された仮想ネットワークアドレスに書き換えて前記サーバに渡す送信パケット書き換え手段と、前記サーバから受信した受信パケット内の宛先ネットワークアドレス情報をチェックして、前記仮想ネットワークアドレス設定手段で設定されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアントモジュールに渡す受信パケット書き換え手段とを備える。
【００１４】
また、本発明の他の態様によれば、ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置における負荷テスト実行方法であって、前記サーバにアクセスする複数のクライアントモジュールを前記負荷テスト実行装置上で同時に動作させるクライアントモジュール管理工程と、前記複数のクライアントモジュールのそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定工程と、前記クライアントモジュールのそれぞれが前記サーバにアクセスする時に生成した送信パケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、前記仮想ネットワークアドレス設定工程において当該クライアントモジュールに設定された仮想ネットワークアドレスに書き換えて前記サーバに渡す送信パケット書き換え工程と、前記サーバから受信した受信パケット内の宛先ネットワークアドレス情報をチェックして、前記仮想ネットワークアドレス設定工程で設定されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアントモジュールに渡す受信パケット書き換え工程とを備える。
【００１５】
【発明の実施の形態】
〔第１の実施形態〕
以下に、添付図面を参照しながら、本発明に係るネットワークサーバへの負荷テストシステムの一実施形態について説明する。ただし、以下の説明は、本発明に係る、テストマネージャ端末、及び、テスト実行端末、及びそれら機能を実現するアプリケーションを記録した記録媒体の一実施形態の説明を兼ねる。
【００１６】
図１は本実施形態に係るテストマネージャ端末、及び、テスト実行端末のシステム・ブロック図である。１はシステム・バスであり、これから説明する各構成ブロックはこのシステム・バスに接続されている。
【００１７】
２はＣＰＵ（Ｃｅｎｔｒｔａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。３はプログラム・メモリ（ＰＭＥＭと称す）で、本処理のためのプログラムを適宜、外部記憶装置１８から選択／読込みし、ＣＰＵ２にて実行する。
【００１８】
又、入力装置１０から入力されたデータはテキスト・メモリでもあるＰＭＥＭにコード情報として格納される。
【００１９】
４はネットワーク制御部、５はネットワークポートであり、ネットワーク制御部４は、ネットワークポート５に於ける入出力データの制御を行なう。ネットワークポート５から出力された信号は、ネットワークを経由して、ネットワーク上の他の装置のネットワークポートに伝えられる。ネットワーク上の他の端末とのデータのやり取りは、このネットワーク制御部４を介して行われる。
【００２０】
６は、公衆網を利用して通信を行なう際に接続されているモデム７等の制御を行なう。即ち、本負荷テストシステムは、ＬＡＮ以外の公衆網を利用したネットワーク接続に於ける負荷テストもその対象とすることが可能である。
【００２１】
８は入力制御部であり、接続される入力装置９を制御する。入力装置９は、例えばキーボードやマウスなどであり、操作者はこの入力装置９を操作することにより、システムの動作指令等を行なう。
【００２２】
１０は表示制御部、１１は表示制御部１０に接続されている表示装置である。入力装置９による入力指示の結果、及びテスト設定情報、テスト実行結果の情報は、ここに表示される。
【００２３】
１２は出力機器制御部であり、接続されているプリンタ１３に対するデータの出力制御を行なう。
【００２４】
１４は外部記憶装置制御部であり、接続されている外部記憶装置１５の制御を行なう。本装置の機能を制御するプログラム、及び、画像データ等は本外部記憶装置１５に保持される。
【００２５】
図２に、本実施形態の負荷テストシステムを構成する、テストマネージャ端末と各テスト実行端末との間で、どのようなデータのやり取りを行っているか、また、どのようにしてネットワーク上のテスト対象サーバ装置に対して、負荷アクセスを発生させるかという処理の手順を以下に示す。
【００２６】
▲１▼テスト動作情報設定：
ネットワーク上のテストマネージャ端末２１は、その端末の画面上に表示されるテスト実行端末一覧から、テストを実行するテスト実行端末２２を選択して、そのテスト動作、及びその実行端末上で動作させるクライアントモジュールを指定し、そのクライアントモジュールが利用する印刷ジョブなどのテストデータ２３を指示する。
【００２７】
▲２▼データの配信：
テストマネージャ端末２１の配信機構を利用して、▲１▼で設定されたデータ２３のうち、各テスト実行端末２２毎に各々必要なデータのみを送信する。
【００２８】
▲３▼テスト開始指示：
各テスト実行端末２２は、テストマネージャ端末２１からのテスト開始指示命令に従って、配信されたクライアントモジュールの初期化処理を行なう。
【００２９】
▲４▼負荷アクセス：
各テスト実行端末２２は、指示されたテスト動作情報に従って上記クライアントモジュールを起動し、配信されたテストデータ２３を利用して、テスト対象サーバ２４に対して負荷アクセスを発生させる。また、この時、個々のクライアントモジュールの動作状態は、ステータス情報として各テスト実行端末２２からテストマネージャ端末２１に通知される。
【００３０】
▲５▼テスト結果の送信：
上記▲４▼の負荷アクセス処理が終了すると、各テスト実行端末２２は、テスト結果情報２５をテストマネージャ端末２１にアップロードする。テストマネージャ端末２１は、受け取ったテスト結果情報２５を集計してユーザに通知する。
【００３１】
図３に、本実施形態の負荷テスト実行端末のモジュール構成例を示す。
【００３２】
３１は、テストエージェントであり、テストマネージャ端末２１から指示を受け取り、負荷発生処理管理モジュール３２に渡す、或いは、同モジュール３２から受け取った情報をテストマネージャ端末２１に通知するといった、ネットワークを介しての、テストマネージャ端末２１と、テスト実行端末２２の下位モジュールとの間のやり取りを行なっている。
【００３３】
負荷発生処理管理モジュール３２は、テストエージェント３１によってテストマネージャ端末２１から受け取った仮想アドレス変換設定情報３４に従って、複数クライアントモジュールを仮想クライアント３３の処理として起動して、テスト対象サーバ２４に対して負荷アクセスを発生させる。
【００３４】
負荷発生処理管理モジュール３２は、同時に、各仮想クライアント３３が動作中には、そのステータス情報を管理し、状態変化が発生した場合等は、必要に応じてその情報をテストエージェント３１経由で、テストマネージャ端末に通知する。
【００３５】
仮想クライアント（１〜Ｎ）３３は、テスト用クライアントモジュールを利用して生成／管理されているスレッド、もしくはプロセス群である。
【００３６】
仮想アドレス変換設定情報３４は、各仮想クライアント３３が、負荷テスト対象サーバ２４にアクセスする時に、どの仮想ネットワークアドレスを利用して行なうかという、仮想クライアントと仮想ネットワークアドレス間のマッピング情報である。後述するパケットフィルタモジュール３８は、本設定情報を利用して、送受信パケット中のアドレス情報の書き換え処理を行なう。
【００３７】
３５は、ネットワークトランスポートモジュールであり、上位のモジュールに対して様々なネットワークサービスを提供するモジュールである。
【００３８】
３６は、ネットワークプロトコルドライバであり、上位のトランスポートモジュール３５に対して、プロトコルレベルでのサービスを提供する。一方、上位からの要求に応じて、下位のＮＩＣ（ネットワークカード）３７を制御する機能を有する。
【００３９】
ＮＩＣ３７は、ネットワークに接続されたネットワークカードである。
【００４０】
パケットフィルタモジュール３８は、ネットワークプロトコルドライバ３６の中間層に組み込まれて、上記のトランスポートモジュール３５と、下位のＮＩＣ３７との間でやり取りされるネットワークパケットのフィルタ処理を行なう。このフィルタリング処理は、仮想アドレス変換設定情報３４に従って行なわれ、条件に合致するパケットを指定された情報に書き換えて、上位或いは下位のモジュールに渡す。
【００４１】
図４に、本実施形態のパケットフィルタリング設定情報の構成例を示す。
【００４２】
同情報は、設定ファイルとして存在しても、レジストリ等の設定キーとして存在しても良い。いずれにしても、本情報は、パケットフィルタモジュール３８の起動時、或いは上位モジュールからの設定更新通知に従って読み込まれ、パケットフィルタモジュール３８は、本設定に従ってパケットのフィルタリング処理を行なう。
【００４３】
４０１はデータ識別情報であり、本情報のバージョン、及びフィルタリング設定情報であることを表わす識別情報が設定されている。
【００４４】
４０２には、本設定情報に記録されている仮想クライアントの数が設定されている。即ち、パケットフィルタリングモジュールは、ここで設定されている数の分のクライアントモジュールの動作に対応してネットワークアドレス情報の置き換え処理を行なうことができる。以上、４０１と４０２の情報をあわせて管理情報を構成している。
【００４５】
４０３には、パケットフィルタモジュールに対しての動作を指示する動作情報フラグがセットされている。即ち、パケットフィルタモジュールは、本フラグがＯＮであれば、本設定情報を反映してパケットフィルタ処理を行い。本フラグがＯＦＦであれば、本設定に関わらず、フィルタリグ処理を停止する。
【００４６】
以降４０４〜４１３は、仮想クライアント単位に設定される設定情報である。この構成例では、１つの仮想クライアントに対して、１つの仮想アドレスがマッピングされるが、その仮想アドレスをマッピングするためのネットワークパケット内の条件及び情報が、４０７〜４１２からなる、変換設定情報である。１つの仮想クライアント設定情報内には、１つの仮想アドレス情報と、その仮想アドレスに変換するために必要な複数の変換設定情報が存在する。
【００４７】
４０４は、本パケットフィルタリング処理の対象となるプロトコル識別情報がセットされる。
【００４８】
４０５は、仮想ネットワークアドレス情報であり、該当する仮想クライアントに対してマッピングされる仮想的なネットワークアドレスを指定する。この仮想ネットワークアドレスは、パケットフィルタモジュール３８によって、該当する仮想クライアントモジュールの処理から送信されたネットワークパケットに設定される。また、本仮想アドレス宛に送信されたネットワークパケットは、同仮想アドレスが設定されている仮想クライアントモジュールの処理に対して渡される。
【００４９】
４０６は、以下に詳述する変換設定情報の数がセットされている。
【００５０】
設定情報４０７〜４０９は、各仮想クライアントとパケットフィルタモジュール３８との間でやり取りされるパケット内の設定情報であり、設定情報４１０〜４１２は、パケットフィルタ３８とＮＩＣ３７との間でやり取りされるパケット内の設定情報である。よって、前者は、アプリケーション側のネットワークデータであるため、「Ｌｏｇｉｃａｌネットワーク情報」と呼び、後者は、ドライバよりも下層、或いはネットワーク上に出て行く（よりドライバ側のネットワーク）データであるため、「Ｐｈｙｓｉｃａｌネットワーク情報」と呼ぶことにする。
【００５１】
４０７は、仮想クラアイントが使用しているローカルポートの情報である。
【００５２】
４０８は、仮想クラアイントが接続しようとしているリモート先端末のネットワークアドレス情報である。通常本テストシステムに於いては、ここにはテスト対象のサーバ端末２４のネットワークアドレスが設定される。
【００５３】
４０９は、仮想クラアイントが接続しようとしているリモート先端末上の処理のネットワークポート情報である。通常本テストシステムに於いては、ここにはテスト対象のサーバ端末２４のサーバ処理が受付待ちをしているネットワークポート情報がセットされている。
【００５４】
４１０は、実際に送受信されるネットワークパケット内に設定されているローカルポートの情報である。
【００５５】
４１１は、実際に送受信されるネットワークパケット内に設定されている相手先リモート先端末のネットワークアドレス情報である。
【００５６】
４１２は、実際に送受信されるネットワークパケット内に設定されている相手先リモート先端末上の処理のネットワークポート情報である。
【００５７】
４１３は、上記４０７〜４１２の変換設定情報が、４０６で設定されている変換設定情報数分存在していることを示している。
【００５８】
図５にアプリケーション処理パケットと、ネットワーク上の送受信パケットとの関係図の一例を示す。
【００５９】
同図に於いて、アプリケーション処理パケット５１は、各仮想クライアントが処理の対象としているデータである。その中には、
・実ローカルホストアドレス情報
・仮想クライアント処理が利用しているネットワークポート情報（Ｌｏｇｉｃａｌローカルポート）
・仮想クライアント処理が接続しているリモートアドレス情報（Ｌｏｇｉｃａｌリモートアドレス）
・仮想クライアント処理が接続しているリモート処理のポート情報（Ｌｏｇｉｃａｌリモートポート）
がセットされている。
【００６０】
上記情報は、送信データに於いては、仮想クライアントがセットし、受信データに於いては、ネットワーク上の受信パケット５３のデータを、図４につき説明したパケットフィルタリング設定情報に従って、パケットフィルタ５２が置き換えセットする。
【００６１】
送受信いずれのパケットデータであっても、上述のように、アプリケーションが意識するデータであるので、このパケット内のネットワーク情報は、前述の如く「Ｌｏｇｉｃａｌネットワーク情報」と呼ぶ。
【００６２】
一方、ネットワーク上の送受信パケット５３は、本ホスト端末から他のリモート端末に対して送信されたネットワークのパケットデータ、或いは、本ホスト端末で受信された、他のリモート端末からのネットワークパケットデータである。その中には、
・仮想ローカルホストアドレス情報
・リモート端末が当該仮想クライアントに接続するために指定しているネットワークポート情報（Ｐｈｙｓｉｃａｌローカルポート）
・ネットワーク上に実際に存在するリモート端末のアドレス情報（Ｐｈｙｓｉｃａｌリモートアドレス）
・ネットワーク上に実際に存在するリモート端末上のポート情報（Ｐｈｙｓｉｃａｌリモートポート）
がセットされている。
【００６３】
上記情報は、送信データに於いては、パケットフィルタ５２がセットし、受信データに於いては、ネットワーク上の接続先のリモート端末で動作しているテスト対象のサーバ処理プロセスがセットする。
【００６４】
図６に、各仮想クライアントと仮想アドレスとの関係図の一例を示す。
【００６５】
６１は、仮想クライアント１の処理、６２は、仮想クライアント２の処理である。これらはテスト用のクラアイントモジュールを利用して、各々別のスレッド、或いはプロセスとして生成される。
【００６６】
これらの仮想クライアントでは、各々対応するアプリケーション処理パケット６３、６４が処理される。
【００６７】
リモート端末への送信処理に於いて、パケットフィルタモジュール６５は、前述のパケットフィルタリング設定情報に従って、アプリケーション処理パケット６３をネットワーク上の送信パケット６６に変換する。同様に、アプリケーション処理パケット６４をネットワーク上の送信パケット６７に変換する。
【００６８】
逆にリモート端末からの受信処理に於いて、パケットフィルタモジュール６５は、上述した図４のパケットフィルタリング設定情報に従って、ネットワーク上の受信パケット６６をアプリケーション処理パケット６３に変換する。同様に、ネットワーク上の受信パケット６７をネットワーク上のアプリケーション処理パケット６４に変換する。
【００６９】
図６の例に於いては、ネットワーク上の送受信パケットに於けるＰｈｙｓｉｃａｌリモートアドレス、及びＰｈｙｓｉｃａｌリモートポートは、リモート端末上のテスト対象サーバプロセス６８のネットワーク情報と同じ値であるので、テスト対象のサーバプロセスに問題無く渡される。
【００７０】
同図の例に於いては、上述した図４のパケットフィルタリング設定情報が以下のように設定されている。
【００７１】
〔仮想クライアント１〕
・仮想ネットワークアドレス情報４０５  ＝  １７２．２０．１００．２０
・Ｌｏｇｉｃａｌリモートアドレス情報４０８  ＝  １７２．２０．１００．２５
・Ｐｈｙｓｉｃａｌリモートアドレス情報４１１  ＝  １７２．２０．９９．２５
〔仮想クライアント２〕
・仮想ネットワークアドレス情報４０５  ＝  １７２．２０．１０１．２０
・Ｌｏｇｉｃａｌリモートアドレス情報４０８  ＝  １７２．２０．１０１．２５
・Ｐｈｙｓｉｃａｌリモートアドレス情報４１１  ＝  １７２．２０．９９．２５
図６に於いては、上記以外の設定情報は、変換無しと設定されている。
【００７２】
図７に、本実施形態のパケットフィルタモジュール５２に於ける仮想クライアントからの送信要求パケットの変換処理手順の例をフローチャートに示す。
【００７３】
本フィルタモジュール５２はイベント待ち状態にあり、何らかのイベントを受け取ると以下の処理を行なう。
【００７４】
まず、ステップＳ７０１では、上位モジュールからのパケットフィルタリング処理の終了指示がなされているか否かをチェックする。終了指示であると判断された場合には、終了処理に分岐し、そうでは無いと判断された場合には、ステップＳ７０２に分岐する。
【００７５】
ステップＳ７０２に於いては、仮想クライアント処理からの送信パケットを待つ。そしてステップＳ７０３で、送信パケットがあるかを判断し、送信パケット有りと判断された場合には、ステップＳ７０４の処理に移り、その変換処理を行なう。送信パケットが存在しないと判断された場合には、再び最初のイベント待ち状態となる。
【００７６】
ステップＳ７０４以降では、送信パケットの変換処理を行なうために、該当する情報を図４に示すようなパケットフィルタリング設定情報から読み出す処理を行なう。
【００７７】
まずステップＳ７０４では、上記処理を行なうための処理のループカウンタを初期化する。同ループに於いて、“Ｉ”は、仮想クライアントの数を表すカウンタであり、“ｉ”は、仮想クライアント毎に設定されている個々の変換設定情報の数を表すカウンタである。
【００７８】
ステップＳ７０５では、仮想クラアイント〔Ｉ〕のパケットフィルタリング情報を読み出す。
【００７９】
ステップＳ７０６では、ステップＳ７０５の読み出し処理が成功したか否かをチェックし、読み出し処理が成功した場合には、ステップＳ７０７に分岐し、失敗した場合には、該当する仮想クライアントの設定情報が存在しないとして、パケットフィルタリング処理を行わず、再び最初のイベント待ち状態となる。
【００８０】
ステップＳ７０７では、ステップＳ７０５で読み出した仮想クライアント情報中から、ｉ番目の変換設定情報を読み出す。
【００８１】
ステップＳ７０８では、ステップＳ７０７の読み出し処理が成功したか否かをチェックし、読み出し処理が成功した場合には、ステップＳ７１０に分岐し、失敗した場合には、該当する仮想クライアントの設定情報を全て読み出したと判定し、ステップＳ７０９に分岐する。
【００８２】
ステップＳ７０９では、次の仮想クラアイント設定情報を読み出すためにループカウンタ“Ｉ”をインクリメントして、ステップＳ７０５に処理を移す。
【００８３】
ステップＳ７１０では、送信パケット中に、読み出した変換設定情報中のＬｏｇｉｃａｌネットワーク情報の設定条件と合致するものが存在するか否かのチェックを行なう。
【００８４】
ステップＳ７１１では、上記チェックの結果、合致するものが存在すると判定された場合には、変換処理を行なうためにステップＳ７１３に分岐し、存在しないと判定された場合には、ステップＳ７１２に分岐する。
【００８５】
ステップＳ７１２では、次の変換設定情報を読み出すためにループカウンタ“ｉ”をインクリメントして、ステップＳ７０７に処理を移す。
【００８６】
ステップＳ７１３では、見つかった変換設定情報に従って、送信パケットデータ内の該当するＬｏｇｉｃａｌ情報を、対応するＰｈｙｓｉｃａｌ情報に変換してセットする。
【００８７】
本処理が終了した後は、再び最初のイベント待ち状態に移る。
【００８８】
図７では、パケットフィルタに於ける仮想クラアイントからの送信要求パケットに対しての処理を説明しているが、ネットワーク上の受信パケットに対してのパケットフィルタの処理もほぼ同様である。
【００８９】
相違点は、ステップＳ７１０の処理に於いて、「Ｌｏｇｉｃａｌネットワーク情報内の設定条件に合致するものが存在するか否かをチェックする」代わりに、「Ｐｈｙｓｉｃａｌネットワーク情報内の設定条件に合致するものが存在するか否かをチェックする」ようにし、ステップＳ７１３の処理の「Ｐｈｙｓｉｃａｌネットワーク設定情報を送信パケットにセットする」代わりに、「Ｌｏｇｉｃａｌネットワーク設定情報を受信パケットにセットする」という処理を行えばよい。
【００９０】
図８に、本実施形態に於ける、負荷テストシステムのモジュール構成図の一例を示す。
【００９１】
同図中では、１台のテストマネージャ端末２１、および”ｎ”台のテスト実行端末２２から構成されている負荷テストシステムを利用して、１台のテスト対象ネットワークサーバに対する負荷テストを行なう場合を例にして説明している。なお、ここでは説明を簡単にするために、１台のネットワークサーバに負荷を与える例を示しているが、本発明では、この制限にとらわれることなく、複数の対象サーバに対して負荷テストを実行することが可能である。
【００９２】
テストマネージャ端末２１の機能は、以下のモジュール８１〜８４によって提供される。
【００９３】
テスト実行端末管理モジュール８１は、各テスト実行端末２１に於けるテストの実行状況を確認する。本モジュール８１は、イベント処理モジュール８３を利用して、テスト実行端末２１からのステータス変更イベント情報を獲得する。或いは、テストの実行開始／中止の指示を、所望のテスト実行端末に対してイベントを発行することによって行なうことができる。
【００９４】
テスト動作情報設定モジュール８２は、各テスト実行端末が実際に行なうテストの動作を設定する。同時に、各負荷テスト実行端末２１上で負荷を生成するために実行されるテスト用クライアントモジュール、及び上記クライアントモジュールが利用するテストデータの指定もこのモジュール８２を利用して行われる。ここで設定されたデータは、データ配信モジュール８４を利用して、適切なデータが各テスト実行端末に配信される。
【００９５】
イベント処理モジュール８３は、ネットワーク上へのイベント発行、および、ネットワーク上のイベント情報を獲得し、その内容を解析するためのモジュールである。イベント処理モジュール８３は、テストマネージャ端末２１とテスト実行端末２２の双方に存在し、テストマネージャ端末２１に於いては、各テスト実行端末への処理の指示、テスト実行端末２２に於いては、自身のテスト実行ステータスの変化を通知するために利用される。
【００９６】
データ配信モジュール８４は、ネットワーク上の所望の端末に対して指示されたデータを配信するためのモジュールである。データ配信モジュール８４は、テストマネージャ端末２１とテスト実行端末２２の双方に存在し、テストマネージャ端末２１に於いては、各テスト実行端末へのテスト関連データを配信するために利用され、テスト実行端末２２に於いては、テスト結果情報をテストマネージャ端末２１に送信するために利用される。
【００９７】
次に、テスト実行端末２２の機能構成について説明する。
【００９８】
負荷発生処理管理モジュール８５は、データ配信モジュール８４によって受け取ったテスト動作情報に従って、クライアントモジュールを起動して、配信されたテストデータを利用して、テスト対象サーバ２４に対して負荷アクセスを発生させる。
【００９９】
ここで、負荷発生処理は、テストマネージャ２１から配信されたクライアントモジュールを指示された条件で立ち上げることによって実現される。このクライアントモジュールは同時に複数起動する（図８の例の場合には“Ｎ”個）ことが可能であり、更には、１台のテスト実行端末上で複数の異なるクライアントモジュールを同時に起動することも可能である。
【０１００】
個々のクライアントモジュールの動作状況は、イベント処理モジュール８３を利用してテストマネージャ端末２１に通知される。
【０１０１】
仮想クライアント処理（１〜Ｎ）８６は、負荷発生処理管理モジュール８５によって生成／管理されているスレッドもしくはプロセス群であり、テストマネージャから指示されたテスト動作情報に従って、対象サーバ２４に負荷アクセスを発生する。
【０１０２】
パケットフィルタ８７は、複数の負荷発生処理に対して擬似的に複数のネットワークアドレスをマッピングする等の負荷テストに於けるネットワーク制御処理を行なう。
【０１０３】
以上により、１つの負荷テスト実行端末上で、複数のクライアントモジュールを同時に動作させ、それぞれに異なる仮想ネットワークアドレスを設定し、パケット内のネットワークアドレス情報をパケットフィルタによって書き換えることで、多数のクライアント端末からのアクセス負荷のパフォーマンステストを、少数のテスト実行端末で行なうことが可能となる。
【０１０４】
〔実施形態２〕
本実施形態では、テストの実行前のネットワーク設定情報をバックアップしておき、テスト終了後に、バックアップしておいた設定情報によってテスト実行前のネットワークの設定を回復させる。
【０１０５】
図９に、オリジナルのネットワーク設定情報と、仮想ネットワークアドレス設定情報を追加したテスト用のネットワーク設定情報の一例を示す。
【０１０６】
９１は、負荷テスト実行前のネットワーク設定情報であり、各端末のネットワーク名称と、そのネットワークアドレス−本例の場合には、ＩＰアドレス−がペアで設定されている。
【０１０７】
このオリジナルのネットワーク設定情報に於いては、負荷テストは実行されていないので、仮想アドレスの設定は行われていない。
【０１０８】
即ち、ネットワーク上で名前を解決しなければならないのは、
・テスト対象のサーバ端末ＴｅｓｔＳｒｖ
・テスト実行用のローカル端末（自機）Ｃｌｉｅｎｔ０
・テスト実行用のローカル端末（他の端末）Ｃｌｉｅｎｔ１
の３端末である。
【０１０９】
一方、９２は、負荷テスト実行時のネットワーク設定情報であり、図４で示したパケットフィルタリング設定情報に設定されている、仮想ネットワークアドレス情報４０５より、テスト実行時に各テスト実行端末上で、自機で設定される仮想クライアントのネットワークアドレス、及び、そのネットワーク名称を獲得することができる。
【０１１０】
本例に於いては、テスト実行用のローカル端末（自機）Ｃｌｉｅｎｔ０で設定される仮想クライアントのネットワーク情報は、
【０１１１】
【表１】
0003595783.tif 000002
【０１１２】
同様に他のテスト実行端末に於ける仮想クライアントのネットワーク情報は、
【０１１３】
【表２】
0003595783.tif 000003
【０１１４】
となっている。
【０１１５】
また、自機上の各仮想クライアント処理が、アクセスするためのテスト対象サーバ２４用のＬｏｇｉｃａｌリモートアドレス情報（図４のリモートアドレス４０８）として、
【０１１６】
【表３】
0003595783.tif 000004
【０１１７】
がセットされている。
【０１１８】
負荷テスト用のネットワーク設定情報９２中の上記の仮想アドレス情報は、指示された負荷テスト実行中のみ意味を持つものであり、異なる設定の負荷テスト実行時、或いは負荷テストを行なっていないときには、意味のない設定（或いは不適切なネットワーク設定）である。
【０１１９】
よって、本実施形態の負荷テストシステムに於いては、負荷テストの実行前処理として、設定情報９１をバックアップし、その後に負荷テスト用のネットワーク設定情報９２を設定し、負荷テストの終了後に再度オリジナルのネットワーク設定情報９１を復元する。
【０１２０】
図１０に、本実施形態におけるネットワーク設定バックアップ処理手順の例をフローチャートに示す。
【０１２１】
本フィルタモジュールはイベント待ち状態にあり、何らかのイベントを受け取ると以下の処理を行なう。
【０１２２】
まず、ステップＳ１００１では、上位モジュールからのテストの実行指示を待つ。
【０１２３】
ここで、ステップＳ１００２で、テスト実行指示であると判断された場合には、ステップＳ１００３に分岐し、そうではないと判断された場合には、再び最初のイベント待ち状態となる。
【０１２４】
ステップＳ１００３では、負荷テストを実行する前に現在のネットワークの設定情報のバックアップ処理を行なう。
【０１２５】
次にステップＳ１００４では、テストマネージャから指示されたテスト用の仮想ネットワークアドレス情報の設定処理を行なう。
【０１２６】
この状態で、負荷テスト実行の準備は完了したので、ステップＳ１００５では、実際の負荷テストを実行する。
【０１２７】
ステップＳ１００６では、負荷テストの終了チェックを行い、終了していないと判断された場合には、再度本ステップの先頭に戻りテストの実行状態をチェックする。テストが終了されていると判断された場合には、ステップＳ１００７に移り、ステップＳ１００３でバックアップしておいたオリジナルのネットワーク設定情報を読み出して再設定を行なう。
【０１２８】
これにより、仮想アドレスの設定を行なった後で、アドレスを設定し直すための煩雑な操作が必要なくなる。
【０１２９】
〔実施形態３〕
本実施形態では、テストマネージャ端末２１からテスト実行端末２２に配信されるテスト動作情報の内容とそれを利用したテストの実行方法について説明する。図１１に、本実施形態に於けるテスト動作情報のデータ構造例を示す。
【０１３０】
データ識別情報１１０１には、このデータが本負荷テストシステムのテスト動作情報データであることを示す識別ＩＤ、および情報のバージョン管理情報等がセットされている。
【０１３１】
テストマネージャ端末情報１１０２には、本設定情報を作成したテストマネージャ端末２１のネットワークアドレス等のネットワーク上での識別情報がセットされている。
【０１３２】
テスト実行端末の数１１０３には、本設定情報で管理されているテスト実行端末２２の数がセットされている。以降のテスト端末の設定情報もこの数と同じだけ存在している。
【０１３３】
以上１１０１〜１１０３が本テスト動作情報全体の管理情報である。
【０１３４】
テスト実行端末情報１１０４には、以降の設定情報に従ってテストを実行する端末２２のネットワークアドレス等のネットワーク上での識別情報がセットされている。
【０１３５】
発生させる負荷処理の数１１０５には、本テスト実行端末２２で生成する負荷を発生させるためのクライアント処理（スレッド、或いはプロセス）の数が設定されている。この数だけ、以降の「負荷処理の設定」情報が存在する。
【０１３６】
処理の同時実行情報１１０６には、複数の負荷処理を本実行端末２２で生成する場合に、同時に発生させる処理の個数、およびその発生間隔が設定されている。
【０１３７】
タイムアウト情報１１０７には、本端末に於ける個々の処理に於いてタイムアウトと判定する閾値がセットされている。
【０１３８】
以上１１０４〜１１０７が、テスト実行端末２２に於ける全処理に関しての管理情報である。
【０１３９】
クライアントモジュール名称１１０８は、当該負荷処理を発生させるために利用するクライアントモジュールの名称である。このモジュールは、テストマネージャ端末２１から各テスト実行端末２２に配信される。（もしくは、重複チェックを行ない、もともとテスト実行端末２２に存在するモジュールの場合には、無駄な配信処理は行わない）
テストデータファイル名称１１０９は、負荷処理に於いてクライアントモジュール１１０８が対象サーバ２４にアクセスを行なう際に利用するデータである。
【０１４０】
クライアントモジュール動作設定情報１１１０には、クライアントモジュール１１０８が負荷テストのために実行する機能のリスト、および処理タイミングを同期するための情報がセットされている。
【０１４１】
前者は、例えば、クライアントモジュール１１０８が一連の印刷処理を行なうモジュールであり、
１．  プリンタを初期化する機能
２．  プリンタを列挙する機能
３．  プリンタにジョブを登録する機能
４．  指示プリンタのステータスを列挙する機能
という機能を有する場合、本負荷処理で行なう機能のリストとして、例えば、１，
２，  ３というように指定する情報がセットされている。
【０１４２】
後者は、例えば、１台のテスト実行端末上で複数の負荷処理が行われる場合、例えば、上記のように１，  ２，  ３という処理を実行する際に１の処理が、各負荷処理間でばらばらに終了しても、２の処理の開始ポイントを同期させるというための設定情報である。
【０１４３】
仮想ネットワークアドレス情報１１１１は、１台のテスト実行端末２２で、複数の負荷処理を実行する場合、負荷対象のサーバ２４に対して、個々の負荷処理毎に個別のネットワーク端末からアクセスが行われているかのように見せかけるための機能を実現するための情報である。仮想ネットワークアドレス情報１１１１を前述のパケットフィルタ８７に与えることによって、上記機能を実現することができる。
【０１４４】
負荷対象サーバの情報１１１２は、本負荷処理がアクセスするテスト対象のサーバ２４に対するネットワークアドレス等のネットワーク上での識別情報がセットされている。
【０１４５】
その他の制御情報１１１３には、本負荷処理を行なうにあたり必要な詳細設定情報がセットされている。
【０１４６】
以上１１０８〜１１１３が負荷処理毎の設定情報である。
【０１４７】
図１２は、本実施形態のテスト実行端末２２に於ける負荷テスト実行処理手順の例を示すフローチャートである。
【０１４８】
本フローチャートでは、説明を簡単にするために、前提として、本フローの処理に先立って、テストマネージャ２１からは既に、テスト設定情報、テスト用クライアントモジュール、及びテストデータに関しての設定とその配信処理は完了しているものとする。
【０１４９】
まず、ステップＳ１２０１では、テストマネージャからの指示イベントを待つ。ステップＳ１２０２で、テスト準備の指示イベントであるか、否かをチェックし、テスト開始指示であると判断された場合には、ステップＳ１２０３へ移行し、そうでは無いと判断された場合には、再びステップＳ１２０１に戻る。
【０１５０】
ステップＳ１２０３では、自機（テスト実行端末２２）に、テスト実行に必要なデータ（テスト設定情報、テスト用クライアントモジュール、及びテストデータ）が存在するか否かをチェックし、存在すると判断された場合には、ステップＳ１２０５に移行し、存在しないと判断された場合には、ステップＳ１２０４に移行する。
【０１５１】
ステップＳ１２０４では、自機にデータが存在しないので、指示されたテストを実行することができないというエラー情報をテストマネージャ２１に対して通知する。
【０１５２】
ステップＳ１２０５では、自機に配信されたテストに必要なデータを利用して、指示された設定に従って負荷処理を立ち上げてテスト準備処理を実行する。
【０１５３】
ステップＳ１２０６では、テスト準備の完了イベントを発行してテストマネージャ２１に通知する。
【０１５４】
ステップＳ１２０７では、再度テストマネージャ２１からの指示イベント待ち処理に入る。
【０１５５】
ステップＳ１２０８で、テストマネージャ２１からのテスト開始指示イベントであると判断された場合には、ステップＳ１２０９に移行し、そうではない場合には、ステップＳ１２０７で再びイベント待ち処理を行なう。
【０１５６】
ステップＳ１２０９では、全ての負荷テスト処理に対して実行の指示を行ない、対象となるサーバ２４に対して負荷の発生処理を行なう。
【０１５７】
ステップＳ１２１０では、全ての負荷テスト処理からの状態通知イベントの監視処理を行なう。
【０１５８】
ステップＳ１２１１では、負荷テスト処理からの状態変化通知イベントに応じて、テスト実行端末２２内のステータス管理テーブルの情報を更新する。このステータス管理テーブルは、全ての負荷テスト処理の終了状態（正常／エラー）を管理するものであり、全負荷テスト処理が終了するまで、テストは実行中であると判断し、状態監視処理を継続する。
【０１５９】
ステップＳ１２１２では、上記ステータス管理テーブルの内容をチェックして、全ての負荷テスト処理が終了したか、否かを判定する。全ての負荷処理が終了したと判定された場合には、ステップＳ１２１３に移行し、そうでは無いと判定された場合には、ステップＳ１２１０に移り、負荷テスト処理からの状態通知イベント待ち処理を継続する。
【０１６０】
ステップＳ１２１３では、全ての負荷テスト処理が終了したとして、その結果ステータスをテストマネージャ２１に通利して、処理を終了する。
【０１６１】
これにより、様々なネットワーク上のサーバシステムに対して、テストデータと、クライアントモジュールを自由に差し替えることによって、種々のクライアントアクセスパターンを実現して、効率の良いネットワークを含めたシステム全体の検査を実現することが可能となる。
【０１６２】
〔変形例１〕
上述した実施形態の変形例を以下に述べる。上記実施形態では、負荷テストの処理実行中に、テストマネージャ２１と各テスト実行端末２２間でのネットワーク上のやり取りを軽減するため、各テスト実行端末２２上に負荷発生処理管理モジュール８５を持つことにより、テストの実行中に各負荷発生処理から上がってくるステータス通知イベントを管理し、必要な通知情報のみをテストマネージャに対してイベントとして通知するようにしていた。
【０１６３】
しかしながら、ネットワーク上の帯域が十分確保されており、かつ、テストマネージャ端末２１が十分な処理能力を持っているならば、図８において、
・負荷発生管理モジュール８５は、各仮想クライアント処理８６の初期化／終了処理のみを行なう。
・各仮想クライアント処理８６は、イベント処理モジュール８３を直接利用して、テストマネージャ２１上のテスト実行端末管理モジュール８１に状態通知を直接行なう。
ようにすることができる。
【０１６４】
この変形例によって、テストマネージャ２１側では、各テスト実行端末２２上で実行されている各々の仮想クライアント処理８６の状態を実時間で詳細に獲得することが可能となる。
【０１６５】
〔変形例２〕
上述した実施形態では、各テスト実行端末２２が負荷テストを行なうために必要なデータ（テスト設定情報、テスト用クライアントモジュール、及びテストデータ）は、テストマネージャ２１から各テスト実行端末２２に対して配信されることになっていた。
【０１６６】
しかしながら、テストマネージャ２１の負荷を軽減するために、各テスト端末２２が、以下の手順で、テストに必要なデータを獲得するようにしてもよい。
【０１６７】
Ｓｔｅｐ１：テストマネージャ２１に於いて、テストに必要なデータの準備が完了する。
【０１６８】
Ｓｔｅｐ２：テストマネージャ２１は、各テスト実行端末２２に対して、テストに必要なデータの獲得を指示するイベントを通知する。
【０１６９】
Ｓｔｅｐ３：各テスト実行端末２２は、テストマネージャ２１に対して、自機が必要とするテストデータを要求して、当該データをダウンロードする。
【０１７０】
Ｓｔｅｐ４：テスト実行端末２２が必要なデータのダウンロードを終了すると、テスト実行準備を行なって、その結果をテストマネージャ２１にイベントを発行して通知する。
【０１７１】
Ｓｔｅｐ５：テストマネージャ２１は、全てのテスト実行端末２２からテスト実行準備完了のイベントが届いたと確認できたら、全テスト実行端末２２に対してテスト実行の指示イベントを発行する。
【０１７２】
尚、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【０１７３】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているＯＳなどの処理により、上述の機能を実現される場合も含まれる。
【０１７４】
これらの場合、そのプログラムコードを含むプログラムは本発明を構成することになる。
【０１７５】
【発明の効果】
以上説明したように、本発明によれば、１つの負荷テスト実行装置上で、複数のクライアントモジュールを同時に動作させ、それぞれに異なる仮想ネットワークアドレスを設定し、クライアントモジュールのそれぞれが前記サーバにアクセスする時に生成した送信パケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、前記仮想ネットワークアドレス設定工程において当該クライアントモジュールに設定された仮想ネットワークアドレスに書き換えて前記サーバに渡し、また、サーバから受信した受信パケット内の宛先ネットワークアドレス情報をチェックして、設定されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアントモジュールに渡すようにしたので、利用するネットワークプロトコルによらず、ネットワークサーバに対する多数のクライアント端末からのアクセス負荷のパフォーマンステストを、少数のテスト実行端末で行なうことが可能となる。
【図面の簡単な説明】
【図１】本発明に係る一実施形態のテストマネージャ端末、及びテスト実行端末のシステム・ブロック図である。
【図２】本実施形態の負荷テストシステムに於けるデータの交換手順を示す図である。
【図３】負荷テスト実行端末のモジュール構成例を示す図である。
【図４】パケットフィルタリング設定情報の構成例を示す図である。
【図５】アプリケーション処理パケットとネットワーク上の送受信パケットとの関係の一例を示す図である。
【図６】各仮想クライアントと仮想アドレスの関係を示す図である。
【図７】仮想クライアントからの送信要求パケットの変換処理手順の例を示すフローチャートである。
【図８】負荷テストシステムのモジュール構成の一例を示す図である。
【図９】オリジナルのネットワーク設定情報とテスト用のネットワーク設定情報の一例を示す図である。
【図１０】ネットワーク設定バックアップ処理手順の例をフローチャートである。
【図１１】テスト動作情報のデータ構造例を示す図である。
【図１２】テスト実行端末に於ける負荷テスト実行処理手順の例を示すフローチャートである。
【図１】
0003595783.tif 000005
【図２】
0003595783.tif 000006
【図３】
0003595783.tif 000007
【図４】
0003595783.tif 000008
【図５】
0003595783.tif 000009
【図６】
0003595783.tif 000010
【図７】
0003595783.tif 000011
【図８】
0003595783.tif 000012
【図９】
0003595783.tif 000013
【図１０】
0003595783.tif 000014
【図１１】
0003595783.tif 000015
【図１２】
0003595783.tif 000016