(57)【特許請求の範囲】
【請求項１】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、
前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、
前記操作画面上の操作が前記アプリケーションプログラムに対する操作とは別の前記操作シナリオを生成するための操作であって前記イベント情報が位置座標を含む抽出範囲の決定指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を前記位置座標を中心とした既定の長方形枠の対角線をなす両方の頂点の座標で示す抽出範囲情報を決定する抽出範囲決定手段と、
前記抽出範囲情報に基づき、前記比較対象の画像の抽出範囲を示す前記長方形枠を前記操作画面上に表示する抽出範囲表示手段と、
前記操作画面上の操作が前記操作シナリオを生成するための操作であって前記イベント情報が前記抽出範囲の決定指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値のうち、前記抽出範囲情報で示される前記長方形枠の範囲内にある座標値をもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し記憶する画像取得手段と、
前記記憶したイベント情報のうち、前記操作画面上の操作が前記アプリケーションプログラムに対する操作に伴い発生するイベント情報、及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段と
を備えたことを特徴とするシナリオ生成装置。
【請求項２】
請求項１に記載のシナリオ生成装置において、
前記表示された抽出範囲に対して入力された拡大又は縮小指示に応じて、当該表示された抽出範囲を拡大又は縮小するように前記抽出範囲情報を変更する抽出範囲変更手段を更に備えたことを特徴とするシナリオ生成装置。
【請求項３】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、
前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、
前記操作画面上の操作が前記アプリケーションプログラムに対する操作とは別の前記操作シナリオを生成するための操作であって前記イベント情報が位置座標を含む抽出範囲の決定指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を前記位置座標を中心とした既定の長方形枠の対角線をなす両方の頂点の座標で示す抽出範囲情報を決定する抽出範囲決定手段と、
前記操作画面上の操作が前記操作シナリオを生成するための操作であって前記イベント情報が前記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値のうち、前記抽出範囲情報で示される前記長方形枠の範囲内にある座標値をもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し記憶する画像取得手段と、
前記記憶したイベント情報のうち、前記操作画面上の操作が前記アプリケーションプログラムに対する操作に伴い発生するイベント情報、及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段と
を備えており、
前記画像取得手段は、
前記操作画面上に複数のウィンドウ画面が表示されている場合、前記記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報を記憶するウィンドウ範囲記憶手段と、
前記抽出範囲の決定指示に含まれる位置座標と、前記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報を選択するウィンドウ選択手段と、
前記ウィンドウ選択手段により選択したウィンドウ範囲情報と、前記抽出範囲情報との共通範囲を示す共通範囲情報を抽出する共通範囲抽出手段と、
前記抽出範囲情報の値を前記共通範囲情報の値に変更する抽出範囲変更手段と、
前記変更された値の抽出範囲情報に基づいて、前記比較対象の画像情報を抽出し記憶する画像抽出記憶手段と、
を備えたことを特徴とするシナリオ生成装置。
【請求項４】
請求項３に記載のシナリオ生成装置において、
前記抽出範囲変更手段に代えて、
前記抽出範囲の決定指示に含まれる位置座標と、前記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含まず前記抽出範囲の一部を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応する背景ウィンドウ範囲情報を選択する背景ウィンドウ選択手段と、
前記共通範囲情報が示す共通範囲を含みつつ、前記背景ウィンドウ範囲情報が示すウィンドウ画面の範囲に含まれないように移動させた抽出範囲を示す抽出範囲情報を抽出する抽出範囲移動手段と、
前記決定した抽出範囲情報を前記移動後の抽出範囲情報に変更する変更手段と、
を備えたことを特徴とするシナリオ生成装置。
【請求項５】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、
あるステップ番号に対し、前記操作画面上の操作に伴い発生するイベント情報、前記操作画面上の全体画像の画像情報、及び前記操作画面から抽出された前記比較対象の画像情報、を互いに関連付けてなる前記操作シナリオを記憶する記憶手段と、
前記記憶手段内の操作シナリオから、あるステップ番号に対して全体画像の画像情報及び比較対象の画像情報をそれぞれ抽出する画像抽出手段と、
前記画像抽出手段により抽出された全体画像の画像情報の中で、前記画像抽出手段により抽出された比較対象の画像情報と合致する部分が一箇所だけあるか否かを判定する判定手段と、
前記判定の結果、否の場合、当該否であることを表示する結果表示手段と、
を備えたことを特徴とするシナリオ生成装置。
【請求項６】
請求項５に記載のシナリオ生成装置において、
前記否であることが表示されたステップ番号に対し、前記操作シナリオから全体画像の画像情報を抽出して当該全体画像を表示する全体画像抽出表示手段と、
前記全体画像抽出表示手段による全体画像の表示中、当該全体画面上の操作であって前記アプリケーションプログラムに対する操作とは別の前記操作シナリオを生成するための操作に伴い発生するイベント情報が２つの位置座標を対角線の頂点にした再抽出範囲の抽出指示のとき、当該イベント情報に基づき、当該全体画面から比較対象の画像を抽出する範囲を前記２つの位置座標で示す抽出範囲情報を抽出する比較対象画像範囲抽出手段と、
前記操作画面上の操作が前記操作シナリオを生成するための操作であってイベント情報が前記再抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記表示中の全体画像の画像情報の座標値のうち、前記抽出された抽出範囲情報で示される前記２つの位置座標を対角線の頂点にした再抽出範囲に含まれる座標値をもとに当該全体画像の画像情報から比較対象の画像情報を抽出する比較対象画像抽出手段と、
前記全体画像抽出表示手段により全体画像の画像情報が表示された操作シナリオにおける比較対象の画像情報を、前記比較対象画像抽出手段により抽出された比較対象の画像情報により上書き更新する画像更新手段と、
を備えたことを特徴とするシナリオ生成装置。
【請求項７】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成し且つ記憶手段を備えたシナリオ生成装置に用いられるプログラムであって、
前記シナリオ生成装置を、
前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段、
前記操作画面上の操作が前記アプリケーションプログラムに対する操作とは別の前記操作シナリオを生成するための操作であって前記イベント情報が位置座標を含む抽出範囲の決定指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を前記位置座標を中心とした既定の長方形枠の対角線をなす両方の頂点の座標で示す抽出範囲情報を決定する抽出範囲決定手段、
前記抽出範囲情報に基づき、前記比較対象の画像の抽出範囲を示す前記長方形枠を前記操作画面上に表示する抽出範囲表示手段、
前記操作画面上の操作が前記操作シナリオを生成するための操作であって前記イベント情報が前記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値のうち、前記抽出範囲情報で示される前記長方形枠の範囲内にある座標値をもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し前記記憶手段に書き込む画像取得手段、
前記記憶したイベント情報のうち、前記操作画面上の操作が前記アプリケーションプログラムに対する操作に伴い発生するイベント情報、及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段、
として機能させるためのプログラム。
【請求項８】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成し且つ記憶手段を備えたシナリオ生成装置に用いられるプログラムであって、
前記シナリオ生成装置を、
前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段、
前記操作画面上の操作が前記アプリケーションプログラムに対する操作とは別の前記操作シナリオを生成するための操作であって前記イベント情報が位置座標を含む抽出範囲の決定指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を前記位置座標を中心とした既定の長方形枠の対角線をなす両方の頂点の座標で示す抽出範囲情報を決定する抽出範囲決定手段、
前記操作画面上の操作が前記操作シナリオを生成するための操作であって前記イベント情報が前記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値のうち、前記抽出範囲情報で示される前記長方形枠の範囲内にある座標値をもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し前記記憶手段に書き込む画像取得手段、
前記記憶したイベント情報のうち、前記操作画面上の操作が前記アプリケーションプログラムに対する操作に伴い発生するイベント情報、及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段、
として機能させ、
前記画像取得手段は、
前記操作画面上に複数のウィンドウ画面が表示されている場合、前記記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報を記憶するウィンドウ範囲記憶手段と、
前記抽出範囲の決定指示に含まれる位置座標と、前記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報を選択するウィンドウ選択手段と、
前記ウィンドウ選択手段により選択したウィンドウ範囲情報と、前記抽出範囲情報との共通範囲を示す共通範囲情報を抽出する共通範囲抽出手段と、
前記抽出範囲情報の値を前記共通範囲情報の値に変更する抽出範囲変更手段と、
前記変更された値の抽出範囲情報に基づいて、前記比較対象の画像情報を抽出し記憶する画像抽出記憶手段と、
を含むプログラム。
【請求項９】
操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の画像のうちの一部分を切り出した画像を含んで前記操作画面に比較される比較対象の画像に対応付けて操作イベントを発生する手順を記述した操作シナリオを生成し且つ記憶手段を備えたシナリオ生成装置に用いられるプログラムであって、
前記シナリオ生成装置を、
あるステップ番号に対し、前記操作画面上の操作に伴い発生するイベント情報、前記操作画面上の全体画像の画像情報、及び前記操作画面から抽出された前記比較対象の画像情報、を互いに関連付けてなる前記操作シナリオを前記記憶手段に記録する手段、
前記記憶手段内の操作シナリオから、あるステップ番号に対して全体画像の画像情報及び比較対象の画像情報をそれぞれ抽出する画像抽出手段、
前記画像抽出手段により抽出された全体画像の画像情報の中で、前記画像抽出手段により抽出された比較対象の画像情報と合致する部分が一箇所だけあるか否かを判定する判定手段、
前記判定の結果、否の場合、当該否であることを表示する結果表示手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定された画像をもとにシナリオを生成するシナリオ生成装置及びシナリオ生成プログラムに係り、例えば、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上し得るシナリオ生成装置及びプログラムに関する。
【背景技術】
【０００２】
一般に、ＣＰＵがソフトウェアを実行してなる情報システムが広く知られている。この種の情報システムでは、多量の処理要求が発生すると、処理要求に応答するためにＣＰＵの負荷が高くなる。このような高負荷時における情報システムの性能は極めて重要である。具体的には、高負荷時におけるリソース（ＣＰＵ等）利用率や高負荷時のレスポンスタイム等が情報システムの利用者にとって重要な性能となっている。
【０００３】
情報システムを開発、運用する際に、高負荷時の性能を測定、検証する観点から、擬似的に生じさせた高負荷の状況において、情報システムの性能を計測するための負荷試験が広く行われている。負荷試験では、一般に、情報端末に相当するマシンから擬似的に多量の処理要求を情報システムに発生させる（例えば、特許文献１参照。）。情報端末に相当するマシンは、通常、インストールされた負荷試験プログラムの実行により、負荷を発生する。負荷試験プログラムを実行するＣＰＵは、人間が情報端末を操作して入力する場合の処理要求と同様の処理要求を情報端末から発生させる。
【０００４】
ここで、負荷試験プログラムには、いくつかの方式がある。比較的普及している方式は、クライアントソフトウェアからサーバへ送られる処理要求を予め記録しておき、この予め記録した処理要求を負荷発生ツールからサーバに向けて擬似的に繰り返し発生させる方式である。
【０００５】
しかしながら、この方式は、処理要求が毎回変化する複雑なシステムのとき、クライアントソフトウェアと同様に処理要求を変化させる機構を負荷発生ツールに設けることが困難となり、実現に多大な労力を要する場合がある。さらに、処理要求を適切に変化させる観点から、クライアントソフトウェアの内部の動きを理解する必要がある場合には、負荷試験の実施者に高度なスキルが要求されるため、負荷試験を行う人材確保が困難となる。
【０００６】
一方、別の実現方法として、クライアントソフトウェアの画面の自動操作により、負荷を発生する方法が考えられる。これは、情報端末にてクライアントソフトウェアを起動しておき、人間による操作と同様の操作を負荷試験ツールが擬似的に実行して当該クライアントソフトウェアを動作させることにより、クライアントソフトウェアから処理要求を発生させてサーバに送る方法である。
【０００７】
この方法の場合、クライアントソフトウェアの画面遷移に応じて、ボタンなどの所定の操作対象に、マウスやキーボードからの入力イベント（操作イベント）が投入される。このような画面の自動操作は、予め操作シナリオ（以下、単にシナリオともいう）の形で定義されている。この方式では、クライアントソフトウェアに実装された機構をそのまま利用して処理要求を発生させるため、前述とは異なり、処理要求を毎回変化させる機構が不要である。さらにクライアントソフトウェアの操作方法を理解した者であれば、操作シナリオを作成可能であるため、高度なスキルが要求されない。
【０００８】
このような画面自動操作による負荷発生方式では、情報端末上のウィンドウ内で表示されるボタンやテキストボックスのような操作対象を用いる。この操作対象に操作イベントを投入する場合に、いくつかの実現方法が考えられる。
【０００９】
第１の実現方法においては、画面を構成しているソフトウェアの構造を理解し、画面内の操作対象を上記ソフトウェアが管理している仕組みに基づき、画面内の操作対象をソフトウェアが特定するＩＤを明確にし、そのＩＤと、そのＩＤに投入するイベントの種別を、操作シナリオに記述しておく。シナリオ実行時には、操作対象のＩＤに基づいて、その操作対象にマウスのクリックイベントなどを投入する。
【００１０】
しかしながら、第１の実現方法は、ソフトウェアによる操作対象の管理方法が変わると、操作対象の特定の仕方や表示位置の特定の方法が変化する。このため、個々のソフトウェアによる操作対象の管理方法に対応させて負荷試験プログラムを開発する必要があるので、多大なコストが発生する。
【００１１】
一方、第２の実現方法においては、画面上の操作対象を、予め取得した画像情報と比較して画面上での操作対象の表示位置を特定し、その操作対象の表示位置にマウスを移動してクリックなどの操作に相当するイベントを発生させる。この第２の実現方法によれば、操作対象の外見（形状、色、等）に基づいて操作対象を特定するので、操作対象の管理方法に対応させて負荷試験プログラムを開発する必要が無い。
【００１２】
係る第２の実現方法のためのソフトウェアとしては、例えば、フリーソフトウェアとして公開されているオートマウス（ＡｕｔｏＭｏｕｓｅ）が知られている（例えば、非特許文献１参照。）。
【特許文献１】特開２００３−２０８３２９号公報
【非特許文献１】山本格也：ＧＵＩをＡＰＩとして用いるプログラミング法，情報処理学会論文誌：プログラミング  Ｖｏｌ．３９，Ｎｏ．ＳＩＧ  １（ＰＲＯ  １），ｐｐ．２６−３３，（１９９８）．
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、以上のような第２の実現方法では、種々の画面を持つクライアントソフトウェアに適応して効率的に利用する場合に、操作シナリオを作成するための労力が大きいという課題が有った。
【００１４】
例えば、従来の方式では、情報端末（ＰＣ）の画面のスナップショットとしての画像情報を取得し、特殊なエディタを用いて操作対象となる画像の一部を指定し、その操作対象に対して、マウスやキーボードからどのような入力イベントを投入すべきかを定義する必要があった。複数の操作画面を順次切り替えるタイプのクライアントソフトウェアについて、このような手順で操作シナリオを作成するには多くの労力が必要となり、作業効率を著しく低下させる要因となっていた。
【００１５】
そこで、本発明者らは、この出願の出願時点で未公開の特願２００７−１９６４２２号において、操作に伴い発生するイベントを採取して記録すると共に、操作画面の全体画像と操作画面上で操作対象として指定された画像とを採取して記録することにより、これらイベント及び各画像から操作シナリオを効率的に作成する第３の実現方法を提案した。
【００１６】
しかしながら、第３の実現方法においては、熟練していない操作者の場合、シナリオ実行時にエラーを生じる画像を指定してシナリオを作成してしまう可能性がある。このようなシナリオを生成した場合、シナリオ実行時までエラーが発生しないので、エラーを生じる画像を修正しにくい不都合が生じる。また、熟練していない操作者にとっては、エラーが発生した場合に、エラーの原因が中々分からず、シナリオ修正の作業効率を低下させてしまう心配がある。また、エラーの原因を探すために、クライアントアプリケーションを起動し直す手間が発生し、作業効率をさらに低下させる心配がある。
【００１７】
本発明は上記実情を考慮してなされたもので、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上し得るシナリオ生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の第１の局面は、操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、前記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、前記抽出範囲情報に基づき、前記比較対象の画像の抽出範囲を前記操作画面上に表示する抽出範囲表示手段と、前記イベント情報が前記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値と前記抽出範囲情報とをもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し記憶する画像取得手段と、前記記憶したイベント情報及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段とを備えたシナリオ生成装置である。
【００１９】
本発明の第２の局面は、操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、前記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、前記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、前記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、前記イベント情報が前記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、前記操作画面上の全体画像の画像情報の座標値と前記抽出範囲情報とをもとに前記全体画像の画像情報から前記比較対象の画像情報を抽出し記憶する画像取得手段と、前記記憶したイベント情報及び前記比較対象の画像情報をもとに前記操作シナリオを生成するシナリオ生成手段とを備えており、前記画像取得手段としては、前記操作画面上に複数のウィンドウ画面が表示されている場合、前記記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報を記憶するウィンドウ範囲記憶手段と、前記抽出範囲の指示に含まれる位置座標と、前記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報を選択するウィンドウ選択手段と、前記ウィンドウ選択手段により選択したウィンドウ範囲情報と、前記抽出範囲情報との共通範囲を示す共通範囲情報を抽出する共通範囲抽出手段と、前記抽出範囲情報の値を前記共通範囲情報の値に変更する抽出範囲変更手段と、前記変更された値の抽出範囲情報に基づいて、前記比較対象の画像情報を抽出し記憶する画像抽出記憶手段と、を備えたシナリオ生成装置である。
【００２０】
本発明の第３の局面は、操作画面の表示を伴うアプリケーションプログラムを対象に、前記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成装置であって、あるステップ番号に対し、前記操作画面上の操作に伴い発生するイベント情報、前記操作画面上の全体画像の画像情報、及び前記操作画面から抽出された比較対象の画像情報、を互いに関連付けてなる前記操作シナリオを記憶する記憶手段と、前記記憶手段内の操作シナリオから、あるステップ番号に対して全体画像の画像情報及び比較対象の画像情報をそれぞれ抽出する画像抽出手段と、前記画像抽出手段により抽出された全体画像の画像情報の中で、前記画像抽出手段により抽出された比較対象の画像情報を一意に決定できるか否かを判定する判定手段と、前記判定の結果、否の場合、当該否であることを表示する結果表示手段と、を備えたシナリオ生成装置である。
【００２１】
なお、本発明の各局面は、装置として表現したが、これに限らず、プログラム、プログラムを記憶したコンピュータ読み取り可能な記憶媒体、又は方法、として表現することができる。
【００２２】
（作用）
第１の局面によれば、比較対象の画像の抽出範囲を操作画面上に表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【００２３】
第２の局面によれば、抽出範囲の指示に含まれる位置座標を含む最上位のウィンドウ範囲情報と抽出範囲情報との共通範囲に基づいて、比較対象の画像を抽出する構成により、指示した位置座標を含まない背景のウィンドウ画面が比較対象の画像の一部として抽出されなくなるので、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【００２４】
第３の局面によれば、抽出された比較対象の画像情報を一意に決定できるか否かを判定し、否の場合、否であることを表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【発明の効果】
【００２５】
以上説明したように本発明によれば、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【００２７】
（第１の実施形態）
先ず図１乃至図１１を参照して本発明の第１の実施形態を説明する。  
図１は、負荷試験を行うシステム全体の構成を示すブロック図であり、負荷を発生するクライアント側の複数の情報端末（ＰＣ）１，１，…と、負荷試験の対象となるサーバ２とにより構成される。クライアント側の複数の情報端末（ＰＣ）１，１，…には、それぞれサーバ２に対して処理要求を行う負荷発生システム１０及びクライアントアプリケーション実行部２０を単位負荷発生源とする負荷発生手段が設けられる。
【００２８】
負荷試験においては、クライアント側の複数の情報端末（ＰＣ）１，１，…に設けられた負荷発生手段から、サーバ２に対し、多量の処理要求を加えることによって、サーバ２の負荷時におけるリソース（ＣＰＵ等）利用率や、処理要求に対するレスポンスタイム等を測定する。
【００２９】
上記図１に示す負荷発生システム１０の構成を図２に示す。  
負荷発生システム１０は、メモリ内のクライアントアプリケーションプログラムをＣＰＵが実行してなるクライアントアプリケーション実行部２０に対して、人間が操作するのと同等に、マウスイベントやキーボードイベントを発生させることによって、画面操作を行う。クライアントアプリケーションプログラムはＧＵＩ（Graphical User Interface）による画面操作を伴うものである。クライアントアプリケーション実行部２０は、負荷発生システム１０からの画面操作に応じて、サーバ２に処理要求を発行する。
【００３０】
負荷発生システム１０は、図２に示すように、制御部１１と、画面遷移判定部１２と、比較対象特定部１３と、操作イベント発生部１４と、画像情報取得部１５とを備えている。
【００３１】
図２に示す負荷発生システム１０において、制御部１１は、操作実行制御部１１１と、シナリオ記憶部１１２とを備えている。
【００３２】
制御部１１に設けられた操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの記述内容に従い、画面遷移判定部１２、比較対象特定部１３、及び操作イベント発生部１４を制御する。シナリオ記憶部１１２は、画面上の操作により負荷発生システム１０に実行させる一連の画面操作の内容を定義した操作シナリオを記憶するものである。
【００３３】
制御部１１に設けられた操作実行制御部１１１は、画面遷移判定部１２に対して画面遷移判定要求２１３を発行し、画面遷移判定部１２から画面遷移判定応答２２１を受け付ける機能と、比較対象特定部１３に対して比較対象特定要求２１１を発行し、比較対象特定部１３から比較対象特定応答２２２を受け付ける機能と、操作イベント発生部１４に対してイベント発生要求２１２を発行し、操作イベント発生部１４からイベント発生応答２２３を受け付ける機能を備えている。
【００３４】
画面遷移判定部１２は、操作実行制御部１１１から受けた画面遷移判定要求２１３に従い画像情報取得部１５に対して画面情報取得要求２１５を発行し、画像情報取得部１５から画像情報取得応答２２５を受け付けて、画面遷移判定応答２２１を操作実行制御部１１１に送出する機能を備えている。
【００３５】
比較対象特定部１３は、操作実行制御部１１１から受けた比較対象特定要求２１１に従い画像情報取得部１５に対して画面情報取得要求２１６を発行し、画像情報取得部１５から画像情報取得応答２２６を受け付けて、比較対象特定応答２２２を操作実行制御部１１１に送出する機能を備えている。
【００３６】
操作イベント発生部１４は、操作実行制御部１１１から受けたイベント発生要求２１２に従いクライアントアプリケーション実行部２０に対してイベント２０１を発行し、イベント発生応答２２３を操作実行制御部１１１に送出する機能を備えている。クライアントアプリケーション実行部２０は操作イベント発生部１４から受けたイベント２０１に従う処理要求２０２をサーバ２に送出する。
【００３７】
画像情報取得部１５は、画面遷移判定部１２から受けた画面情報取得要求２１５に従いクライアントアプリケーション実行部２０から画像情報２０３を取得し、画像情報取得応答２２５を画面遷移判定部１２に送出する機能と、比較対象特定部１３から受けた画面情報取得要求２１６に従いクライアントアプリケーション実行部２０から画像情報２０３を取得し、画像情報取得応答２２６を比較対象特定部１３に送出する機能とを備えている。
【００３８】
なお、比較対象特定要求２１１、画面遷移判定要求２１３、画像情報取得応答２２５，２２６には、それぞれクライアントアプリケーション実行部２０の操作画面に含まれるビットマップイメージ（拡張子ｂｍｐのファイル）の画像情報が付随する。ただし、ビットマップイメージには限定されず、他の形式のイメージファイルであっても構わない。
【００３９】
上記図２に示す比較対象特定部１３の構成を図３に示す。
【００４０】
比較対象特定部１３は、図３に示すように、比較対象特定制御部１３１と、画像比較部１３３とを備えている。
【００４１】
比較対象特定制御部１３１は、操作実行制御部１１１から受けた比較対象特定要求２１１に従い、当該要求２１１に付随するビットマップイメージの画像情報を画像比較部１３３に送出するとともに、画面情報取得要求２１６を画像情報取得部１５に送出して、画像情報取得部１５から画像情報取得応答２２６に付随するビットマップイメージの画像情報を取得し、上記各画像情報を画像比較部１３３に供給する処理機能を実現する。
【００４２】
画像比較部１３３は、クライアントアプリケーション実行部２０の操作画面の画面情報の中から、上記比較対象特定要求２１１が指定したビットマップイメージと合致する部分を探索する。探索の結果、合致する部分が見つかった場合には、比較対象特定制御部１３１に探索結果通知を送出する。探索結果通知には、画面情報内での上記ビットマップイメージと合致した部分の座標情報を含む。なお、ここで言う「合致」は、ビットマップイメージを構成する全てのピクセルが完全に一致することであってもよいし、完全ではないが指定された基準以上に一致することであってもよい。例えば、予め指定された値以上の割合で、ピクセルの色の情報が一致していることを条件に「合致」を定義してもよい。
【００４３】
ここで、クライアントアプリケーション実行部２０に於ける操作画面の具体例を挙げて、上記負荷発生システム１０の動作について、図４乃至図１１を参照して説明する。ここでは、クライアントアプリケーション実行部２０が扱うアプリケーション操作ウィンドウとして、図４に示すスケジュール表示画面を例に動作を説明する。
【００４４】
負荷発生システム１０の制御部１１に設けられた操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの定義内容に従い、負荷発生システム１０内部に設けられた画面遷移判定部１２、比較対象特定部１３、操作イベント発生部１４、及び画像情報取得部１５等の各構成要素を制御する。
【００４５】
制御部１１の下で操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオに記述（定義）されている内容に従い、比較対象特定部１３に対して比較対象特定要求２１１を送出し、操作イベント発生部１４に対してイベント発生要求２１２を送出し、画面遷移判定部１２に対して画面遷移判定要求２１３を送出する。
【００４６】
画面遷移判定部１２及び比較対象特定部１３はそれぞれ操作実行制御部１１１の制御の下に画像情報取得部１５に画面情報取得要求２１５，２１６を送出する。すなわち画面遷移判定部１２は、操作実行制御部１１１から画面遷移判定要求２１３を受けると、画像情報取得部１５に対して画面情報取得要求２１５を送出する。比較対象特定部１３は、操作実行制御部１１１から比較対象特定要求２１１を受けると、画像情報取得部１５に対して画面情報取得要求２１６を送出する。
【００４７】
画像情報取得部１５は画面遷移判定部１２から画面情報取得要求２１５を受けると、オペレーティングシステム（ＯＳ）実行部４０を介してクライアントアプリケーション実行部２０が画面に表示している画像情報２０３を取得し、取得した画像を含む画像情報取得応答２２５を画面遷移判定部１２に送出する。同様に比較対象特定部１３から画面情報取得要求２１６を受けると、クライアントアプリケーション実行部２０が画面に表示している画像情報２０３を取得し、取得した画像を含む画像情報取得応答２２６を比較対象特定部１３に送出する。
【００４８】
この際のクライアントアプリケーション実行部２０が画面に表示している画像情報（アプリケーション操作ウィンドウ）２０３の具体例を図４に示している。ここでは、スケジュール管理システムに於けるスケジュール表示画面２１を例に示している。以降の動作説明においては、この図４に示すスケジュール表示画面２１の画像情報が画像情報取得部１５により画像情報２０３として取得され、当該スケジュール表示画面２１の画像情報が画面遷移判定部１２、及び比較対象特定部１３に送出されるものとする。
【００４９】
図４に示すスケジュール表示画面２１において、ボタン「旅費清算システム」をクリックすると、図５に示す旅費清算システムの画面２２に遷移する。さらに、この旅費清算システムの画面２２上で、「一括請求」ボタンをクリックすると、さらに次の画面に遷移する。
【００５０】
この一連の画面遷移に応じた操作を負荷発生システム１０によって実現する手順を以下に説明する。
【００５１】
上記図４に示すスケジュール表示画面２１の座標軸を図６に示している。ここでは、ＸＧＡ（１０２４×７６８ピクセル）のアプリケーション操作ウィンドウを例に示している。
【００５２】
上記シナリオ記憶部１１２内の操作シナリオの一部記述例を図７に示している。この操作シナリオは、図７に示すように、操作ステップと、画面識別情報（画面ＩＤ）と、ビットマップイメージの画面遷移判定画像及び比較対象画像と、判定／操作内容と、数値情報とを設定項目（定義項目）として構成される。
【００５３】
クライアントアプリケーション実行部２０は、画面遷移の中で、図４に示すスケジュール表示画面２１を表示しようとしている状態とする。
【００５４】
操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオのステップ２０を読み取る。このステップ２０には、［判定／操作内容］として「画面遷移判定」が設定（定義）されている。従って、次に行うことは、画面遷移の判定であることが決定される。また、［画面遷移判定画像］として、ファイル名「１．ｂｍｐ」が設定されている。その内容（ビットマップイメージ）を図８に示している。操作実行制御部１１１は、この図８に示す画面遷移判定画像の情報（ビットマップイメージ）を含む画面遷移判定要求２１３を画面遷移判定部１２に送出する。
【００５５】
画面遷移判定部１２は、操作実行制御部１１１から画面遷移判定要求２１３を受けると、画像情報取得部１５に対して画面情報取得要求２１５を送出する。
【００５６】
画像情報取得部１５は、画面遷移判定部１２から画面情報取得要求２１５を受けると、クライアントアプリケーション実行部２０が表示している画像情報（ビットマップイメージ）２０３を取得し、当該画像情報２０３を含む画像情報取得応答２２５を画面遷移判定部１２に送出する。
【００５７】
画面遷移判定部１２は、画像情報取得部１５を介してクライアントアプリケーション実行部２０から取得した画像情報２０３の中に、「１．ｂｍｐ」の画像と合致する部分があるか否かを検査する。この際の「１．ｂｍｐ」の内容（ビットマップイメージ）は上記した図８に示す画面遷移判定画像の情報（ビットマップイメージ）である。
【００５８】
なお、この検査において、例えば画面遷移が完了していないために、合致する部分が存在しなかった場合、画面遷移判定部１２は、画像情報取得部１５に対して、画面情報取得要求２１５を送出する動作から、上記同様の処理を適当な頻度で繰り返し実行する。
【００５９】
画面遷移が完了し、合致する部分が見つかった場合、画面遷移判定部１２は、操作実行制御部１１１に対して画面遷移判定応答２２１を送出する。
【００６０】
操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの次のステップであるステップ２１を読み取る。このステップ２１には、［判定／操作内容］として「クリック」が設定されている。従って、次に行うことは、クリックであることが決定される。また、［比較対象画像］としてファイル名「２．ｂｍｐ」が設定されている。この「２．ｂｍｐ」のビットマップイメージを図９に示す。
【００６１】
操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの内容に従い、比較対象特定部１３に対して比較対象特定要求２１１を送出する。この比較対象特定要求２１１には、上記した図９に示す比較対象画像（ビットマップイメージ）が付随している。
【００６２】
比較対象特定部１３において、比較対象特定制御部１３１は、操作実行制御部１１１から比較対象特定要求２１１を受けると、画像情報取得部１５に画面情報取得要求２１６を送出する。
【００６３】
画像情報取得部１５は、比較対象特定部１３に設けられた比較対象特定制御部１３１から画面情報取得要求２１６を受けると、クライアントアプリケーション実行部２０が表示している画像情報２０３を取得し、当該取得した画像情報２０３を比較対象特定部１３に設けられた画像比較部１３３に送出する。今回のケースでは、画像情報２０３として図４に示すスケジュール表示画面２１が画像比較部１３３に送出される。
【００６４】
画像比較部１３３は、画像情報取得部１５を介してクライアントアプリケーション実行部２０から取得した画像情報２０３の中から、比較対象画像としてファイル名「２．ｂｍｐ」で表される画像（ビットマップイメージ）１１２と一致する部分を検索する。
【００６５】
画像比較部１３３は、上記検索の結果として、［中心Ｘ座標］、［中心Ｙ座標］を比較対象特定制御部１３１に応答し、比較対象特定制御部１３１は、操作実行制御部１１１に、比較対象特定応答２２２を送付する。
【００６６】
操作実行制御部１１１は、比較対象特定制御部１３１から受けた比較対象特定応答２２２に付随した比較対象の中心Ｘ座標、中心Ｙ座標の情報と、操作／判定内容として「クリック」の情報をイベント発生要求２１２に付随させ、当該イベント発生要求２１２を操作イベント発生部１４に送出する。
【００６７】
操作イベント発生部１４は、操作実行制御部１１１から受けたイベント発生要求２１２に従い、比較対象の中心Ｘ座標、中心Ｙ座標にマウスが移動したのと同等のイベント２０１を発生する。さらに、マウスクリックのイベント２０１を発生する。その後、イベント発生応答２２３を操作実行制御部１１１に送出する。
【００６８】
このようにして、クライアントアプリケーション実行部２０の画面が操作されるような適切な操作イベントを発生させることができる。
【００６９】
次に、操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの次のステップであるステップ２２を読み取る。このステップ２２には、［判定／操作内容］として「画面遷移判定」が設定されている。
【００７０】
ここでは、上記ステップ２０で実行したのと同様に、ステップ２２の処理が実行される。このステップ２２における「３．ｂｍｐ」の内容（ビットマップイメージ）を図１０に符号１１３を付して示している。
【００７１】
操作実行制御部１１１は、シナリオ記憶部１１２内の操作シナリオの次のステップであるステップ２３を読み取る。
【００７２】
ここでは、上記ステップ２１で実行したのと同様に、ステップ２３の処理が実行される。このステップ２３における「４．ｂｍｐ」の内容（ビットマップイメージ）を図１１に符号１１４を付して示している。
【００７３】
このようにしてクライアントアプリケーション実行部２０の画面に対して適切な操作イベントを発生させることができる。
【００７４】
上記したシナリオ記憶部１１２内の操作シナリオに従う処理動作によって、負荷発生システム１０から、クライアントアプリケーション実行部２０に対して、画面遷移に応じ、順次、適正なイベントを発生させることができ、これに伴いクライアントアプリケーション実行部２０からサーバ２に処理要求を送出して、サーバ２に所望の負荷をかける負荷試験が可能となる。
【００７５】
（第２の実施形態）
次に図１２乃至図１６を参照して本発明の第２の実施形態を説明する。この第２の実施形態は、画面遷移を伴うアプリケーションプログラムを対象に、上記第１の実施形態で用いた操作シナリオを作成するシステムを実現している。
【００７６】
本発明の第２の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システムであって、上記操作画面上の操作に伴い発生するイベントを採取し記録するイベント取得手段と、上記操作画面の全体画像、及び上記操作画面上における指定部位の抽出画像を採取し記録する画像取得手段と、上記イベント取得手段が取得したイベント、及び上記画像取得手段が取得した画像をもとに上記操作シナリオを生成するシナリオ生成手段とを具備して構成される。上記イベント取得手段は、後述する図１３に示すイベント検出部３０８、イベント記録部３０９及びイベントログ記憶部３０６により実現される。上記画像取得手段は、後述する図１３に示す画面画像記録指示部３１１及び画面画像記録部３１０と、画面画像記録部３１０が記録した画面全体画像情報と、比較対象範囲抽出部３０３とにより実現される。上記シナリオ生成手段は、後述する図１３に示すシナリオ生成部３０２により実現される。
【００７７】
本発明の第２、第３、第４の実施形態に係るシナリオを作成するシステム全体の構成を図１２に示す。この図１２に示すシステムは、シナリオ生成システム３０を主構成要素として実現される。シナリオ生成システム３０は、サーバ２に処理要求を送出するクライアントアプリケーション実行部２０に対して、操作者３の操作指示に伴い、オペレーティングシステム（ＯＳ）実行部４０を介して発生する各種の操作イベントをクライアントアプリケーション実行部２０の画像情報とともに取り込み、操作シナリオを作成してシナリオ記憶部１１２に記録する機能を実現している。
【００７８】
このシナリオ生成システム３０の構成を図１３に示す。  
図１３に示すシナリオ生成システム３０は、シナリオ生成部３０２、比較対象範囲抽出部３０３、イベント検出部３０８、イベント記録部３０９、画面画像記録部３１０、画面画像記録指示部３１１等を有して構成される。
【００７９】
画面画像記録指示部３１１は、クライアントアプリケーション実行部２０が画面に表示している画像を取り込む際に操作者３によって操作されるもので、例えばキーボード上の「ＰｒｉｎｔＳｃｒｅｅｎ」キー等により実現される。
【００８０】
画面画像記録部３１０は、画面画像記録指示部３１１の操作に従い、クライアントアプリケーション実行部２０が画面に表示している画像情報（画面全体画像情報）を取り込み、画面全体画像情報記憶部３０７に記録する。例えば図４に示すスケジュール表示画面２１の全画像（ビットマップイメージ）を画面全体画像情報として所定の記録領域（画面全体画像情報記憶部３０７）に記録する。なお、ここで言う「画面全体画像」は、あくまで操作対象範囲にある全体画像であって、マウス操作が行われるであろう位置が含まれる操作対象範囲内の画像であればよく、例えばアクティブになっているウィンドウの画像である場合も含む。
【００８１】
イベント検出部３０８は、操作者３によるマウスのクリック操作、キー操作等、各種の操作指示に伴い、オペレーティングシステム（ＯＳ）実行部４０を介して発生する操作イベントの情報を検出する。このイベント情報には、操作者３が操作する操作画面上における操作の位置を示す座標情報が含まれる。
【００８２】
イベント記録部３０９は、イベント検出部３０８が検出したマウスのクリック操作、キー操作等により発生する各種のイベント情報をイベントログとしてイベントログ記憶部３０６に記録する。
【００８３】
比較対象範囲抽出部３０３は、画面全体画像情報記憶部３０７内の画面全体画像情報からイベントログ記憶部３０６内のイベントログに従う比較対象範囲の画像情報（ビットマップイメージ）を比較対象画像情報として抽出し、比較対象画像情報記憶部３０１に記録する。
【００８４】
シナリオ生成部３０２は、比較対象画像情報記憶部３０１内の比較対象画像情報と、イベントログ記憶部３０６内のイベントログとをもとに操作シナリオを生成する。ここでは、クライアントアプリケーション実行部２０を操作対象とした操作シナリオを作成してシナリオ記憶部１１２に記録する。
【００８５】
本発明の第２の実施形態におけるシナリオ生成システム３０を主構成要素としたシステムの処理手順を図１４に示し、当該処理により生成される操作シナリオの内容例を図７に示し、当該操作シナリオに設定された比較対象画像情報の一例を図９乃至図１１に示している。また、操作画面上におけるマウスカーソルの操作に伴う比較対象画像の状態遷移の一例を図１５及び図１６に示している。
【００８６】
ここで上記図１２乃至図１６を参照して本発明の第２の実施形態における操作シナリオの作成処理動作を説明する。
【００８７】
シナリオ作成者となる操作者３は、まず操作対象となるクライアントアプリケーション実行部２０を起動する。そして、シナリオ生成システム３０の動作を開始させる。
【００８８】
操作者３は、オペレーティングシステム（ＯＳ）実行部４０を介し、クライアントアプリケーション実行部２０に、マウスの移動、マウスのクリック、キーボード入力等の各種イベントを送出することによって、クライアントアプリケーション実行部２０を操作する。
【００８９】
シナリオ生成システム３０は、上記各種イベントの情報や、クライアントアプリケーション実行部２０の画像情報をオペレーティングシステム（ＯＳ）実行部４０から取得することによって、操作シナリオを生成してシナリオ記憶部１１２に記録する。
【００９０】
以下に図１４に示す処理手順と図７に示す操作シナリオの内容例と図９乃至図１１に示す比較対象画像の一例を参照して、図１２及び図１３に示す本発明の第２の実施形態におけるシナリオ生成システム３０を主構成要素としたシステムの具体的な処理動作を説明する。
【００９１】
図１４に示す処理フローにおいて、ステップＳ２１では、操作者３が、クライアントアプリケーション実行部２０の画面に画像から所期の比較対象を認識して、画面画像記録指示部３１１を操作する。例えば、図４に示されるスケジュール表示画面２１が表示され、操作者３が当該スケジュール表示画面２１上において、左下の「旅費清算システム」のボタンを発見したとき、キーボード上の「ＰｒｉｎｔＳｃｒｅｅｎ」キー等のボタンを押下する。
【００９２】
ステップＳ２２では、画面画像記録指示部３１１の操作に従い、画面画像記録指示部３１１が画面画像記録部３１０に対して画面全体画像情報の記録を指示する。
【００９３】
ステップＳ２３では、画面画像記録部３１０が、画面画像記録指示部３１１からの指示に従い、クライアントアプリケーション実行部２０が画面に表示している図４に示すスケジュール表示画面２１を画面全体画像情報として所定の記録領域（画面全体画像情報記憶部３０７）に記録する。
【００９４】
ステップＳ２４では、操作者３が上記スケジュール表示画面２１の「旅費清算システム」ボタン上へマウスを移動させ、クリック操作を行う。
【００９５】
ステップＳ２５では、イベント記録部３０９が、上記マウスのクリック操作をイベントとして検出し、マウスの位置を示す座標情報と、イベントの種別情報（この例ではクリック）を、イベントログとして所定の記録領域（イベント記憶部３０６）に記録する。
【００９６】
ステップＳ２６では、比較対象範囲抽出部３０３が、画面全体画像情報記憶部３０７内の画面全体画像情報の中から、上記イベントログ記憶部３０６にイベントログとして記録した座標情報を中心とした、既定の形状とサイズによって決まるエリアに含まれる部分を、マッチング範囲として抽出し、比較対象画像情報として所定の記録領域（比較対象画像情報記憶部３０１）に記録する。
【００９７】
ステップＳ２７では、操作者３によるクライアントアプリケーション実行部２０の操作が終了したか否かを判断する。操作が終了していない場合は、ステップＳ２１へ戻る。操作が終了していれば、ステップＳ２８へ移行する。
【００９８】
ステップＳ２８では、シナリオ生成部３０２が、比較対象画像情報記憶部３０１内の比較対象画像情報と、イベントログ記憶部３０６内のイベントログの情報を組み合わせて、操作シナリオを生成してシナリオ記憶部１１２に記録する。
【００９９】
シナリオ記憶部１１２内の操作シナリオの一例を図７に示している。この操作シナリオは、操作ステップと、画面識別情報（画面ＩＤ）と、ビットマップイメージの画面遷移判定画像及び比較対象画像と、判定／操作内容と、数値情報とを設定項目として構成される。
【０１００】
上記図７に示す操作シナリオにおいて、比較対象画像の設定項目には、比較対象画像を適当な画像ファイル形式として保存したファイルのファイル名が設定される。この例では、ビットマップのイメージ形式ファイルを表す「．ｂｍｐ」が設定されている。
【０１０１】
上記図７に示す操作シナリオの［比較対象画像］に設定された比較対象画像ファイル（２．ｂｍｐ）の内容を図９に示している。この例ではスケジュール表示画面２１から抽出された「旅費清算システム」が比較対象画像として操作シナリオに登録される。
【０１０２】
なお、上記したステップＳ２４の処理において、マウスをクリックする直前に、マウスがボタンの上へ到達した時点で、ボタンの外見（形状、色、等）が変化することがある。例えば図１５に示すようにマウスカーソル（ＭＣ）がボタン設定エリア（ＢＡ１）に到達しない（ＢＡ１の外に位置している）状態から、図１６に示すようにマウスカーソル（ＭＣ）がボタン設定エリア（ＢＡ１）に到達した（ＢＡ１内に位置した）とき、ボタンの外郭（非明示／明示）、色（例えば非反転／反転）、明度（暗／明）等が変化する。実際に、汎用ＯＳ上の多くのアプリケーションソフトウェアは、メニュ−の上にマウスを移動させただけで、外見（形状、色、等）が変化する。
【０１０３】
したがって、上記ステップＳ２４の時点でマウスのクリックが発生したときに、画面の画像情報を取得したのでは、変化した後の画像しか得られない。しかしながら、シナリオを実行する際には、まだマウスが操作対象となるボタンよりも離れた位置に有る状態においてボタンの画像を画面全体の画像の中から検出しなければならず、その時点では、まだボタンの画像は変化していない。つまり、画面全体画像を取得すべき時点とは、操作者３が比較対象（例：ボタン）を視認した後の時点でなければならず、かつ、マウスが比較対象に近づく以前であって、比較対象の外見が変化する以前の時点でなければならない。したがって、上記ステップＳ２１の段階で、画面画像記録指示部を操作する必要がある。
【０１０４】
上記したような画面全体の画像の取得処理機能をもつことで、実行可能な操作シナリオによる負荷試験システムを構築することができる。
【０１０５】
（第３の実施形態）
次に、本発明の第３の実施形態を図１７乃至図２４を参照して説明する。
【０１０６】
第３の実施形態は、シナリオ生成時の比較対象範囲を抽出する方法の不具合を解消するものである。例えば、図１３の比較対象範囲抽出部３０３が比較対象を特定するため画面画像を抽出する手法において、従来方法では抽出範囲が操作者にわからず、また抽出範囲が自由に決められず、抽出範囲が不適切になってしまう可能性がある。
【０１０７】
これにより、実行時毎に画像が変わるような部分を、抽出画面画像の一部に含んでしまうと、比較対象を特定するための画像が無効になる場合がある。この場合の典型例として、あるウィンドウの端付近をクリックしたときに、そのウィンドウの後ろにある背景画像（壁紙、他のウィンドウ）を含んでしまう状況がある。
【０１０８】
図１７は操作対象アプリウィンドウの後ろに他の背景ウィンドウが存在する画面状況の例を示している。このような画面状況では、「会議室予約システム」ボタンを特定するための比較対象の画像として、図１８に示すように、背景画像の一部を含む「会議室予約システム」ボタンの抽出画像が保存される場合がある。図１９は、図１７に示した操作対象アプリウィンドウの後ろに図１７とは異なる背景ウィンドウが存在する画面状況の例を示している。図１８に示す画像が図１９の画面状況では存在しないため、図１９の画面状況では「会議室予約システム」ボタンのクリック操作を再現できず、比較対象を特定できない。このため、図１８の画像を含む操作シナリオは、図１７の状況では正常に動作するが、図１９の状況では正常に動作しないという不具合が発生してしまう。
【０１０９】
また同様に抽出範囲が操作者にわからず、また抽出範囲が自由に決められないことから、抽出範囲が不適切になってしまう例として、抽出された画像と同じ画像が操作対象画面の複数の位置に存在する場合、比較対象を特定するための画像が無効になることがある。
【０１１０】
例えば、図２０に示すようなアプリケーションの「旅費精算システム」ボタンを特定するための比較対象の画像として、図２１に示す「費精算シ」の画像が抽出される場合がある。しかし図２１に示す「費精算シ」の画像は「旅費精算システム」ボタン上と「経費精算システム」ボタン上の２箇所に存在し、この画像からは比較対象がどちらのボタンなのか特定できない。このため、図２１の画像を含むシナリオは図２０の状況においては、シナリオ製作者の意図と異なる動作を行う不具合が発生してしまう可能性がある。
【０１１１】
第３の実施形態は、上記のような不具合を解消するために、シナリオ生成時に操作者に画面の抽出範囲を明示的に示す仕組み及び、明示的に示すと同時にキー操作により抽出範囲の拡大縮小及び変形を可能にする仕組みについて説明するものである。図２２は抽出範囲を明示的に示した画面の例である。図２２の長方形枠２２１が抽出範囲を示しており、操作者はマウスクリック時にこの長方形枠２２１を参考にすることにより、適切な抽出範囲を選ぶことが可能になる。また、図２３は抽出範囲を拡大縮小及び変形した例である。ここでは、抽出範囲を「旅費精算システム」ボタンの全体を囲むように変形したことにより、上述した共通画像を含むような不具合の発生を防ぐことができる。
【０１１２】
第３の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システム（シナリオ生成装置）であって、上記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、上記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、上記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、上記抽出範囲情報に基づき、上記比較対象の画像の抽出範囲を上記操作画面上に表示する抽出範囲表示手段と、上記表示された抽出範囲に対して入力された拡大又は縮小指示に応じて、当該表示された抽出範囲を拡大又は縮小するように上記抽出範囲情報を変更する抽出範囲変更手段と、上記イベント情報が上記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、上記操作画面上の全体画像の画像情報の座標値と上記抽出範囲情報とをもとに上記全体画像の画像情報から上記比較対象の画像情報を抽出し記憶する画像取得手段と、上記記憶したイベント情報及び上記比較対象の画像情報をもとに上記操作シナリオを生成するシナリオ生成手段とを備えて構成される。上記イベント情報取得手段は、後述する図２４に示すイベント記録部３０９及びイベントログ記憶部３０６により実現される。上記抽出範囲決定手段及び抽出範囲変更手段は、抽出範囲指示部３１４及び抽出範囲情報記憶部３１３により実現される。上記抽出範囲表示手段は、範囲表示部３１２により実現される。画像取得手段は、画面画像記録指示部３１１、画面画像記録部３１０、画面全体画像情報記憶部３０７、比較対象画像情報記憶部３０１及び比較対象範囲抽出部３０３により実現される。上記シナリオ生成手段は、シナリオ生成部３０２及びシナリオ記憶部１１２により実現される。
【０１１３】
図２４は本発明の第３の実施形態に係るシナリオ生成システムの構成を示す模式図である。このシナリオ生成システムは、前述した図１３に示した構成に比べ、抽出範囲指示部３１４、抽出範囲情報記憶部３１３及び範囲表示部３１２が付加されている。
【０１１４】
次に、以上のように構成されたシナリオ生成システムの動作を説明する。
【０１１５】
始めに、前述した通り、クライアントアプリケーション実行部２０が起動され、シナリオ生成システム３０の動作が開始したとする。また同様に、クライアントアプリケーション実行部２０は、操作者３によるマウスやキーボード操作により、オペレーティングシステム実行部（ＯＳ）４０から各種入力イベントを受けて操作される。
【０１１６】
シナリオ生成システム３０は、各種イベントの情報や、クライアントアプリケーション実行部２０の画像情報や、画像情報内の抽出範囲情報、位置座標といった情報をオペレーティングシステム実行部（ＯＳ）４０から取得することにより、操作シナリオを生成してシナリオ記憶部１１２に記録する。
【０１１７】
例えば、イベント記録部３０９は、操作画面上の操作に伴い発生するイベント情報を採取しイベントログとしてイベントログ記憶部３０６に記録する。
【０１１８】
ここで、抽出範囲指示部３１４は、このイベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、比較対象の画像を抽出する範囲を示す抽出範囲情報を決定し、この抽出範囲情報を抽出範囲情報記憶部３１３に記録する。
【０１１９】
範囲表示部３１２は、抽出範囲情報記憶部３１３内の抽出範囲情報に基づき、比較対象の画像の抽出範囲を示す長方形枠２３１を操作画面上に表示する。
【０１２０】
操作者は、この長方形枠２３１を見てキー操作を行う。キー操作が、当該表示された長方形枠２３１に対して入力された拡大又は縮小指示の場合、抽出範囲指示部３１４は、この拡大又は縮小指示に応じて、当該表示された長方形枠２３１を拡大又は縮小するように抽出範囲情報記憶部３１３内の抽出範囲情報を変更する。
【０１２１】
また、キー操作が抽出範囲の指示に続く記録指示のとき、画面画像記録指示部３１１は、当該記録指示を画面画像記録部３１０に入力する。画面画像記録部３１０は、当該記録指示に基づいて、操作画面上の全体画像の画像情報を抽出し画面全体画像情報記憶部３０７に記録する。
【０１２２】
比較対象範囲抽出部３０３は、画面全体画像情報記憶部３０７内の全体画像の画像情報の座標値と抽出範囲情報記憶部３１３内の抽出範囲情報とをもとに操作画面から比較対象の画像情報を抽出し比較対象画像情報記憶部３０１に記録する。
【０１２３】
シナリオ生成部１１２は、イベントログ記憶部３０６内のイベントログ内のイベント情報及び比較対象画像情報記憶部３０１内の画像情報をもとに操作シナリオを生成してシナリオ記憶部１１２に記録する。
【０１２４】
上述したように本実施形態によれば、比較対象の画像の抽出範囲を示す長方形枠２３１を操作画面上に表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。また、長方形枠２３１の表示中、入力された拡大又は縮小指示に応じて長方形枠２３１を拡大又は縮小して表示する構成により、表示された長方形枠２３１を適切な抽出範囲に調整することができる。
【０１２５】
（第４の実施形態）
次に本発明の第４の実施形態を図１７乃至図２６を参照して説明する。
【０１２６】
第４の実施形態は、第３の実施形態に述べた如き、あるウィンドウの端付近をクリックしたときに、そのウィンドウの後ろにある背景画像（壁紙、他のウィンドウ）を抽出画像に含んでしまう状況を解消するものである。
【０１２７】
前述した通り、図１７に示す画面から「会議室予約システム」ボタンを特定するために図１８に示すように背景画像を含む抽出画像が保存された場合、次の図１９に示す画面では「会議室予約システム」ボタンをクリックする操作を再現できない不都合が生じる。
【０１２８】
第４の実施形態ではこのような不都合を解消するために、操作対象の操作時に操作対象を含むウィンドウを特定し、第３の実施形態で決定した抽出範囲と、特定したウィンドウ範囲の両方に含まれる範囲を抽出範囲とする仕組みについて説明するものである。但し、第４の実施形態は、第３の実施形態とは異なり、抽出範囲を明示する長方形枠２３１の表示を省略してもよい。図２５は、図１７に示す操作画面から抽出した図１８に示す抽出画像のうち、操作対象アプリウィンドウの部分のみを抜き出したものである。
【０１２９】
図２５に示す抽出画像は、背景画像を含まないため、図１９に示す画面にも存在する。このことから、図２５に示す抽出画像を含む操作シナリオは、図１７又は図１９のいずれに示す操作画面でも「会議室予約システム」を特定するように正常に動作する。
【０１３０】
第４の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システム（シナリオ生成装置であって、上記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、上記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、上記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、上記イベント情報が上記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、上記操作画面上の全体画像の画像情報の座標値と上記抽出範囲情報とをもとに上記全体画像の画像情報から上記比較対象の画像情報を抽出し記憶する画像取得手段と、上記記憶したイベント情報及び上記比較対象の画像情報をもとに上記操作シナリオを生成するシナリオ生成手段とを備えており、上記画像取得手段としては、上記操作画面上に複数のウィンドウ画面が表示されている場合、上記記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報を記憶するウィンドウ範囲記憶手段と、上記抽出範囲の指示に含まれる位置座標と、上記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報を選択するウィンドウ選択手段と、上記ウィンドウ選択手段により選択したウィンドウ範囲情報と、上記抽出範囲情報との共通範囲を示す共通範囲情報を抽出する共通範囲抽出手段と、上記記憶手段内の抽出範囲情報の値を上記共通範囲情報の値に変更する抽出範囲変更手段と、上記変更された値の抽出範囲情報に基づいて、上記比較対象の画像情報を抽出し記憶する画像抽出記憶手段と、を備えて構成される。なお、第４の実施形態は、上記抽出範囲変更手段に代えて、上記抽出範囲の指示に含まれる位置座標と、上記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含まず上記抽出範囲の一部を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応する背景ウィンドウ範囲情報を選択する背景ウィンドウ選択手段と、上記共通範囲情報が示す共通範囲を含みつつ、上記背景ウィンドウ範囲情報が示すウィンドウ画面の範囲に含まれないように移動させた抽出範囲を示す抽出範囲情報を抽出する抽出範囲移動手段と、上記決定した抽出範囲情報を上記移動後の抽出範囲情報に変更する変更手段とを備えてもよい。上記イベント情報取得手段は、後述する図２６に示すイベント記録部３０９及びイベントログ記憶部３０６により実現される。上記抽出範囲決定手段及び抽出範囲変更手段は、抽出範囲指示部３１４及び抽出範囲情報記憶部３１３により実現される。上記抽出範囲表示手段は、範囲表示部３１２により実現される。画像取得手段は、画面画像記録指示部３１１、画面画像記録部３１０、画面全体画像情報記憶部３０７、比較対象画像情報記憶部３０１及び比較対象範囲抽出部３０３により実現される。ウィンドウ範囲記憶手段は、画面画像記録指示部３１１、画面画像記録部３１０、ウィンドウ範囲情報記憶部３１６及びウィンドウ範囲検出部３１７により実現される。ウィンドウ選択手段、背景ウィンドウ選択手段、共通範囲抽出手段、抽出範囲変更手段、変更手段及び画像抽出記憶手段は、比較対象範囲抽出部３０３、比較対象画像情報記憶部３０１及び共通範囲抽出部３１５により実現される。上記シナリオ生成手段は、シナリオ生成部３０２及びシナリオ記憶部１１２により実現される。
【０１３１】
図２６は本発明の第４の実施形態に係るシナリオ生成システムの構成を示す模式図である。このシナリオ生成システムは、前述した図２４に示した構成に比べ、共通範囲抽出部３１５、ウィンドウ範囲情報記憶部３１６及びウィンドウ範囲検出部３１７が付加されている。
【０１３２】
ウィンドウ範囲情報記憶部３１６には、図２７に一例を示すように、画面全体画像情報記憶部３０７内の画面全体画像情報に関連付けて、各ウィンドウ画面の画面ＩＤ毎に、ウィンドウ範囲情報（左上隅座標、右下隅座標）及び重なり順序情報が記憶される。ウィンドウ範囲情報は各ウィンドウ画面の範囲を示す情報であり、ここではウィンドウ画面の左上隅の位置座標と、右下隅の位置座標とが用いられている。重なり順序情報は各ウィンドウ画面間の重なり順序を示す情報であり、この例では値の小さい順に上位側（表面側、画面手前側）を示している。これらウィンドウ範囲情報及び重なり順序情報は、それぞれ図示しないオペレーティングシステム（ＯＳ）実行部４０からウィンドウ範囲検出部３１７に取得される。
【０１３３】
次に、以上のように構成されたシナリオ生成システムの動作を説明する。
【０１３４】
始めに、前述した通り、クライアントアプリケーション実行部２０が起動され、シナリオ生成システム３０の動作が開始したとする。また同様に、クライアントアプリケーション実行部２０は、操作者３によるマウスやキーボード操作により、オペレーティングシステム実行部（ＯＳ）４０から各種入力イベントを受けて操作される。
【０１３５】
シナリオ生成システム３０は、各種イベントの情報や、クライアントアプリケーション実行部２０の画像情報や、画像情報内の抽出範囲情報、位置座標といった情報をオペレーティングシステム実行部（ＯＳ）４０から取得することにより、操作シナリオを生成してシナリオ記憶部１１２に記録する。
【０１３６】
例えば、イベント記録部３０９は、操作画面上の操作に伴い発生するイベント情報を採取しイベントログとしてイベントログ記憶部３０６に記録する。
【０１３７】
ここで、抽出範囲指示部３１４は、このイベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、比較対象の画像を抽出する範囲を示す抽出範囲情報を決定し、この抽出範囲情報を抽出範囲情報記憶部３１３に記録する。
【０１３８】
範囲表示部３１２は、抽出範囲情報記憶部３１３内の抽出範囲情報に基づき、比較対象の画像の抽出範囲を示す長方形枠を操作画面上に表示する。但し、範囲表示部３１２による長方形枠の表示は省略してもよい。
【０１３９】
また、イベント情報が抽出範囲の指示に続く記録指示のとき、画面画像記録指示部３１１は、当該記録指示を画面画像記録部３１０に入力する。画面画像記録部３１０は、当該記録指示に基づいて、操作画面上の全体画像の画像情報を抽出し画面全体画像情報記憶部３０７に記録する。
【０１４０】
ここで、図２８に示すように、操作画面上に複数のウィンドウ画面Ｗ１〜Ｗ３が表示されている場合、ウィンドウ範囲検出部３１７は、当該記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報をウィンドウ範囲情報記憶部３１６に記録する。
【０１４１】
共通範囲抽出部３１５は、抽出範囲Ｃの指示に含まれる位置座標（ｘｃ，ｙｃ）と、ウィンドウ範囲情報記憶部３１６内のウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標（ｘｃ，ｙｃ）を含むウィンドウ範囲情報（Ｗ２対応）のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報（Ｗ２対応）を選択する。
【０１４２】
続いて、共通範囲抽出部３１５は、図２９に示すように、選択したウィンドウ範囲情報（Ｗ２対応）と、抽出範囲情報（ｘｃ１，ｙｃ１，ｘｃ２，ｙｃ２）との共通範囲を示す共通範囲情報（ｘｃ１’，ｙｃ１’，ｘｃ２，ｙｃ２）を抽出する。
【０１４３】
また、共通範囲抽出部３１５は、抽出範囲情報記憶部３１３の抽出範囲情報の値を共通範囲情報の値に変更する。なお、共通範囲抽出部３１５は、図２９に示す手法に代えて、図３０に示すように、抽出範囲の指示に含まれる位置座標と、ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含まず抽出範囲の一部を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応する背景ウィンドウ範囲情報（Ｗ１対応）を選択すると共に、共通範囲情報が示す共通範囲を含みつつ、背景ウィンドウ範囲情報が示すウィンドウ画面Ｗ１の範囲に含まれないように移動させた抽出範囲を示す抽出範囲情報を抽出し、抽出範囲情報記憶部３１３内の抽出範囲情報を当該移動後の抽出範囲情報（ｘｃ１’，ｙｃ１’，ｘｃ２’，ｙｃ２’）に変更するように動作してもよい。
【０１４４】
いずれにしても抽出範囲情報の変更の後、比較対象範囲抽出部３０３は、画面全体画像情報記憶部３０７内の全体画像の画像情報の座標値と抽出範囲情報記憶部３１３内の抽出範囲情報とをもとに操作画面から比較対象の画像情報を抽出し比較対象画像情報記憶部３０１に記録する。
【０１４５】
シナリオ生成部１１２は、イベントログ記憶部３０６内のイベントログ内のイベント情報及び比較対象画像情報記憶部３０１内の画像情報をもとに操作シナリオを生成してシナリオ記憶部１１２に記録する。
【０１４６】
上述したように本実施形態によれば、抽出範囲の指示に含まれる位置座標を含む最上位のウィンドウ範囲情報と抽出範囲情報との共通範囲に基づいて、比較対象の画像を抽出する構成により、指示した位置座標を抽出範囲に含まない背景のウィンドウ画面が比較対象の画像の一部として抽出されなくなるので、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【０１４７】
（第５の実施形態）
次に本発明の第５の実施形態を図３１乃至図３８を参照して説明する。
【０１４８】
第２、３、４の実施形態においては、生成されたシナリオに誤りが有り、実行時にエラーを発生する場合でも、シナリオ実行時までその誤りが顕在化しない状況にある。
【０１４９】
例えば、第２の実施形態で示した手法により、図６に示す画面に対するシナリオを生成する状況を想定する。
【０１５０】
図６の画面の「経費清算システム」をクリックする操作により、図３１の比較対象画像情報が得られ、それを含んだシナリオが生成されてシナリオ記憶部１１２に記録されたとする。
【０１５１】
シナリオ記憶部１１２内の操作シナリオを実行すると、上記の比較対象画像情報は、操作者が意図している「経費清算システム」のボタン以外にも、「旅費清算システム」のボタンにも一致してしまう。従って、状況によっては、「旅費清算システム」の方をシステムがクリックしてしまうという、誤動作が発生する可能性がある。
【０１５２】
これは、シナリオ生成の過程において、比較対象範囲の選び方が不適切であり、比較対象画像情報が、操作画面上で複数一致する箇所がある場合の問題である。この問題は、シナリオを実際に動作させた後、誤動作が発生するまで発見されない。操作者は、誤動作が発生した後に、誤動作の原因を追究し、比較対象範囲の選び方が不適切であったことを理解した上で、再度シナリオの一部を修正する作業を行う必要がある。これにより、シナリオ作成から修正までのターンアラウンドタイムが長くなる。同一シナリオにこのような誤りが複数箇所ある場合、全ての誤りを修正して、完全なシナリオを得るまでには、多大な時間を要する。さらに、上記のような誤動作が、操作者にとって発見しにくい誤動作を生じている可能性がある。例えば、「経費清算システム」の代わりに、「旅費清算システム」をクリックしても、その後の画面遷移が、両者で酷似しており、操作者にはすぐに誤動作として発見されにくい場合がある。そのような場合、操作者が比較対象画像に誤動作の原因があることを認識するまでに、時間と労力がかかってしまう。
【０１５３】
第５の実施形態は、シナリオ作成から修正までの時間を短縮するために、シナリオに誤りが有った場合に、シナリオを実行する以前の段階で、誤りを操作者に指摘し、修正の機会を与える「シナリオ事前チェック／修正システム」を実現するものである。
【０１５４】
図３２は本発明の第５の実施形態に係るシナリオ事前チェック／修正システム及びその周辺構成を示す模式図である。
【０１５５】
シナリオ事前チェック／修正システム５０は、シナリオ生成システム３０により生成されたシナリオ記憶部１１２内の操作シナリオを実行する前に、当該操作シナリオをチェック及び修正するものである。シナリオ事前チェック／修正システム５０は、シナリオ中に誤りを発見したならば、誤りの内容を操作者に表示し、修正の機会を与える機能をもつ。なお、シナリオ事前チェック／修正システム５０及びシナリオ生成システム３０の両者を備えた構成をシナリオ生成装置と呼んでもよい。
【０１５６】
図３３は、シナリオ生成システム３０とシナリオ事前チェック／修正システム５０の関係を示すブロック図である。
【０１５７】
シナリオ事前チェック／修正システム５０は、シナリオ事前チェック部５０１とシナリオ事前修正部５０２により構成される。
【０１５８】
シナリオ生成システム３０は、図１３で示したものとは、以下の点が異なっている。
【０１５９】
シナリオ生成部３０２は、操作シナリオを生成する際に、画面全体画像情報記憶部３０７内の画面全体画像情報を取り込んで、シナリオに加える。すなわち、シナリオ生成部３０２は、比較対象画像情報記憶部３０１内の比較対象画像情報、イベントログ記憶部３０６内のイベントログ及び画面全体画像情報記憶部３０７内の画面全体画像情報に基づいて、操作シナリオを生成してシナリオ記憶部１１２−２に記録する。これに伴い、シナリオ記憶部１１２−２は、あるステップ番号に対し、操作画面上の操作に伴い発生するイベント情報、操作画面上の全体画像の画像情報、及び前記操作画面から抽出された比較対象の画像情報、を互いに関連付けてなる操作シナリオを記憶する。ここで、シナリオ記憶部１１２−２内の操作シナリオの内容例を、図３４に示す。図７との違いは、画面全体画像の項目が追加されていることである。
【０１６０】
シナリオ事前チェック部５０１は、図３５に示すように、シナリオステップ情報抽出部５０１１、マッチング判定部５０１４及び複数画像警告部５０１５を備えている。
【０１６１】
ここで、シナリオステップ情報抽出部５０１１は、シナリオ記憶部１１２−２内の操作シナリオから、あるステップ番号に対して全体画像の画像情報５０１２を抽出してマッチング判定部５０１４に送出する機能と、シナリオ記憶部１１２−２内の操作シナリオから、あるステップ番号に対して比較対象の画像情報５０１３を抽出してマッチング判定部５０１７に送出する機能とをもっている。
【０１６２】
マッチング判定部５０１４は、シナリオステップ情報抽出部５０１１により抽出された全体画像の画像情報の中で、シナリオステップ情報抽出部５０１１により抽出された比較対象の画像情報を一意に決定できるか否かを判定する機能と、判定の結果、否の場合、当該否であることを表示するための複数画像警告部５０１５を起動する機能をもっている。
【０１６３】
複数画像警告部５０１５は、マッチング判定部５０１４に起動されると、警告画面を表示する機能をもっている。
【０１６４】
シナリオ事前修正部５０２は、図３６に示すように、画面全体画像抽出部５０２１、画面全体画像表示部５０２２、比較対象画像範囲指示部５０２３、比較対象画像範囲抽出部５０２４及び比較対象画像記憶部５０２５を備えている。
【０１６５】
ここで、画面全体画像抽出部５０２１は、警告画面が表示されたステップ番号に対し、操作シナリオから全体画像の画像情報を抽出する機能をもっている。
【０１６６】
画面全体画像表示部５０２２は、画面全体画像抽出部５０２１により抽出された全体画像を表示する機能をもっている。
【０１６７】
比較対象画像範囲指示部５０２３は、操作者の操作により、２つの位置座標を対角線の頂点にした再抽出範囲の指示、又は当該再抽出範囲の指示に続く記録指示を比較対象画像範囲抽出部５０２４に入力する機能をもっている。
【０１６８】
比較対象画像範囲抽出部５０２４は、全体画像抽出表示部５０２２による全体画像の表示中、イベント情報が２つの位置座標を対角線の頂点にした再抽出範囲の指示のとき、当該イベント情報に基づき、表示中の全体画像から比較対象の画像を抽出する範囲を示す抽出範囲情報を抽出する機能と、イベント情報が再抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、表示中の全体画像の画像情報の座標値と当該抽出した抽出範囲情報とをもとに全体画像の画像情報から比較対象の画像情報を抽出する機能と、当該抽出した比較対象の画像情報を比較対象画像記憶部５０２５に書き込む機能と、画面全体画像表示部５０２２により全体画像の画像情報が表示された操作シナリオにおける比較対象の画像情報を、比較対象画像記憶部５０２５内の比較対象の画像情報により上書き更新する機能とをもっている。
【０１６９】
比較対象画像記憶部５０２５は、比較対象画像範囲抽出部５０２４から読出／書込可能な記憶装置であり、比較対象の画像情報が一時的に記憶される。
【０１７０】
次に、以上のように構成されたシナリオ生成システム及びシナリオ事前チェック／修正システムの動作を説明する。
【０１７１】
図３８に示す処理フローにおいて、ステップＳ３１では、シナリオ生成システム５０は、操作者の操作により起動され、操作シナリオを生成してシナリオ記憶部１１２−２に記録する。
【０１７２】
ステップＳ３２では、シナリオ事前チェック／修正システム５０は、操作者の操作により、起動される。
【０１７３】
ステップＳ３３では、シナリオ事前チェック部５０１は、シナリオ内の判定対象のステップを判定する。また、シナリオステップ情報抽出部５０１１は、シナリオ記憶部１１２−２内の操作シナリオの各ステップを順次選択して、そのステップに含まれる情報を抽出する。そしてその中から、画面全体画像情報５０１２及び比較対象画像情報５０１３を抽出して、マッチング判定部５０１４に送る。
【０１７４】
ステップＳ３４では、マッチング判定部５０１４が、画面全体画像情報５０１２の中で、比較対象画像情報５０１３を一意に決定できるか否かを判定する。ここで、一意に決定できるというのは、画面全体画像情報５０１２の中で、比較対象画像情報５０１３と合致する部分が、唯一であるという意味である。例えば図４に示すスケジュール表示画面２１が画面全体画像情報５０１２となっている状態において、比較対象として抽出した画像が、図３１に示す、文字イメージの一部が欠落した「精算システム」である状況では、この比較対象として抽出した画像は、「旅費精算システム」であるか「経費精算システム」であるか一意に決定できない、と判定される。
【０１７５】
マッチング判定部５０１４は、画面全体画像情報５０１２の中から、比較対象画像情報と等しいサイズの画像を含むあらゆる部分を取り出して、それらを比較対象画像情報と、全ピクセルの色の情報が合致するかを検査すれば良い。なお、ここで言う「合致」は、第１の実施形態で説明した画像比較部１３３と同一の基準とする。
【０１７６】
マッチング判定部５０１４が一意に決定できない、と判定した場合、複数画像警告部５０１５を起動する。複数画像警告部５０１５は、操作者に一意に決定できなかった旨を警告画面を用いて指摘するとともに、画面全体画像情報５０１２を表示し、その中のどの部分に比較対象画像情報５０１３と合致する画像が有ったかを、比較対象画像情報５０１２に表示して、その場所を操作者に操作者に知らしめる。例えば、画面全体画像情報５０１２の中に、比較対象画像情報５０１３と合致した箇所において、比較対象画像情報５０１３の輪郭と同一の大きさの枠を表示するといった表示方法が考えられる。
【０１７７】
ステップＳ３５では、マッチング判定部５０１４が一意に決定できない、と判定した場合、シナリオ事前修正部５０２が自動的に起動され、操作者がシナリオの修正をするためのユーザーインターフェースを提供する。
【０１７８】
シナリオ事前修正部５０２は、起動されると、該当ステップを操作者の操作に応じて修正する。具体的には、画面全体画像抽出部５０２１は、シナリオ記憶部１１２−２内の操作シナリオの中から修正すべきステップに含まれる画面全体画像情報５０１２を抽出し、画面全体画像表示部５０２２へ送付する。
【０１７９】
画面全体画像表示部５０２２は、操作者が視認できる形で、画面全体画像情報５０１２を画像として表示する。
【０１８０】
比較対象画像範囲指示部５０２３は、操作者が、表示された画面全体画像情報５０１の画像の上で、マウスを用いて比較対象画像範囲を指示できる環境を提供する。即ち、表示された画面全体画像情報５０１の画像の上で、操作者は、例えば、マウスにてドラッグアンドドロップを行う。マウスのドラッグが開始された座標と、ドロップが行われた座標とを、対角線をなす両方の頂点とするような長方形を比較対象画像範囲の指示とする。
【０１８１】
比較対象画像範囲指示部５０２３は、上記のようにして操作者が指示した比較対象画像範囲に関する座標情報を、比較対象画像範囲抽出部５０２４に送付する。
【０１８２】
比較対象画像範囲抽出部５０２４は、画面全体画像の中から、比較対象画像範囲に含まれる部分の画像情報を抽出し、比較対象画像記憶部５０２５に書き込む。しかる後、比較対象画像範囲抽出部５０２４は、比較対象画像記憶部５０２５内の比較対象の画像情報を、シナリオ記憶部１１２−２内の操作シナリオの該当ステップの比較対象画像に対応する情報に対して、上書きする。
【０１８３】
例えば、図３１の画像が、一意に決定しないことが指摘されている状況では、操作者は、比較対象画像範囲指示部５０２において、もう少し水平方向に広い範囲の比較対象画像範囲をマウスで指定することにより、図３７のような比較対象画像を得る。
【０１８４】
シナリオ事前修正部５０２での修正作業が完了すると、また自動的に、シナリオ事前チェック部５０１が起動され、ステップＳ３４に戻り、上記で修正した操作シナリオのステップが、比較対象画像が一意に特定されるかを判定する。
【０１８５】
次に、ステップＳ３６では、シナリオ事前チェック部５０１は、シナリオ記憶部１１２−２内の操作シナリオの全ステップの判定を完了したか否かを判定し、完了した場合には、処理を終了する。完了していない場合には、シナリオ事前チェック部５０１は、ステップＳ３７に進む。
【０１８６】
ステップＳ３７では、シナリオ事前チェック部５０１は、シナリオ記憶部１１２−２内の操作シナリオの判定対象のステップを＋１行更新し、ステップＳ３３に戻る。
【０１８７】
以上の操作によって、操作者は、操作シナリオを実行する以前に、より少ない労力でシナリオの誤りを修正することが可能となる。
【０１８８】
上述したように本実施形態によれば、抽出された比較対象の画像情報を一意に決定できるか否かを判定し、否の場合、警告画面を表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
【０１８９】
なお、本実施形態は、図３８に示す手順に限らず、例えば図３９に示すように、全てのステップをチェックした後に、エラーに該当するステップを修正するように変形してもよい。すなわち、ステップＳ３５に代えて、ステップＳ３５ａでは、該当ステップを赤く表示してステップＳ３６に進む。なお、ステップＳ３５ａは赤く表示する場合に限らず、任意の色や印又は点滅表示等のように、該当ステップを区別可能な表示であれば適用可能である。さらに、ステップＳ３５ａは表示を変える代わりに、エラーに該当するステップの番号やそれと特定できる情報（タイトル）などをリストとして表示しても良い。また、ステップＳ３６の判定の結果、全ステップを判定完了した場合、ステップＳ３８に進む。ステップＳ３８では、シナリオ事前修正部５０２が自動的に起動され、ステップＳ３５ａで赤く表示された該当ステップについて、操作者がシナリオの修正をするためのユーザーインターフェースを提供する。ステップＳ３８において、全ての該当ステップの操作シナリオが修正されたとき、シナリオ事前修正部５０２は処理を終了する。
【０１９０】
また、本実施形態は、チェックする対象を全てのステップとせず、１個または複数のステップのみを対象としても良い。
【０１９１】
対象とするべきステップの選定方法は、特に限定されるものではない。例えば、操作者が明示的に対象ステップを指定しても良いし、シナリオ事前チェック／修正システム５０がシナリオ中のステップを順にチェックしていき、特定の数だけエラーが発見されるまでのステップの集合としても良い。
【０１９２】
また、上記各実施形態は、負荷試験に適用する場合に限定されず、例えば、機能試験、監視又は情報収集などのように、ＧＵＩ機能を持つアプリケーションを自動操作する任意の用途に適用でき、同様の作用効果を得ることができる。  
例えば機能試験に適用する場合を述べる。ソフトウェア開発の過程において、開発対象のソフトウェアがＧＵＩ機能を持つ場合、ＧＵＩ操作に対するソフトウェアの挙動を検証する、所謂、機能試験が実施される。各実施形態は、この機能試験の際に、操作者に代わってＧＵＩを操作するツールの用途に適用できる。これに加え、機能試験の実施中、ソフトウェアのバグによる動作異常が発生することがある。この動作異常がソフトウェア内部の処理とＧＵＩ操作との微妙なタイミングによって生じる場合、所定のＧＵＩ操作を繰り返し実行して動作異常を再現させる必要がある。このような機能試験中のＧＵＩ操作の繰り返し実行にも、各実施形態を同様に適用できる。
【０１９３】
次に、監視に適用する場合を述べる。遠隔にあるＷＷＷ（world wide web）ブラウザのＧＵＩを定期的に操作して監視対象のＷＷＷサーバにアクセスし、このアクセス結果の検証により、当該ＷＷＷサーバが正常に運用されているか否かを定期的に監視する場合がある。このような監視の際に、ＷＷＷブラウザのＧＵＩ機能を操作者に代わって定期的に自動操作する用途にも各実施形態を適用できる。
【０１９４】
同様に、情報収集に適用する場合を述べる。遠隔のＷＷＷサーバからＷＷＷブラウザのＧＵＩに定期的にアクセスし、ＷＷＷブラウザから定期的に情報を収集する場合がある。このような情報収集の際に、ＷＷＷブラウザのＧＵＩを操作者に代わって定期的に自動操作する用途にも各実施形態を適用できる。
【０１９５】
上述した用途以外にも、ＧＵＩ機能を持つアプリケーションを、操作者に代わって操作する全ての用途において、上記各実施形態を適用することができる。
【０１９６】
また、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１９７】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１９８】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０１９９】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２００】
また、記憶媒体は１つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２０１】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２０２】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２０３】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０２０４】
【図１】本発明の第１の実施形態に係る、負荷試験を行うシステム全体の構成を示すブロック図である。
【図２】上記第１の実施形態に係る負荷発生システムの構成を示すブロック図である。
【図３】上記第１の実施形態に係る比較対象特定部の構成を示すブロック図である。
【図４】上記第１の実施形態に係る、クライアントアプリケーションが画面に表示している画像情報の具体例を示す図である。
【図５】上記第１の実施形態に係るスケジュール表示画面の階層例を示す図である。
【図６】上記第１の実施形態に係るスケジュール表示画面の座標軸を示す図である。
【図７】上記第１の実施形態に係る操作シナリオの一部記述例を示す図である。
【図８】上記第１の実施形態に係る画面遷移判定画像の具体例を示す図である。
【図９】上記第１の実施形態に係る比較対象画像の具体例を示す図である。
【図１０】上記第１の実施形態に係る比較対象画像の具体例を示す図である。
【図１１】上記第１の実施形態に係る比較対象画像の具体例を示す図である。
【図１２】本発明の第２の実施形態に係る、シナリオを作成するシステム全体の構成を示すブロック図である。
【図１３】上記第２の実施形態に係るシナリオ生成システムの構成を示すブロック図である。
【図１４】上記第２の実施形態に係る処理の手順を示すフローチャートである。
【図１５】上記第２の実施形態に係る処理の特徴を説明するための図である。
【図１６】上記第２の実施形態に係る処理の特徴を説明するための図である。
【図１７】本発明の第３の実施形態に係る複数のウィンドウ画面の具体例を示す図である。
【図１８】上記第３の実施形態に係る比較対象画像の具体例を示す図である。
【図１９】上記第３の実施形態に係る複数のウィンドウ画面の具体例を示す図である。
【図２０】上記第３の実施形態に係るスケジュール表示画面の具体例を示す図である。
【図２１】上記第３の実施形態に係る比較対象画像の具体例を示す図である。
【図２２】上記第３の実施形態に係る抽出範囲の具体例を示す図である。
【図２３】上記第３の実施形態に係る抽出範囲の具体例を示す図である。
【図２４】上記第３の実施形態に係るシナリオ生成システムの構成を示すブロック図である。
【図２５】上記第３の実施形態に係る抽出範囲の具体例を示す図である。
【図２６】本発明の第４の実施形態に係るシナリオ生成システムの構成を示すブロック図である。
【図２７】上記第４の実施形態に係る画面全体画像情報、ウィンドウ範囲情報及び重なり範囲情報の具体例を示す図である。
【図２８】上記第４の実施形態に係る画面全体画像情報、ウィンドウ範囲情報及び重なり範囲情報の具体例を示す図である。
【図２９】上記第４の実施形態に係る画面全体画像情報、ウィンドウ範囲情報及び重なり範囲情報の具体例を示す図である。
【図３０】上記第４の実施形態に係る画面全体画像情報、ウィンドウ範囲情報及び重なり範囲情報の具体例を示す図である。
【図３１】本発明の第５の実施形態に係る比較対象画像の具体例を示す図である。
【図３２】上記第５の実施形態に係るシナリオ事前チェック／修正システム及びその周辺構成を示す模式図である。
【図３３】上記第５の実施形態に係るシナリオ生成システムとシナリオ事前チェック／修正システムとの関係を示すブロック図である。
【図３４】上記第５の実施形態に係る操作シナリオの一部記述例を示す図である。
【図３５】上記第５の実施形態に係るシナリオ事前チェック部の構成を示すブロック図である。
【図３６】上記第５の実施形態に係るシナリオ事前修正部の構成を示すブロック図である。
【図３７】上記第５の実施形態に係る比較対象画像の具体例を示す図である。
【図３８】上記第５の実施形態に係る処理の手順を示すフローチャートである。
【図３９】上記第５の実施形態に係る処理の手順の変形例を示すフローチャートである。
【符号の説明】
【０２０５】
１…情報端末（ＰＣ）、２…サーバ、３…操作者、１０…負荷発生システム、１１制御部、１２…画面遷移判定部、１３…比較対象特定部、１４…操作イベント発生部、１５…画像情報取得部、２０…クライアントアプリケーション実行部、３０…シナリオ生成システム、４０…オペレーティングシステム（ＯＳ）実行部、１１１…操作実行制御部、１１２…操作シナリオ、１３１…比較対象特定制御部、１３２…比較対象判定部、１３３…画像比較部、１３４…相対位置関係分析部、３０２…シナリオ生成部、３０３…比較対象範囲抽出部、３０４…形状・サイズ変化部、３０５…マッチング判定部、３０８…イベント検出部、３０９…イベント記録部、３１０…画面画像記録部、３１１…画面画像記録指示部。
【図１】
0004896909.tif 000002
【図２】
0004896909.tif 000003
【図３】
0004896909.tif 000004
【図４】
0004896909.tif 000005
【図５】
0004896909.tif 000006
【図６】
0004896909.tif 000007
【図７】
0004896909.tif 000008
【図８】
0004896909.tif 000009
【図９】
0004896909.tif 000010
【図１０】
0004896909.tif 000011
【図１１】
0004896909.tif 000012
【図１２】
0004896909.tif 000013
【図１３】
0004896909.tif 000014
【図１４】
0004896909.tif 000015
【図１５】
0004896909.tif 000016
【図１６】
0004896909.tif 000017
【図１７】
0004896909.tif 000018
【図１８】
0004896909.tif 000019
【図１９】
0004896909.tif 000020
【図２０】
0004896909.tif 000021
【図２１】
0004896909.tif 000022
【図２２】
0004896909.tif 000023
【図２３】
0004896909.tif 000024
【図２４】
0004896909.tif 000025
【図２５】
0004896909.tif 000026
【図２６】
0004896909.tif 000027
【図２７】
0004896909.tif 000028
【図２８】
0004896909.tif 000029
【図２９】
0004896909.tif 000030
【図３０】
0004896909.tif 000031
【図３１】
0004896909.tif 000032
【図３２】
0004896909.tif 000033
【図３３】
0004896909.tif 000034
【図３４】
0004896909.tif 000035
【図３５】
0004896909.tif 000036
【図３６】
0004896909.tif 000037
【図３７】
0004896909.tif 000038
【図３８】
0004896909.tif 000039
【図３９】
0004896909.tif 000040