説明

トランザクションを再生するためのデータを生成する装置及び方法

【課題】サーバのテストのためにトランザクションを再生する際に、トランザクションの再生による不正の発生を抑制し、かつ、トランザクションの再生に要する時間を短縮する。
【解決手段】再生シナリオ生成装置40では、SI画面決定部46が、どの画面からでも遷移可能なSI画面をトレースの統計処理結果から決定し、シナリオ取得部47が開始点でアクティブなセッションのシナリオをトレースから取得すると、ショートカット処理部48が、そのシナリオを、認証画面から開始点までの同じSI画面の間の画面遷移をカットすることで短縮し、接木処理部49が、そのシナリオを、認証画面から開始点以前のSI画面までの画面遷移に代えて、トレースの統計処理結果から得られた最短画面遷移を接木することで短縮し、再生速度調整部51が、シナリオの再生速度を調整し、シナリオ出力部53が、これらの処理の結果を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクションを再生するためのデータを生成する装置及び方法に関する。特に、本発明は、クライアントの要求に応じてサーバで実行されたトランザクションを記録したデータに基づいて、サーバのテストのために実行されるトランザクションを再生するためのデータを生成する装置及び方法に関する。
【背景技術】
【0002】
ウェブアプリケーションのシステムに対して、キャプチャプレイバック方式の実データによる負荷テストを行うことがある。
従来、このような負荷テストは、まず、ある時点(「開始点」と呼ぶ)におけるDB(データベース)のコピーを作成し、次に、開始点以降の実データを再生してテスト対象システムにかける、という手順で行われていた。
【0003】
また、ウェブアプリケーションのシステムの災害対策として構築したスタンバイのバックアップシステムの動作確認テストを行うこともある。
対象システムは、本番システムからバックアップシステムへ、DBをコピーしており、本番システムが停止した場合、バックアップシステムが起動されて本番システムの処理を引き継ぐようになっている。
このようなバックアップシステムが確実に稼動することをテストするためには、本番システムからのDBのコピーを、テストのために定めた被災時点(「仮想被災時点」と呼ぶ)で中断し、その後バックアップシステム側でエンドユーザ処理の継続が可能となっていることを確認する必要がある。
従来、このようなテストとして、DBコピーの機能のテスト、バックアップシステムの機能のテストという2フェーズのテストが独立して行われていた。この場合、前者のテストでは、本番システムからのコピーを対象とするので、インテグレーションテストでは実データをコピーすることになる。これに対し、後者のテストでは、実データによるキャプチャプレイバック方式のテストが行えない制約があるため、DBのデータ及びネットワーク負荷としてサンプルデータを用いたテストが行われていた。
【0004】
ここで、同様のテストケースに基づくテストに関する技術は、公報記載の技術としても知られている(例えば、特許文献1〜3参照)。
特許文献1の技術は、ホストコンピュータからの疑似的な入力情報に基づいて、試験装置に格納された評価対象プログラムのエミュレーション動作を実行し、結果を出力情報として取得することによりプログラムの評価試験を行うプログラム評価システムに関するものである。
特許文献2の技術は、1個又は数個の検証シナリオがクライアントエンドのシミュレートされた環境においてマネージメントソフトウェアの構成及び性能をテストするために提供される、マネージメントホスト中のマネージメントソフトウェアの履行を検証する方法に関するものである。
特許文献3の技術は、少なくとも2つの電気通信設備の間の実際の通信を記録し、記録した実際の通信を分析し、この分析結果に基づいてテストケースを生成するテストジェネレータに関するものである。
【0005】
また、公報記載の技術の中には、DBの復旧に関する技術もある(例えば、特許文献4参照)。
特許文献4の技術は、ユーザが使用するインターネットアクセス機器上に処理操作の操作ログを保持することにより、サービス提供側のWebサーバに異常が発生した際にも、操作ログを用いて、異常が発生した時点までの処理を復旧し、ユーザはシームレスに処理を継続できる構成とする処理要求復旧方式に関するものである。
【0006】
更に、公報記載の技術の中には、セッションの復旧に関する技術もある(例えば、特許文献5参照)。
特許文献5の技術は、セッションを開設するために入力された認証情報を保持する認証情報保持手段と、セッションが無効となった旨を検知するセッション無効化検知手段と、セッション無効化検知手段によってセッションが無効となった旨が検知された場合に、認証情報保持手段に保持されている認証情報を用いてサーバ装置に対しセッションの開設を要求するセッション復旧手段とを有する情報処理装置に関するものである。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−275094号公報
【特許文献2】特開2008−257676号公報
【特許文献3】特開2001−326702号公報
【特許文献4】特開2003−006018号公報
【特許文献5】特開2005−100344号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、通常、負荷テストは、目標の高負荷を若干のランプアップを行いながら対象システムにかけることによって行われる。従って、前述の実データによる負荷テストでも、ピーク時の負荷を再生したいという要求がある。
【0009】
しかしながら、開始点は、負荷のピーク時に設定することができず、業務開始前か負荷が低い時間帯(例えば早朝)にとらざるを得ない。これは、開始点で既にアクティブなユーザセッションは、開始点から再生すると認証等がなされないため、正常に再生されない可能性がある、という制約によるものである。
その結果、業務開始時からピーク時まで実データを再生する必要があり、テスト所要時間が延びてしまっていた。
【0010】
また、前述のバックアップシステムの動作確認テストを実データによって行おうとすると、次のような手順を踏む必要がある。即ち、まず、本番システムでネットワークトレースを取得しながら、仮想被災時点で本番システムからバックアップシステムへのDBのコピーを切断する。このとき、ネットワークトレースの取得は継続する。次に、本番システムからコピーしたDBを使用してバックアップシステムを起動する。そして、バックアップシステムが稼動したら、本番システムで取得したネットワークトレースに基づく仮想被災時点からの負荷の再生をバックアップシステムに対して開始し、一定時間再生を継続する。
【0011】
しかしながら、仮想被災時点で既にアクティブなユーザセッションは、バックアップシステムで再度行う必要のあるログイン操作が行われないまま再生が開始されるため、不正になってしまう。
これを回避するために、ログイン中のユーザがいない又は少ない時間帯(例えば夜間)を仮想被災時点とする、負荷が十分ではないが仮想被災時点以降にログインしたユーザ分のみを再生する、といった制約の下でテストを行うことも考えられるが、効果が減少してしまう。
【0012】
このように、従来は、例えばウェブアプリケーションが動作するサーバを実データに基づくトランザクションの再生によってテストする際に、そのトランザクションの再生による不正の発生を抑制し、かつ、そのトランザクションの再生に要する時間を短縮することができなかった。
尚、特許文献1〜5の技術も、このような従来の問題点に対する解決手段を何ら提供するものではない。
【0013】
本発明の目的は、サーバのテストのためにトランザクションを再生する際に、トランザクションの再生による不正の発生を抑制し、かつ、トランザクションの再生に要する時間を短縮することにある。
【課題を解決するための手段】
【0014】
かかる目的のもと、本発明は、クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する装置であって、指定された時刻にクライアントとサーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得する取得部と、取得部により取得された記録データのうち、クライアントとサーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、再生用データを生成する生成部と、生成部により生成された再生用データを出力する出力部とを含む、装置を提供する。
【0015】
ここで、この装置は、複数のセッションで第1のトランザクションが実行されてから第2のトランザクションが実行されるまでにそれぞれ実行された複数のトランザクション群のうち、最もトランザクション数の少ないトランザクション群を記録した記録データを記憶する記憶部を更に含み、生成部は、取得部により取得された記録データのうち、第1のトランザクションが実行されてから第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを、記憶部に記憶された記録データで置換する縮減処理により、再生用データを生成する、ものであってもよい。
また、この装置において、生成部は、特定のセッションで第1のトランザクションが実行されてから第2のトランザクションが実行されるまでに第2のトランザクションと同じ内容の第3のトランザクションが実行された場合に、取得部により取得された記録データのうち、第3のトランザクションが実行されてから第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する縮減処理により、再生用データを生成する、ものであってもよい。
また、この装置において、生成部は、取得部により取得された記録データのうち、第1のトランザクションが実行されてから第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する縮減処理により、再生用データを生成する、ものであってもよい。
【0016】
更に、この装置は、複数のセッションで第1のトランザクションが実行されてから第2のトランザクションが実行されるまでにそれぞれ実行された複数のトランザクション群のうち、最もトランザクション数の少ないトランザクション群を記録した記録データを記憶する記憶部を更に含み、生成部は、特定のセッションで第1のトランザクションが実行されてから第2のトランザクションが実行されるまでに第2のトランザクションと同じ内容の第3のトランザクションが実行された場合に、取得部により取得された記録データのうち、第3のトランザクションが実行されてから第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する第1の縮減処理により、第1の再生用データを生成し、取得部により取得された記録データのうち、第1のトランザクションが実行されてから第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを、記憶部に記憶された記録データで置換する第2の縮減処理により、第2の再生用データを生成し、出力部は、第1の縮減処理による縮減効果及び第2の縮減処理による縮減効果に関する情報を出力する、ものであってもよい。
【0017】
また、この装置は、複数のセッションで実行された複数のトランザクションを記録した記録データを蓄積する蓄積部と、蓄積部に蓄積された記録データに基づいて、特定トランザクション群を決定する決定部とを更に含む、ものであってよい。
その場合、決定部は、蓄積部に蓄積された記録データから得られる、各トランザクションの直前に実行された異なるトランザクションの数、各トランザクションの直後に実行された異なるトランザクションの数、各トランザクションが実行された回数、及び、第1のトランザクションが実行されてから各トランザクションが実行されるまでに実行されたトランザクションの数の少なくとも1つに基づいて、特定トランザクション群を決定する、ものであってよい。
【0018】
また、本発明は、クライアントが要求しサーバが送信した画面の情報を記録した記録データに基づいて、サーバのテストのために画面を再生するための再生用データを生成する装置であって、クライアントとサーバとの間でセッションを確立するための第1の画面を、外部から与えられた情報に基づいて特定する第1の特定部と、決まった画面からしか遷移できないという制約のない特定画面群を、各画面の直前に表示された異なる画面の数、各画面の直後に表示された異なる画面の数、各画面が表示された回数、第1の画面が表示されてから各画面が表示されるまでに表示された画面の数、及び、外部から与えられた情報の少なくとも1つに基づいて特定する第2の特定部と、指定された時刻にクライアントとサーバとの間で確立されていた特定のセッションで表示された画面の情報を記録した記録データを取得する取得部と、特定のセッションで、第1の画面が表示されてから、特定画面群に属し、時刻以前に表示された第2の画面が表示されるまでにも、第2の画面が表示された場合に、取得部により取得された記録データのうち、1回目に第2の画面が表示されてから2回目に第2の画面が表示されるまでに表示された画面の情報を記録した記録データを削除することにより、再生用データを生成する生成部と、生成部により生成された再生用データを出力する出力部とを含む、装置も提供する。
【0019】
また、本発明は、クライアントが要求しサーバが送信した画面の情報を記録した記録データに基づいて、サーバのテストのために画面を再生するための再生用データを生成する装置であって、クライアントとサーバとの間でセッションを確立するための第1の画面を、外部から与えられた情報に基づいて特定する第1の特定部と、決まった画面からしか遷移できないという制約のない特定画面群を、各画面の直前に表示された異なる画面の数、各画面の直後に表示された異なる画面の数、各画面が表示された回数、第1の画面が表示されてから各画面が表示されるまでに表示された画面の数、及び、外部から与えられた情報の少なくとも1つに基づいて特定する第2の特定部と、複数のセッションで第1の画面が表示されてから各画面が表示されるまでにそれぞれ表示された複数の画面群のうち、最も画面数の少ない画面群を記録した記録データを各画面に対応付けて記憶する記憶部と、指定された時刻にクライアントとサーバとの間で確立されていた特定のセッションで表示された画面の情報を記録した記録データを取得する取得部と、取得部により取得された記録データのうち、第1の画面が表示されてから、特定画面群に属し、時刻以前に表示された第2の画面が表示されるまでに表示された画面の情報を記録した記録データを、記憶部に第2の画面に対応付けて記憶された記録データで置換することにより、再生用データを生成する生成部と、生成部により生成された再生用データを出力する出力部とを含む、装置も提供する。
【0020】
更に、本発明は、クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する方法であって、指定された時刻にクライアントとサーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得するステップと、取得された記録データのうち、クライアントとサーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、再生用データを生成するステップと、生成された再生用データを出力するステップとを含む、方法も提供する。
【0021】
更にまた、本発明は、クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する装置として、コンピュータを機能させるプログラムであって、コンピュータを、指定された時刻にクライアントとサーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得する取得部と、取得部により取得された記録データのうち、クライアントとサーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、再生用データを生成する生成部と、生成部により生成された再生用データを出力する出力部として機能させる、プログラムも提供する。
【発明の効果】
【0022】
本発明によれば、サーバのテストのためにトランザクションを再生する際に、トランザクションの再生による不正の発生を抑制し、かつ、トランザクションの再生に要する時間を短縮することができる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。
【図2】本発明の実施の形態におけるトランザクション及びそのタイプについて示した図である。
【図3】本発明の実施の形態におけるシナリオの変更の例を示した図である。
【図4】本発明の実施の形態におけるシナリオの変更の例を示した図である。
【図5】本発明の実施の形態における再生シナリオ生成装置の機能構成例を示したブロック図である。
【図6】本発明の実施の形態における再生シナリオ生成装置の動作例を示したフローチャートである。
【図7】本発明の実施の形態における再生シナリオ生成装置の動作例を示したフローチャートである。
【図8】本発明の実施の形態における再生シナリオ生成装置の動作例を示したフローチャートである。
【図9】本発明の実施の形態におけるOR画面を隠すときの様子及びOR画面を隠した後のシナリオの例を示した図である。
【図10】本発明の実施の形態における統計情報記憶部の記憶内容の一例を示した図である。
【図11】本発明の実施の形態で用いるシナリオの例から得られた画面遷移図を示した図である。
【図12】本発明の実施の形態におけるショートカットによる短縮処理について示した図である。
【図13】本発明の実施の形態における接木による短縮処理について示した図である。
【図14】本発明の実施の形態におけるトランザクションの再生速度の調整について示した図である。
【図15】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【0024】
まず、本発明の実施の形態の概要について説明する。
ウェブアプリケーションで用いるプロトコルであるHTTP(HyperText Transfer Protocol)では、クライアントからサーバへHTTPリクエストが送られ、サーバからクライアントへはHTTPレスポンスが返される。
キャプチャプレイバック方式の負荷テストでは、この一連の通信から、再生すべきリクエストと期待するレスポンスを抽出して再生スクリプトを生成し、それに基づいて負荷を再生する。この負荷の再生は、必要な負荷に応じて、複数ユーザ分が同時に行われる。
【0025】
前述の実データによる負荷テストで開始点をピーク時にとれないことも、前述のバックアップシステムの動作確認テストでキャプチャプレイバック方式を利用できないことも、原因は同じである。
ウェブアプリケーションを利用する場合、ユーザは、まず認証を行ってユーザセッションを確立し、そのユーザセッション内で操作を行う。そして、開始点又は仮想被災時点では、多数のユーザのユーザセッションが確立した状態になっている。従って、開始点又は仮想被災時点から突然、実データの再生による負荷をかけると、ユーザセッションの確立部分がないまま負荷がかけられることになる。そのため、この負荷は、ウェブアプリケーション側で不正なリクエストとみなされてリジェクトされてしまい、有効なシステムの負荷とならない、ということである。
【0026】
また、ウェブアプリケーションに対する画面リクエストは、ユーザセッションが確立していれば直前の画面に関係なく実行可能なものばかりではない。一連のリクエストとレスポンスからなる画面遷移の順序を守らないと不正となる画面リクエストもある。1つのサービスを開始してから完了するまでの画面遷移を固定して割り込み等を許さない設計はよく行われるからである。生成する再生スクリプトはこの点も解決する必要がある。
【0027】
そこで、本実施の形態では、ユーザセッションの確立部分から開始点又は仮想被災時点までの間にあるリクエストレスポンスを再生対象から削除する一方で、画面遷移の順序に制約がある部分はそのまま残すような変更を、実データから生成した再生スクリプトに対して行う。
【0028】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。
図示するように、コンピュータシステムは、テスト対象システム10と、クライアント20とが、負荷分散装置であるロードバランサ70、インターネット等のネットワーク80、LAN(Local Area Network)等のネットワーク85を介して接続されることにより構成される。また、ネットワーク85上の斜線で示したスイッチのミラーポート又はTAPにデータ収集サーバ30が接続され、データ収集サーバ30に再生シナリオ生成装置40が接続されている。更に、再生シナリオ生成装置40に負荷発生サーバ60が接続され、負荷発生サーバ60はネットワーク85に接続されている。
【0029】
テスト対象システム10は、クライアント20にインストールされたブラウザからの要求に応じてサービスを提供するシステムであり、本実施の形態では、負荷発生サーバ60が発生させたネットワークトラフィックに基づくテストの対象となるシステムである。より詳しくは、テスト対象システム10は、図示しないが、HTTPサーバ、ウェブアプリケーションサーバ、DBサーバ等を備える。また、テスト対象システム10は、実際に運用されているDB(実DB)をテストで使用するDB(テスト用DB)にコピーするディスクシステムも備えるものとする。これにより、テストが行われる場合、テスト対象システム10は、実DBのスナップショットをテストDBにコピーする。そして、ネットワークトラフィックを再生する前にDB接続をスナップショット時点のテスト用DBに切り替える。また、テスト終了後にDB接続を元に戻す。尚、図には、1つのテスト対象システム10しか示していないが、テスト対象システム10の数はこれに限らず、2つ以上であってもよい。その場合、テスト対象システム10に対する負荷分散がロードバランサ70によって行われる。
【0030】
クライアント20は、ユーザがテスト対象システム10からサービスの提供を受ける際に使用するコンピュータ装置である。クライアント20としては、例えば、PC(Personal Computer)を用いるとよい。尚、図には、1つのクライアント20しか示していないが、クライアント20の数はこれに限らず、2つ以上であってもよい。その場合、クライアント20というときは、そのうちの1つを指すものとする。
【0031】
データ収集サーバ30は、ネットワーク85から全てのネットワークトラフィックを連続してキャプチャするサーバコンピュータであり、障害発生時のネットワークトラフィックからの問題判別用ツールとして用いられるものである。また、データ収集サーバ30は、TCPレイヤ以下の情報を用いて、ネットワークトラフィックをクライアント20ごとにソートする。データ収集サーバ30としては、例えば、PC(Personal Computer)、ワークステーション、その他のコンピュータを用いるとよい。尚、図には、1つのデータ収集サーバ30しか示していないが、データ収集サーバ30の数はこれに限らず、必要なキャパシティに応じて複数設けてもよい。その場合は、図示しないが、複数のデータ収集サーバ30を制御するデータ収集管理サーバを設けるとよい。
【0032】
再生シナリオ生成装置40は、データ収集サーバ30からソート済みのネットワークトラフィックを連続的に読み出し、負荷を再生するのに必要な情報を抽出する。また、画面遷移に関する統計処理を行い、その結果としての統計情報を保管する。ネットワークトラフィックの処理に伴って情報が増えるので、統計情報を更新する。また、開始点(又は仮想被災時点)が与えられると、開始点でアクティブなユーザセッション(以下、単に「セッション」という)については、そのセッションの開始点以降のシナリオから、セッション全体を回復したセッション回復シナリオを生成する。そして、このセッション回復シナリオと、開始点以降に開始されたセッションのシナリオとを、再生シナリオとして負荷発生サーバ60に送る。再生シナリオ生成装置40としては、例えば、PC(Personal Computer)、ワークステーション、その他のコンピュータを用いるとよい。尚、本明細書において、「シナリオ」とは、あるセッションにおけるトランザクションの実行順序又は画面の表示順序等を含む負荷発生サーバ60にて負荷を発生させるために必要な情報を意味する。
【0033】
負荷発生サーバ60は、再生シナリオ生成装置40により生成された再生シナリオに基づいてHTTPリクエストを再生してテスト対象システム10に送り、テスト対象システム10からのHTTPレスポンスを受け取る。そして、HTTPレスポンスの内容をモニターする。負荷発生サーバ60としては、例えば、PC(Personal Computer)、ワークステーション、その他のコンピュータを用いるとよい。尚、図には、1つの負荷発生サーバ60しか示していないが、負荷発生サーバ60の数はこれに限らず、必要なキャパシティに応じて複数設けてもよい。その場合は、図示しないが、複数の負荷発生サーバ60を制御する負荷発生管理サーバを設けるとよい。
【0034】
尚、このコンピュータシステムは、本実施の形態に適用するには、次のような条件を満たしている必要がある。
第一に、ミラーポート、TAP等のパケットがキャプチャされるポイントで、HTTPトラフィックが暗号化されていない、という条件である。クライアント20とロードバランサ70との間の暗号化は問題ない。
第二に、クライアント20におけるシナリオの再生速度にウェブアプリケーションの動作が依存しない、という条件である。
【0035】
本実施の形態では、このようなコンピュータシステムにおいて、再生シナリオ生成装置40が、次のような処理を行う。
即ち、それぞれのセッションの再生シナリオにおいて、セッションの確立部分から開始点まで間のリクエストレスポンスを、再生対象から削除する。但し、画面遷移の制約のあるリクエストレスポンスは開始点より前であっても残し、セッションの確立から画面遷移の制約がないリクエストレスポンスまでを短縮する。これにより、テスト対象システム10に対して有効な再生シナリオを生成する。
【0036】
まず、このような再生シナリオの生成方法について概要を説明する。
但し、本実施の形態では、再生シナリオの生成に先立ち、HTTPプロトコルでの画面リクエストとそれに対するレスポンスとの対(リクエストレスポンス)からなるトランザクションを次の4つのタイプに分類するので、これらのタイプについて説明しておく。
・SI(Sequence Insensitive)
セッションが確立していればどの画面からでもリクエスト可能なトランザクションがこのタイプに分類される。例えば、メニュー画面に関するトランザクションである。尚、以降の説明においても「どの画面からでもリクエスト可能」等の文言を用いるが、これは、ある画面からはリクエスト不可能という状態を全く排除する趣旨ではない。即ち、このタイプのトランザクションの集合は、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群の一例である。本明細書では、このタイプのトランザクションによって表示される画面を「SI画面」と呼ぶ。このSI画面の集合は、決まった画面からしか遷移できないという制約のない特定画面群の一例である。
・SS(Sequence Sensitive)
画面遷移の順序を守るために、特定の画面からリクエストされなければ無効とされるトランザクションがこのタイプに分類される。例えば、あるサービス内での一連の複数の入力画面に関するトランザクションである。本明細書では、このタイプのトランザクションによって表示される画面を「SS画面」と呼ぶ。
・LS(Login/Logout Sequence)
ユーザセッションの確立又は開放を行うトランザクションがこのタイプに分類される。本明細書では、このタイプのトランザクションによって表示される画面を「LS画面」と呼ぶ。
・OR(Orphan)
どの画面からでもリクエスト可能であるが、SS画面からリクエストされた場合、処理の続行のためには元の画面に戻るしかないトランザクションがこのタイプに分類される。どの画面からでもリクエスト可能という点ではSIであるが、別に扱う。例えば、ヘルプ画面をリクエストするトランザクションである。本明細書では、このタイプのトランザクションによって表示される画面を「OR画面」と呼ぶ。
【0037】
図2は、ネットワークトレースに記録されたあるユーザの操作についてトランザクション及びそのタイプを示したものである。図中、黒塗りの三角形はリクエストを示し、黒塗りの逆三角形はレスポンスを示す。そして、少なくとも1つのリクエストレスポンスに対して、そのリクエストレスポンスを含むトランザクションが示されている。尚、画面名で表されるトランザクションは、その画面名の画面を表示するトランザクションである。また、各トランザクションに対しては、そのトランザクションが分類される4つのタイプの何れかが示されている。
【0038】
このようにトランザクションを分類することを前提として、本実施の形態では、次のようにシナリオを変更することにより、再生シナリオを生成する。
図3は、高負荷状態にある時間(例えば13時)に開始点を設定した場合のシナリオの変更について示したものである。尚、この図では、1つの四角形が1つの画面に関するトランザクション(リクエスト及びレスポンス)を示す。但し、エンベッドされるファイル(CSS、GIF等)のリクエストは省略している。また、「認証」とあるのは、認証のためのトランザクション(認証シーケンス)を示し、SIxは、画面遷移の制約のない画面に関するトランザクションを示している。
(a)に変更前のシナリオ(元シナリオ)を示し、(b)に変更後のシナリオ(再生シナリオ)を示す。(a)のシナリオと(b)のシナリオとを比較すると、開始点でアクティブであったセッションC1,C2,C4のシナリオに対して、認証シーケンスと、開始点から遡って1つ目のSI画面との間の画面遷移を削除する変更が行われている。これにより、(b)の下部の矢印で示したように、元シナリオの先頭部分は短縮され、開始点直前には認証及び負荷のランプアップを行うシナリオが設定され、開始点以降は高負荷状態でシナリオが再生されるようになっている。
【0039】
図4は、災害対策のバックアップシステムの切替テストで所望の仮想被災時点を設定した場合のシナリオの変更について示したものである。尚、この図でも、1つの四角形が1つの画面に関するトランザクション(リクエスト及びレスポンス)を示す。但し、エンベッドされるファイル(CSS、GIF等)のリクエストは省略している。また、「認証」とあるのは、認証のためのトランザクション(認証シーケンス)を示し、SIxは、画面遷移の制約のない画面に関するトランザクションを示している。
(a)に変更前のシナリオ(元シナリオ)を示し、(b)に変更後のシナリオ(再生シナリオ)を示す。(a)のシナリオと(b)のシナリオとを比較すると、仮想被災時点でアクティブであったセッションC1,C2,C4のシナリオに対して、認証シーケンスと、仮想被災時点から遡って1つ目にあったSI画面との間の画面遷移を削除する変更が行われている。そして、これらのセッションについては、仮想被災時点以前に処理は行われず、(b)の下部の矢印で示したように、仮想被災時点以降に、ユーザがログインして処理を再開する状況のシミュレーションが行われるようになっている。
【0040】
次に、このような動作を実現する再生シナリオ生成装置40について詳細に説明する。
図5は、再生シナリオ生成装置40の機能構成例を示したブロック図である。
図示するように、再生シナリオ生成装置40は、トレース記憶部41と、統計処理部42と、統計情報記憶部43と、SI評価値算出部44と、パラメータ取得部45と、SI画面決定部46とを備えている。また、シナリオ取得部47と、ショートカット処理部48と、接木処理部49と、結果情報記憶部50と、再生速度調整部51と、問い合わせ部52と、シナリオ出力部53とを備える。
【0041】
トレース記憶部41は、ネットワーク85上のネットワークトレース(以下、単に「トレース」という)を記憶する。本実施の形態では、複数のトランザクションを記録した記録データの一例として、トレースを用いており、記録データを蓄積する蓄積部の一例として、トレース記憶部41を設けている。
【0042】
統計処理部42は、トレース記憶部41に記憶されたトレースを対象として統計処理を行い、統計情報を出力する。具体的には、詳細は後述するが、遷移元画面数、遷移先画面数、出現回数、画面遷移情報(最小遷移画面数、最短画面遷移、不一致フラグ)を出力する。また、トレースに対する前処理として、LS画面(例えば認証画面)及びOR画面を特定する処理も行う。即ち、本実施の形態では、クライアントとサーバとの間でセッションを確立するための第1の画面の一例として、認証画面を用いており、第1の画面を特定する第1の特定部の一例として、統計処理部42を設けている。
【0043】
統計情報記憶部43は、統計処理部42により出力された統計情報を記憶する。具体的には、詳細は後述するが、遷移元画面数、遷移先画面数、出現回数、画面遷移情報(最小遷移画面数、最短画面遷移、不一致フラグ)を記憶する。本実施の形態では、最もトランザクション数の少ないトランザクション群を記録した記録データの一例として、最短画面遷移を用いており、このような記録データを記憶する記憶部の一例として、統計情報記憶部43を設けている。
【0044】
SI評価値算出部44は、統計情報記憶部43に記憶された統計情報に予め定めたSI画面判別のための評価関数を適用し、画面ごとに、SI画面を判別するための評価値(以下、「SI評価値」という)を算出して付加する。
パラメータ取得部45は、ユーザが再生シナリオ生成装置40に入力したパラメータを取得する。ここで、パラメータは、詳細は後述するが、SI判定基準値、短縮結果判定基準値、再生速度調整基準値を含む。
【0045】
SI画面決定部46は、SI評価値算出部44により算出された各画面のSI評価値と、パラメータ取得部45により取得されたパラメータに含まれるSI判定基準値とを比較することにより、SI画面を決定する。本実施の形態では、特定トランザクション群を決定する決定部の一例として、又は、特定画面群を特定する第2の特定部の一例として、SI画面決定部46を設けている。
【0046】
シナリオ取得部47は、データ収集サーバ30により出力されたソート済みのネットワークトラフィックに基づいて、セッションごとのシナリオを取得する。本実施の形態では、特定のセッションで実行されたトランザクションを記録した記録データの一例として、又は、特定のセッションで表示された画面の情報を記録した記録データの一例として、シナリオを用いている。また、記録データを取得する取得部の一例として、シナリオ取得部47を設けている。
【0047】
ショートカット処理部48は、シナリオ取得部47が取得したシナリオに対し、ショートカットによる短縮処理を行い、短縮後のシナリオを出力する。尚、ショートカットによる短縮処理については後述する。本実施の形態では、記録データを縮減する縮減処理の一例として、短縮処理を行っており、記録データを削除する縮減処理の一例として、又は、第1の縮減処理の一例として、ショートカットによる短縮処理を行っている。また、トランザクションを再生するための再生用データの一例として、又は、画面を再生するための再生用データの一例として、短縮後のシナリオを用いている。更に、再生用データを生成する生成部の一例として、又は、第1の再生用データを生成する生成部の一例として、ショートカット処理部48を設けている。
【0048】
接木処理部49は、シナリオ取得部47が取得したシナリオに対し、接木による短縮処理を行い、短縮後のシナリオを出力する。尚、接木による短縮処理については後述する。本実施の形態では、記録データを置換する縮減処理の一例として、又は、第2の縮減処理の一例として、接木による短縮処理を行っている。また、再生用データを生成する生成部の一例として、又は、第2の再生用データを生成する生成部の一例として、接木処理部49を設けている。
【0049】
結果情報記憶部50は、ショートカット処理部48によるシナリオの短縮結果に関する結果情報と、接木処理部49によるシナリオの短縮結果に関する結果情報とを記憶する。
再生速度調整部51は、ショートカット処理部48又は接木処理部49により短縮されたシナリオに含まれるトランザクションの開始時間と再生速度を調整する。
【0050】
問い合わせ部52は、結果情報記憶部50に記憶された結果情報を、表示機構90d(図15参照)に出力し、ユーザにより入力された情報を取得する。本実施の形態では、縮減効果に関する情報を出力する出力手段の一例として、問い合わせ部52を設けている。
【0051】
シナリオ出力部53は、ショートカット処理部48又は接木処理部49により出力された短縮後のシナリオを負荷発生サーバ60に出力する。本実施の形態では、再生用データを出力する出力部の一例として、シナリオ出力部53を設けている。
【0052】
次いで、この再生シナリオ生成装置40の動作について説明する。尚、この動作に先立ち、データ収集サーバ30から取得したトレースがトレース記憶部41に記憶されているものとする。
図6は、再生シナリオ生成装置40がトレースを用いて統計処理を行う際の動作例を示したフローチャートである。
図示するように、再生シナリオ生成装置40では、まず、統計処理部42が、トレース記憶部41に記憶されたトレースに対して、前処理を行う(ステップ401)。前処理では、例えば、LS、ORのトランザクションを特定する。ここで、LS、ORのトランザクションは、システム固有情報として、予め与えるものとする。この予め与える情報は、システムの基本設計情報から得られる。或いは、トレース情報から読み取ってもよい。
【0053】
次に、統計処理部42は、トレース記憶部41に記憶された全てのトレースを用いて画面遷移に関する統計処理を行う(ステップ402)。具体的には、画面遷移を解析すると共に、画面ごとにログインからの画面数が最小の画面遷移(最短画面遷移)を求める。
これにより、SI評価値算出部44が、画面ごとにSI評価値を算出し、統計情報記憶部43に該当する画面に対応付けて記憶する(ステップ403)。
尚、この統計処理部42及びSI評価値算出部44の処理は、シナリオの短縮処理に先立って事前に実行しておいてもよい。
【0054】
その後、再生シナリオ生成装置40では、シナリオの短縮処理が行われる。
図7は、再生シナリオ生成装置40がシナリオ短縮処理を行う際の動作例を示したフローチャートである。
まず、ユーザがパラメータを入力すると、図示するように、再生シナリオ生成装置40では、パラメータ取得部45が、その入力されたパラメータを取得する(ステップ421)。具体的には、入力されるパラメータには、SI判定基準値、短縮結果判定基準値、再生速度調整基準値があるので、パラメータ取得部45は、これらの各基準値を取得する。
すると、SI画面決定部46は、ステップ403で算出されたSI評価値と、ステップ421で取得したパラメータのうちのSI判定基準値とを比較することにより、SI画面を決定する(ステップ422)。SI画面はこのように再生シナリオ生成装置40が自動判別するが、SI画面と判明している画面があれば、その画面についてだけでもSI画面である旨の情報を予め与えておいてよい。
【0055】
次に、シナリオ取得部47は、トレース記憶部41に記憶されたトレースの中から、開始点でアクティブなセッションのシナリオを読み込む(ステップ423)。そして、全てのセッションのシナリオを処理したかどうかを判定する(ステップ424)。
ここで、全てのセッションのシナリオを処理していないと判定されれば、ショートカット処理部48は、ステップ423で読み込んだシナリオに対してショートカットによる短縮処理を行う(ステップ425)。即ち、開始点から前に向かってSI画面を探索し、SI画面が見つかった場合に、ログインから後ろに向かって同じSI画面を探索する。そして、同じSI画面が見つかった場合に、これらの同じSI画面の間をカットする。
【0056】
次に、ショートカット処理部48は、ステップ425での短縮結果が、ステップ421で取得したパラメータのうちの短縮結果判定基準値を満たしているかどうかを判定する(ステップ426)。
その結果、短縮結果判定基準値を満たしていると判定されれば、ショートカット処理部48は、ショートカットによる短縮処理の結果に関する結果情報を結果情報記憶部50に記憶する(ステップ427)。この結果情報には、例えば、ショートカットによる短縮処理が行われたセッションの件数、ショートカットによる短縮処理の結果の最大値、最小値、平均値がある。そして、ステップ423へ戻り、次のセッションについての処理を行う。
【0057】
一方、短縮結果判定基準値を満たしていないと判定されれば、接木処理部49は、ステップ423で読み込んだシナリオに対して接木による短縮処理を行う(ステップ428)。即ち、開始点から前に向かってSI画面を探索し、統計情報記憶部43に記憶された最短画面遷移をSI画面の前に接続する。その後、接木処理部49は、接木による短縮処理の結果に関する結果情報を結果情報記憶部50に記憶する(ステップ429)。この結果情報には、例えば、接木による短縮処理が行われたセッションの件数、接木による短縮処理の結果の最大値、最小値、平均値がある。そして、ステップ423へ戻り、次のセッションについての処理を行う。
【0058】
即ち、このシナリオの短縮処理では、開始点でアクティブなセッションを抽出し、それぞれのセッションに対して短縮処理を行う。セッション内のトランザクションはデフォルトをSSとし、その中からLS、OR、SIと判定されるトランザクションを探す方式を採用する。従って、SIのトランザクションをSIと判定できない場合には、そのトランザクションはSSとして扱われることにより、前後の画面遷移が変更されることはないので、再生シナリオが不正になることはない。
【0059】
このようにして全てのセッションについて処理を行い、ステップ424で全てのセッションのシナリオを処理したと判定されたとする。すると、再生シナリオ生成装置40は後処理を行う。
図8は、再生シナリオ生成装置40が後処理を行う際の動作例を示したフローチャートである。
図示するように、再生シナリオ生成装置40では、まず、再生速度調整部51が、ステップ425又はステップ428による短縮後のシナリオの再生速度を調整する(ステップ441)。このとき、再生速度調整部51は、シナリオの開始時間の調整も行う。
また、問い合わせ部52が、結果情報記憶部50に記憶された結果情報及び再生速度調整部51により調整された再生速度を表示機構90d(図15参照)に出力する(ステップ442)。これにより、表示機構90d(図15参照)に結果情報及び再生速度が表示される。
【0060】
これに応答して、ユーザがテスト要件を満たしているかどうかを示す情報を入力すると、問い合わせ部52が、この情報を受け付け、テスト要件を満たしている旨の情報かどうかを判定する(ステップ443)。ここで、テスト要件を満たしている旨の情報であると判定されれば、シナリオ出力部53は、短縮後のシナリオを負荷発生サーバ60に出力する(ステップ444)。
【0061】
以下、図6〜図8の各ステップでの処理について更に詳しく説明する。
(図6のステップ401)
このステップで、統計処理部42は、テスト対象システム10の大量のトレースを対象に前処理を行う。ここで、「大量」とは、これ以上トレースを増加させても、ステップ402で画面数がより少ない新たな最短画面遷移が求められることがなく、かつ、ステップ403で算出されるSI評価値が収束して変化しない程度の量をいう。
また、前処理とは、具体的には次のような処理である。
即ち、まず、ユーザが認証画面、OR画面等を特定し、再生シナリオ生成装置40に入力することにより、各セッションのシナリオで認証画面を判別し、OR画面を以降の処理で無視されるように隠す処理である。ここで、OR画面を隠す処理としては、例えば、OR画面を前画面の付随画面とする処理が考えられる。また、画面にエンベッドされる画像ファイルやスタイルシートのリクエストレスポンスも隠すことで、画面を構成するHTMLファイルに関するHTTPリクエスト及びHTMLレスポンスのみが処理対象となるようにする処理である。
【0062】
図9(a)は、OR画面を隠すときの様子を模式的に示した図である。
図では、画面4,5,11をOR画面としている。上段は、OR画面を隠す前のセッションのシナリオを示しており、OR画面に関するリクエストレスポンスも処理対象となっている。一方、下段では、画面4,5が画面3,6の間に、画面11が画面10,12の間に、それぞれ隠れており、OR画面に関するリクエストレスポンスは処理対象となっていない。
また、図9(b)は、ユーザA〜EのセッションにおけるOR画面を隠した後のシナリオの具体例を示したものである。(a)では各画面を番号で示したが、(b)では認証画面以外の各画面はURL(Uniform Resource Locator)で示している。
以下では、この具体例を用いて、SI画面の自動判別方法を説明する。
【0063】
(図6のステップ402)
このステップで、統計処理部42は、トレースを用いて画面遷移を解析し、解析結果である統計情報を統計情報記憶部43に記憶する。そして、以降のステップでこの統計情報が使用できるようにする。
図10は、統計情報記憶部43に記憶された統計情報の例を示した図である。ここでは、図9(b)に示したシナリオの例から得られる統計情報の例を示している。
図示するように、統計情報は、画面ごとに、遷移元画面数と、遷移先画面数と、出現回数と、画面遷移情報とを含む。遷移元画面数は、その画面への遷移元の画面の数を示し、遷移先画面数は、その画面からの遷移先の画面の数を示し、出現回数は、その画面がトレースに出現した回数を示す。また、画面遷移情報は、認証画面からその画面までの最短経路における画面遷移に関する情報を示すものであり、最小遷移画面数と、最短画面遷移と、不一致フラグとを含む。最小遷移画面数は、最短経路における遷移した画面の数を示し、最短画面遷移は、最短経路における実際の画面の遷移を示し、不一致フラグは最短画面遷移内でポストデータが一致しない画面遷移があることを示す。
【0064】
ここで、統計処理部42は、これらの情報のうち遷移元画面数及び遷移先画面数を、次のようにして求める。即ち、まず、トレースから画面を取得するごとに、その画面がどの画面から遷移してきたものであるか、つまり、その画面の前画面を求める。その画面の対するHTTPリクエストのHTTPヘッダにrefererが含まれていれば、それに基づいて前画面を判別する。その画面に対するHTTPリクエストのHTTPヘッダにrefererが含まれていなければ、トレースを遡って前画面を求める。そして、全ての画面について前画面の情報を累積し、遷移元画面数及び遷移先画面数を求める。
【0065】
また、統計処理部42は、これらの情報のうち出現回数を、次のようにして求める。即ち、トレースから画面を取得するごとに、その画面に対して設けたカウンタをカウントアップすることにより、出現回数を求める。
【0066】
更に、統計処理部42は、これらの情報のうち最小遷移画面数、最短画面遷移、不一致フラグを、次のようにして求める。即ち、まず、トレースから画面を取得するごとに、認証画面からその画面に至るまでの経路における、遷移した画面の数(遷移画面数)と、画面遷移と、ポストデータとを記録する。そして、今回の遷移画面数が前回までの遷移画面数のどれよりも小さい場合は、今回の遷移画面数を最小遷移画面数として統計情報記憶部43に記憶すると共に、今回の画面遷移を最短画面遷移として統計情報記憶部43に記憶する。また、今回の遷移画面数が前回までに記録された最小遷移画面数と同じであっても、今回の遷移画面中に含まれるポストデータが前回までのポストデータと異なる場合は、統計情報記憶部43に記憶された不一致フラグに1を加算する。
【0067】
図11は、図9(b)に示したシナリオの例における画面の遷移を表す画面遷移図である。ここでは、2つ以上の画面から遷移した画面を丸で囲んで示している。また、丸で囲んだ画面について、遷移元画面数を括弧内に示している。図10に示した統計情報における各値は、この画面遷移図によって理解が容易になる。
【0068】
(図6のステップ403)
このステップで、SI評価値算出部44は、SI画面を判定するための評価関数を用いて、画面ごとのSI評価値を算出する。
ここで、評価関数の一般形は、SI評価値をyとすると、関数fを用いて「y=f(遷移元画面数、遷移先画面数、出現回数、最小遷移画面数、システムの既知情報)」と定義される。
即ち、遷移元画面数が大きければ、SI画面である可能性が高いのは自明である。更に遷移先画面数も大きい場合は、例えばメニューのような画面が想定されるが、遷移先画面数が1又は小さい数の場合は、例えば一連の繰り返し処理の入口の画面が想定される。最小遷移画面数が小さい場合は、SI画面である可能性が高く、最小遷移画面数が大きい場合は、SI画面である可能性が低いことが想定される。また、システムの既知情報とは、SI画面であること又はSS画面であることがシステムの情報として事前に分かっていれば、その情報を取り込むことを示している。
【0069】
尚、評価関数は、上記一般形でなく、例えば「y=遷移元画面数」のように定義してもよい。この場合、遷移先画面数等は使用しないので、ステップ402で遷移先画面数等を求める必要はない。評価関数をこのように定義してもSI画面の判定において有効であることは実証済みである。
そして、SI評価値算出部44は、ステップ402で統計情報記憶部43に記憶された統計情報に対して、画面ごとにSI評価値を付加する。
【0070】
(図7のステップ421)
このステップで、パラメータ取得部45は、次のようなパラメータを取得する。
第一に、SI判定基準値である。これは、上記評価関数を用いて求めたSI評価値に対するクライテリアである。クライテリアcは、関数gを用いて「c=g(m,l,a)」と定義される。ここで、mは対象システムの規模(例えば画面数)であり、lは対象システムの画面遷移の特徴であり、aは判定の安全係数である。そこで、クライテリアは、このことを考慮し、判定の安全係数を含めて任意に決定される。尚、クライテリアを決定する際は、ステップ402の結果も参照できる。即ち、処理結果に応じてクライテリアを調整できるので、安全係数を大きめにしたクライテリアで処理をスタートできる。
第二に、短縮結果判定基準値である。これについては図7のステップ426で詳しく述べる。
第三に、再生速度調整基準値である。これについては図8のステップ441で詳しく述べる。
【0071】
(図7のステップ422)
このステップで、SI画面決定部46は、ステップ403で算出したSI評価値が、ステップ421で取得したSI判定基準値よりも大きい画面を、SI画面と判定する。例えば、評価関数を「y=遷移元画面数」とし、SI判定基準値を「2」とした場合、「URL1」、「URL4」、「URL90」、「URL94」の画面が、2つ以上の画面の遷移先であるので、SI画面と判定される。
尚、SI評価値を遷移先画面数又は出現回数とした場合も、SI評価値がSI判定基準値よりも大きい画面をSI画面と判定すればよい。一方、SI評価値を最小遷移画面数とした場合は、SI評価値がSI判定基準値よりも小さい画面をSI画面と判定することになる。
【0072】
(図7のステップ423)
このステップで、シナリオ取得部47は、開始点でアクティブなセッションのシナリオを読み込む。即ち、開始点を跨ぐセッション、換言すれば、開始点の前後にリクエストを含むセッションを短縮処理の対象として1つずつ読み込む。一方、開始点の前に終了しているセッションは、再生する必要がないため、短縮処理の対象としない。また、開始点の後のトレースに認証シーケンスを含むセッションのシナリオは変更する必要がないので、短縮処理の対象とせず、そのまま負荷発生サーバ60に出力する。
【0073】
(図7のステップ425)
このステップで、ショートカット処理部48は、セッションのシナリオに対して、ショートカットによる短縮処理を行う。
ここで、ショートカットによる短縮処理とは、セッション内に同じSI画面がある場合にそれらのSI画面の間の画面遷移を削除する処理である。
ショートカット処理部48は、具体的には、次の手順でショートカット処理を行う。
即ち、A1で、ショートカット処理部48は、開始点における画面を探索開始画面とし、処理をA2へ進める。
A2で、ショートカット処理部48は、探索開始画面から前方にSI画面を探索する。そして、A3で、SI画面がヒットしたかどうかを判定し、ヒットしたら処理をA4へ進め、ヒットしなかったら処理を終了させる。
A4で、ショートカット処理部48は、認証画面から後方に同じSI画面を探索する。そして、A5で、同じSI画面があるかどうかを判定し、同じSI画面があれば処理をA6へ進め、同じSI画面がなければ処理をA7へ進める。
A6で、ショートカット処理部48は、それらのSI画面の間の画面遷移をセッションから削除し、処理をA7へ進める。
A7で、ショートカット処理部48は、ヒットしたSI画面を新たに探索開始画面とし、処理をA2へ戻し、認証画面に到達するまで繰り返す。
【0074】
図12は、このようなショートカットによる短縮処理について模式的に示した図である。
このうち、上段は、ショートカットを行う前のセッションC2のシナリオを示す。
A1で、画面12が探索開始画面となる。
A2で、画面12から前方に、破線の矢印で示すように、SI画面が探索され、A3で、画面SI3がヒットする。
A4で、認証画面から後方に、点線の矢印で示すように、ヒットしたSI画面と同じ画面が探索され、A5で、画面SI3がヒットする。
A6で、セッションからこの2つの画面SI3の間の画面4,・・・,8が削除される。
その結果、セッションC2のシナリオは、下段に示すようなものとなる。認証画面、画面2、画面SI3、画面13についてのみ、上段と下段との対応を実線の矢印で示している。
【0075】
(図7のステップ426)
このステップで、ショートカット処理部48は、ステップ425での短縮が十分かどうか評価し、不十分な場合は、ステップ428の短縮処理を行う。
このため、短縮後のシナリオにおける認証画面から開始点までの画面数をカウントし、ステップ421で取得した短縮結果判定基準値と比較する。
短縮結果判定基準値は、例えば、対象システムにおいて、1つのサービス(割り込みが許されない画面遷移)における遷移画面数が、サービス全体の約50%から、約80〜90%までをカバーする画面遷移数又はその倍数を考慮して任意に設定するとよい。
また、この短縮結果判定基準値を調整することにより、ステップ425のショートカットとステップ428の接木の短縮処理における適用優先度を調整することができる。
【0076】
(図7のステップ427)
このステップで、ショートカット処理部48は、ショートカットによる短縮処理の結果に関する結果情報を保存する。具体的には、短縮後のシナリオを保管すると共に、SI画面間のショートカットによる短縮処理が行われたことを示すフラグを保管する。また、SI画面間のショートカットによる短縮が行われたセッションのカウントをアップし、開始点までの画面数に関する情報(例えば、最大値、最小値、平均値)を更新する。
【0077】
(図7のステップ428)
このステップで、接木処理部49は、セッションのシナリオに対して、接木による短縮処理を行う。
ここで、接木による短縮処理とは、セッション内の認証画面からSI画面までの画面遷移を最短画面遷移に置き換える処理である。
接木処理部49は、具体的には、次の手順で接木処理を行う。
即ち、B1で、接木処理部49は、開始点における画面を探索開始画面とし、処理をB2へ進める。
B2で、接木処理部49は、探索開始画面から前方にSI画面を探索する。そして、B3で、SI画面がヒットしたかどうかを判定し、ヒットしたら処理をB4へ進め、ヒットしなかったら処理を終了させる。
B4で、接木処理部49は、ヒットしたSI画面に対する不一致フラグを統計情報記憶部43に記憶された統計情報から読み取る。そして、B5で、不一致フラグが0であるかどうかを判定し、0であれば処理をB6へ進め、0でなければ処理をB9へ進める。
B6で、接木処理部49は、ヒットしたSI画面に対する最短画面遷移を統計情報記憶部43に記憶された統計情報から読み取る。そして、B7で、認証画面からそのSI画面までの当初の画面遷移が最短画面遷移と同じかどうかを判定し、同じでなければ処理をB8へ進め、同じであれば処理をB9へ進める。
B8で、接木処理部49は、認証画面からそのSI画面までの当初の画面遷移を削除し、最短画面遷移に置き換え、処理をB9へ進める。
B9で、接木処理部49は、ヒットしたSI画面を新たに探索開始画面とし、処理をB2へ戻し、認証画面に到達するまで繰り返す。
【0078】
図13は、このような接木による短縮処理について模式的に示した図である。
このうち、上段は、接木を行う前のセッションC2のシナリオを示す。
B1で、画面12が探索開始画面となる。
B2で、画面12から前方に、破線の矢印で示すように、SI画面が探索され、B3で、画面SI9がヒットする。
B4で、画面SI9に対する不一致フラグが読み取られ、B5で、その不一致フラグが0と判定され、B6で、下段に示すセッションDの認証画面から画面SI9までの画面D1,D2が最短画面遷移として読み取られる。
B7で、画面D1,D2は、セッションC2の認証画面から画面SI9までの画面遷移と同じでないと判定されるので、B8で、セッションC2の認証画面と画面SI9の間の画面1,2,SI3,4,・・・,8が削除され、画面D1,D2に置き換えられる。
その結果、セッションC2のシナリオは、中段に示すようなものとなる。
【0079】
尚、この例では、認証画面から後方に探索して見つかるSI画面は画面SI3であり、画面SI9と異なるので、セッション内でのショートカットによる短縮処理は行えない。従って、このセッションにおける認証画面から画面SI9までの画面遷移を、認証画面から画面SI9までの記録されている最短画面遷移で置き換えることにより、セッションのシナリオを短縮している。
【0080】
(図7のステップ429)
このステップで、接木処理部49は、接木による短縮処理の結果に関する結果情報を保存する。具体的には、短縮後のシナリオを保管すると共に、最短画面遷移を接木する短縮処理が行われたことを示すフラグを保管する。また、最短画面遷移の接木による短縮処理が行われたセッションのカウントをアップし、開始点までの画面数に関する情報(例えば、最大値、最小値、平均値)を更新する。
一方、接木による短縮処理が行われなかった場合は、短縮処理が適用されなかったことを示すフラグをセッションのシナリオに付加する。また、短縮処理が行われなかったセッションのカウントをアップし、開始点までの画面数に関する情報(例えば、最大値、最小値、平均値)を更新する。
【0081】
尚、図7のステップ425の短縮処理及び又は図7のステップ428の短縮処理は、何れも、認証画面から、開始点以前のSI画面までの間の画面遷移を短縮するものであった。しかしながら、認証画面から開始点直前のSI画面から開始点までの間の処理の結果が、DBアクセスによるデータ更新等で既にサーバに反映されているなどの場合は、開始点から後ろを検索し、認証画面から開始点以降の最初に現れるSI画面までを短縮処理の対象としてもよい。
【0082】
(図8のステップ441)
対象セッションの短縮処理が終了すると、このステップで、再生速度調整部51は、トランザクションの再生速度を調整する。
これは、短縮処理がなされたセッションでは、トランザクションの再生タイミングが実際に再生するのに適したタイミングではなくなるので、タイミングの整合をとる必要があるからである。開始点までの時間帯のうちトランザクションが多い時間帯においては、トランザクションの再生速度を遅くする。つまり、トランザクションの再生に要求する時間を延ばす。一方、開始点までの時間帯のうちトランザクションが少ない時間帯においては、トランザクションの再生速度を速める。つまり、トランザクションの再生に要する時間を短縮する。これにより、対象システムの許容量を超えるトランザクションの発生を抑え、かつ、開始点までの再生時間の短縮を図る。尚、バックアップシステムのテストの場合には、短縮処理の対象となったセッションの開始時間を仮想被災時点後にする調整も行う。
【0083】
図14は、この再生速度の調整の様子を模式的に示した図である。図中、黒塗りの四角形が認証画面を示し、斜線ハッチングを施した四角形がSI画面を示す。
短縮処理の結果が図のようになった場合、1つのセッションだけが再生される時間帯は、下の矢印で示すように、加速再生が可能である。また、その後、再生されるセッションが多くなってくると、下の矢印で示すように、普通又は減速再生が行われる。そして、開始点以降は、実際のトランザクションの再生と同じ速度での再生、つまり等速再生が行われることになる。
【0084】
ここで、再生速度の調整は、例えば次のように行う。
単位時間当たりのトランザクション数が最大値のxx%以下の時間帯は、xx%を上限として加速再生する。
単位時間当たりのトランザクション数が最大値のxx%以上の時間帯は、xx%を超えないように減速再生する。
但し、xx%はシステムに固有な安全率をユーザが定めたもので、ステップ421で取得したパラメータの1つである。トランザクションによる処理の重さの違いが不明である場合に重いトランザクションが重なると、トランザクション数の最大値以下でも対象システムの許容量を超えるリスクがあるため、安全率を取り入れている。安全率を小さくすると、このようなリスクは減少するが、開始点までの再生時間は延びることになる。
【0085】
(図8のステップ442)
このステップで、問い合わせ部52は、これまでの処理で求められた情報を表示機構90d(図15参照)に出力し、表示機構90d(図15参照)にて情報が表示される。
具体的には、以下の情報が表示される。
まず、再生速度調整部51による再生速度の調整結果の情報として、開始点までに要する再生時間と、各時刻における単位時間当たりのトランザクション数とが表示される。
また、SI画面間のショートカットによる短縮処理が行われたセッションに関する情報として、そのような短縮処理が行われたセッションの数、そのような短縮処理が行われたセッションにおける開始点までの画面数の最大値、最小値、平均値が表示される。
更に、最短画面遷移の接木による短縮処理が行われたセッションに関する情報として、そのような短縮処理が行われたセッションの数、そのような短縮処理が行われたセッションにおける開始点までの画面数の最大値、最小値、平均値が表示される。
更にまた、短縮処理が行われなかったセッションに関する情報として、短縮処理が行われなかったセッションの数、短縮処理が行われなかったセッションにおける開始点までの画面数の最大値、最小値、平均値が表示される。
【0086】
(図8のステップ443)
このステップで、問い合わせ部52は、ステップ442で表示された情報に対してユーザが十分に短縮されたと考えているかどうかを判定する。
ユーザが短縮結果を不十分だと考えていることが分かれば、ステップ421に戻り、パラメータを再度入力させて処理を行う。
【0087】
(図8のステップ444)
ユーザが短縮結果を十分だと考えていることが分かれば、このステップで、シナリオ出力部53は、結果情報記憶部50に記憶された短縮後のセッションのシナリオと、再生速度調整部51から得られた再生速度の調整結果とを出力し、後段の負荷発生サーバ60の入力とする。
【0088】
このように、本実施の形態では、本番稼動しているシステムの開始点のDBのスナップショットと、開始点以降のネットワークトラフィックをキャプチャしたトレースとを用意し、DBのスナップショットを復元したテスト環境で開始点以降のネットワークトラフィックを再生することにより、本番環境と同等の多様性及び負荷によるテストを実行可能とするテストシステムにおいて、次のような構成を備えている。
1.キャプチャしたネットワークトラフィックを解析し、ユーザセッションが確立していればどの画面からでも遷移できる可能性の高い画面(例えば、メニュー画面)を自動判別する。
2.これにより、分割することのできない一連の画面遷移を割り出す。
3.ユーザごとに分類したネットワークトレースにおける開始点の時刻から分割できない画面遷移を遡り、1で判別された画面以降は、画面遷移をそのまま再生することとする。
4.ログイン画面から1で判別された画面までの間の画面遷移を、2つのロジックを確実性が高いと考えられる順に適用することにより短縮する。
5.2つのロジックのうちの適切なロジックを、短縮の効果を評価することにより自動選択し、キャプチャしたトラフィック中の開始点でアクティブなユーザセッションからも実行可能な再生シナリオ(トラフィック)を生成して再生する。
【0089】
これにより、従来は困難であった以下のようなテストのためのシナリオを自動生成することが可能となる。
・例えば業務開始時から業務終了時又は休憩時までログオフすることなく、複数の業務を順次実行するような業務システムにおいて、業務開始時からの全トラフィックを再生することなく、ピーク時直前からのトラフィックを生成して実施するようなテスト。
・災害対策システムにおいて、障害復旧直後からの業務再開を想定したトラフィックを生成して実施するようなテスト。
【0090】
尚、本実施の形態では、ショートカットによる短縮処理を先に適用し、この短縮処理の結果が短縮結果判定基準値を満たさなかった場合に、接木による短縮処理を適用するようにしたが、これには限らない。例えば、ショートカットによる短縮処理と接木による短縮処理とを並行して適用し、これらの短縮処理の結果を比較して適切な短縮処理を選択するようにしてもよい。或いは、ショートカットによる短縮処理、及び、接木による短縮処理の何れか一方のみを適用することとしてもよい。
【0091】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図15は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
【0092】
尚、図15において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
【0093】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0094】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0095】
10…テスト対象システム、20…クライアント、30…データ収集サーバ、40…再生シナリオ生成装置、41…トレース記憶部、42…統計処理部、43…統計情報記憶部、44…SI評価値算出部、45…パラメータ取得部、46…SI画面決定部、47…シナリオ取得部、48…ショートカット処理部、49…接木処理部、50…結果情報記憶部、51…再生速度調整部、52…問い合わせ部、53…シナリオ出力部、60…負荷発生サーバ、70…ロードバランサ、80,85…ネットワーク

【特許請求の範囲】
【請求項1】
クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、当該サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する装置であって、
指定された時刻に前記クライアントと前記サーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得する取得部と、
前記取得部により取得された記録データのうち、前記クライアントと前記サーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、前記時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、前記再生用データを生成する生成部と、
前記生成部により生成された前記再生用データを出力する出力部と
を含む、装置。
【請求項2】
複数のセッションで前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでにそれぞれ実行された複数のトランザクション群のうち、最もトランザクション数の少ないトランザクション群を記録した記録データを記憶する記憶部を更に含み、
前記生成部は、前記取得部により取得された記録データのうち、前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを、前記記憶部に記憶された記録データで置換する前記縮減処理により、前記再生用データを生成する、請求項1の装置。
【請求項3】
前記生成部は、前記特定のセッションで前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでに当該第2のトランザクションと同じ内容の第3のトランザクションが実行された場合に、前記取得部により取得された記録データのうち、当該第3のトランザクションが実行されてから当該第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する前記縮減処理により、前記再生用データを生成する、請求項1又は請求項2の装置。
【請求項4】
前記生成部は、前記取得部により取得された記録データのうち、前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する前記縮減処理により、前記再生用データを生成する、請求項1乃至請求項3の何れかの装置。
【請求項5】
複数のセッションで前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでにそれぞれ実行された複数のトランザクション群のうち、最もトランザクション数の少ないトランザクション群を記録した記録データを記憶する記憶部を更に含み、
前記生成部は、前記特定のセッションで前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでに当該第2のトランザクションと同じ内容の第3のトランザクションが実行された場合に、前記取得部により取得された記録データのうち、当該第3のトランザクションが実行されてから当該第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを削除する第1の縮減処理により、第1の再生用データを生成し、前記取得部により取得された記録データのうち、前記第1のトランザクションが実行されてから前記第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを、前記記憶部に記憶された記録データで置換する第2の縮減処理により、第2の再生用データを生成し、
前記出力部は、前記第1の縮減処理による縮減効果及び前記第2の縮減処理による縮減効果に関する情報を出力する、請求項1の装置。
【請求項6】
複数のセッションで実行された複数のトランザクションを記録した記録データを蓄積する蓄積部と、
前記蓄積部に蓄積された記録データに基づいて、前記特定トランザクション群を決定する決定部と
を更に含む、請求項1乃至請求項5の何れかの装置。
【請求項7】
前記決定部は、前記蓄積部に蓄積された記録データから得られる、各トランザクションの直前に実行された異なるトランザクションの数、各トランザクションの直後に実行された異なるトランザクションの数、各トランザクションが実行された回数、及び、前記第1のトランザクションが実行されてから各トランザクションが実行されるまでに実行されたトランザクションの数の少なくとも1つに基づいて、前記特定トランザクション群を決定する、請求項6の装置。
【請求項8】
クライアントが要求しサーバが送信した画面の情報を記録した記録データに基づいて、当該サーバのテストのために画面を再生するための再生用データを生成する装置であって、
前記クライアントと前記サーバとの間でセッションを確立するための第1の画面を、外部から与えられた情報に基づいて特定する第1の特定部と、
決まった画面からしか遷移できないという制約のない特定画面群を、各画面の直前に表示された異なる画面の数、各画面の直後に表示された異なる画面の数、各画面が表示された回数、前記第1の画面が表示されてから各画面が表示されるまでに表示された画面の数、及び、外部から与えられた情報の少なくとも1つに基づいて特定する第2の特定部と、
指定された時刻に前記クライアントと前記サーバとの間で確立されていた特定のセッションで表示された画面の情報を記録した記録データを取得する取得部と、
前記特定のセッションで、前記第1の画面が表示されてから、前記特定画面群に属し、前記時刻以前に表示された第2の画面が表示されるまでにも、当該第2の画面が表示された場合に、前記取得部により取得された記録データのうち、1回目に当該第2の画面が表示されてから2回目に当該第2の画面が表示されるまでに表示された画面の情報を記録した記録データを削除することにより、前記再生用データを生成する生成部と、
前記生成部により生成された前記再生用データを出力する出力部と
を含む、装置。
【請求項9】
クライアントが要求しサーバが送信した画面の情報を記録した記録データに基づいて、当該サーバのテストのために画面を再生するための再生用データを生成する装置であって、
前記クライアントと前記サーバとの間でセッションを確立するための第1の画面を、外部から与えられた情報に基づいて特定する第1の特定部と、
決まった画面からしか遷移できないという制約のない特定画面群を、各画面の直前に表示された異なる画面の数、各画面の直後に表示された異なる画面の数、各画面が表示された回数、前記第1の画面が表示されてから各画面が表示されるまでに表示された画面の数、及び、外部から与えられた情報の少なくとも1つに基づいて特定する第2の特定部と、
複数のセッションで前記第1の画面が表示されてから各画面が表示されるまでにそれぞれ表示された複数の画面群のうち、最も画面数の少ない画面群を記録した記録データを当該各画面に対応付けて記憶する記憶部と、
指定された時刻に前記クライアントと前記サーバとの間で確立されていた特定のセッションで表示された画面の情報を記録した記録データを取得する取得部と、
前記取得部により取得された記録データのうち、前記第1の画面が表示されてから、前記特定画面群に属し、前記時刻以前に表示された第2の画面が表示されるまでに表示された画面の情報を記録した記録データを、前記記憶部に当該第2の画面に対応付けて記憶された記録データで置換することにより、前記再生用データを生成する生成部と、
前記生成部により生成された前記再生用データを出力する出力部と
を含む、装置。
【請求項10】
クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、当該サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する方法であって、
指定された時刻に前記クライアントと前記サーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得するステップと、
取得された記録データのうち、前記クライアントと前記サーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、前記時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、前記再生用データを生成するステップと、
生成された前記再生用データを出力するステップと
を含む、方法。
【請求項11】
クライアントの要求に応じてサーバで実行されたトランザクションを記録した記録データに基づいて、当該サーバのテストのために実行されるトランザクションを再生するための再生用データを生成する装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
指定された時刻に前記クライアントと前記サーバとの間で確立されていた特定のセッションで実行されたトランザクションを記録した記録データを取得する取得部と、
前記取得部により取得された記録データのうち、前記クライアントと前記サーバとの間でセッションを確立するための第1のトランザクションが実行されてから、決まったトランザクションの次にしか実行できないという制約のない特定トランザクション群に属し、前記時刻以前に実行された第2のトランザクションが実行されるまでに実行されたトランザクションを記録した記録データを縮減する縮減処理により、前記再生用データを生成する生成部と、
前記生成部により生成された前記再生用データを出力する出力部と
して機能させる、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−45184(P2013−45184A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−180995(P2011−180995)
【出願日】平成23年8月22日(2011.8.22)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】