以下、図面を用いながら、本発明の実施の形態について詳細に説明する。図1は、本発明におけるWEBアプリケーションテスト装置100および動作テスト対象となるWEBアプリケーション運用環境サーバ200の全体構成図を示したものである。
はじめに、本発明におけるWEBアプリケーションテスト装置100が動作テストの対象とするWEBアプリケーション運用環境サーバ200について説明する。
本発明におけるWEBアプリケーションテスト装置100が動作テストの対象とするWEBアプリケーション運用環境サーバ200は、少なくとも、1以上の画面プログラムファイルが配布されているWEBサーバ201と、WEBアプリケーションの有する画面プログラムの一覧を記憶したプログラムマスタ記憶部202と、WEBアプリケーションから出力されるエラーコードの一覧を記憶したエラーコードマスタ記憶部203とから構成されるWEBアプリケーション運用環境サーバ200である。
WEBサーバ201は動作テストの対象となるWEBアプリケーションを動作させるためのWEBアプリケーションサーバ装置である。動作テスト対象となるWEBアプリケーションはWEBサーバ201に配布される。WEBサーバ201にWEBアプリケーションテスト装置やクライアントWEBブラウザなどからWEBアプリケーションの動作リクエストが送信されると、動作リクエストを受けたWEBサーバ201はWEBアプリケーションを実行し、実行結果を動作リクエストの送信元に返却する。
図2はWEBサーバ201に配布されたWEBアプリケーションの画面プログラムの格納イメージを表したものである。図2で表されているように、例えば、WEBサーバ201には、D:¥inetpub¥wwwrootのフォルダにTOP0010.aspxと表示された画面プログラム名以下の複数の画面プログラム名のWEBアプリケーションが格納される。
プログラムマスタ記憶部202には、WEBアプリケーションの有する画面プログラムの一覧が記憶される。プログラムマスタはWEBアプリケーションの構成の一つであり、通常はWEBアプリケーションと同様にWEBアプリケーションの開発者によって作成され、プログラムマスタ記憶部202に記憶されている。
プログラムマスタ記憶部202はWEBサーバ201内に保持するようになっていてもよいし、記憶装置をWEBサーバ201とは別にデータベースサーバ装置のような記憶装置を構築し記憶装置に保持するようにしてもよい。
図3はプログラムマスタ記憶部202に記憶されているプログラムマスタのデータ構造の一例を表したものである。プログラムマスタ記憶部202にはプログラムマスタとして、例えば「画面ID」「画面ファイル名」「画面機能」のデータが保持される。「画面ID」は画面プログラムを一意に識別するための画面IDが格納され、「画面ファイル名」には画面IDに対応する画面プログラムのファイル名が格納され、「画面機能」には画面IDに対応する画面プログラムの有する機能の説明が格納される。
エラーコードマスタ記憶部203には、WEBアプリケーションから出力されるエラーコードの一覧が記憶される。エラーコードマスタはWEBアプリケーションの構成の一つであり、通常はWEBアプリケーションと同様にWEBアプリケーションの開発者によって作成され、エラーコードマスタ記憶部203に記憶されている。
エラーコードマスタ記憶部203はWEBサーバ201内に保持するようになっていてもよいし、記憶装置をWEBサーバ201とは別にデータベースサーバ装置のような記憶装置を構築し記憶装置に保持するようにしてもよい。
図4はエラーコードマスタ記憶部203に記憶されているエラーコードマスタのデータ構造の一例を表したものである。エラーコードマスタ記憶部203にはエラーコードマスタとして、例えば「エラーコード」「エラーメッセージ」のデータが保持される。「エラーコード」はエラーメッセージを一意に識別するためのエラーコードが格納され、「エラーメッセージ」はエラーコードに対応するエラーメッセージが格納される。
以上がWEBアプリケーションテスト装置100の動作テストの対象となるWEBアプリケーション運用環境サーバ200の構成となる。次に、WEBアプリケーションテスト装置100の構成について説明する。
本発明におけるWEBアプリケーションテスト装置100は、プログラム一覧取得部101と、エラーコード取得部102と、レスポンス取得部103と、レスポンス解析部104と、セッション生成部105と、テスト結果表示部106と、テスト結果出力部107と、対象プログラム一覧記憶部108と、対象エラーコード一覧記憶部109と、テスト結果記憶部110と、テスト設定記憶部111とから構成される。
WEBアプリケーションテスト装置100とWEBアプリケーション運用サーバ200は、インターネット回線やイントラネットLAN回線などの電器通信回線を通じて接続される。
また、WEBアプリケーションテスト装置100とWEBアプリケーション運用サーバ200の間には負荷分散装置やプロキシ装置などのWEBアプリケーションの利用を支援する装置が設置されていてもよい。
次に、WEBアプリケーションテスト装置100の各構成要素について説明する。まず、テスト設定記憶部111には、WEBアプリケーションテスト装置100がWEBアプリケーション運用環境サーバ200で動作するWEBアプリケーションの動作テストを行うために必要な設定情報が記憶されている。
図5はテスト設定記憶部111に記憶されているテスト設定のデータ構造の例である。テスト設定は「設定値」と「設定項目」のペアで記録される。例えば、「設定値」として“BaseURL”、「設定項目」として“http://www.hanbai.co.jp”が記憶されている場合は、WEBサーバ201に配布されているWEBアプリケーションのURLがhttp://www.hanbai.co.jpであることが設定されている。
テスト設定記憶部111に記憶されている設定値と設定項目は、後に説明するWEBアプリケーションテスト装置100の各構成要素の処理部で処理を行う際に参照され利用される。どのような設定値と設定項目が記憶されているかについて、WEBアプリケーションテスト装置100の各構成要素の処理部の説明の記述と併せて後述する。
次に、プログラム一覧取得部101について説明する。プログラム一覧取得部101は、WEBアプリケーション運用環境サーバ200のWEBサーバ201の画面プログラム格納フォルダまたはプログラムマスタ記憶部202のプログラムマスタから動作テストの対象とするWEBアプリケーションの画面プログラムのファイル名一覧を取得する処理部である。
例えば、WEBサーバ201に画面プログラムが図2に表されているように格納されている場合、プログラム一覧取得部101は、例えばFTP(FileTransferProtocol)を利用してWEBサーバ201に接続して、画面プログラムのファイル名一覧を取得する。
より具体的には、プログラム一覧取得部101は、テスト設定記憶部よりWEBサーバ201にFTPで接続するための接続情報の設定値として「FTPホスト名」「FTP接続ID」「FTPパスワード」の設定項目の値をそれぞれ取得する。例えば、図5を例にすると、「FTPホスト名」として“ftp.hanbai.co.jp”、「FTP接続ID」として“administrator”、「FTPパスワード」として“adminpass”の設定項目の値を取得する。
そして、取得したFTPホスト名のftp.hanbai.co.jpにFTPで接続を行い、FTP接続IDとFTPパスワードで認証を行う。そして、画面プログラムが図2に表されているように格納されている場合は、D:¥inetpub¥wwwroot¥フォルダに配置されている画面プログラムのファイル名の一覧として“TOP0010.aspx”“URI0010.aspx”・・・を取得することによって画面プログラムのファイル名一覧を取得することができる。
また、プログラムマスタ記憶部202がデータベースとして構成されており、図3で表されているようなプログラムマスタが記憶されている場合、プログラム一覧取得部101は、プログラムマスタが記憶されているデータベースに接続することによって画面プログラム一覧を取得する。
より具体的には、プログラム一覧取得部101は、テスト設定記憶部よりプログラムマスタが記憶されているプログラムマスタ記憶部202のデータベースに接続するための接続情報の設定値として「DBホスト名」「DB名」「DBID」「DBパスワード」の設定項目の値をそれぞれ取得する。
例えば、図5を例にすると、「DBホスト名」として“db.hanbai.co.jp”、「DB名」として“hanbaidb”、「DBID」として“dbuser”、「DBパスワード」として“dbpass”の設定項目の値を取得する。そして、取得したDBホスト名のdb.hanbai.co.jpのDB名がhanbaidbのデータベースにデータベース接続プロトコルで接続を行い、DBIDとDBパスワードで認証を行う。
そして、プログラムマスタが図3に表されているように格納されている場合は、ファイル名の一覧を検索して、ファイル名の一覧として“TOP0010.aspx”“URI0010.aspx”・・・を取得することによって画面プログラムのファイル名の一覧を取得することができる。
プログラム一覧取得部101で取得された画面プログラムのファイル名の一覧は対象プログラム一覧記憶部108に記録される。図6は対象プログラム一覧記憶部108に記憶される動作テスト対象の画面プログラムのファイル名一覧が格納されたデータ構造を表したものである。動作テスト対象の画面プログラムのファイル名一覧は図6に表されているように、プログラム一覧取得部101で取得された画面プログラムのファイル名の一覧がそれぞれ記録される。
次に、エラーコード取得部102について説明する。エラーコード取得部102はWEBアプリケーション運用環境サーバ200のエラーコードマスタ記憶部203のエラーコードマスタから動作テストの対象となるWEBアプリケーションのエラーコード一覧を取得する処理部である。
例えば、エラーコードマスタ記憶部203がデータベースとして構成されており、図4で表されているようなエラーコードマスタが記憶されている場合、エラーコード取得部102は、エラーコードマスタが記憶されているデータベースに接続することによってエラーコード一覧を取得する。
より具体的には、エラーコード取得部102は、テスト設定記憶部よりエラーコードマスタが記憶されているエラーコードマスタ記憶部203のデータベースに接続するための接続情報を取得し接続することにより、図4に表されているようなエラーコードマスタから「エラーコード」の一覧を取得する。
エラーコード取得部102で取得されたエラーコードの一覧は対象エラーコード一覧記憶部109に記録される。図7は対象エラーコード一覧記憶部109に記録される対象エラーコード一覧のデータ構造を表したものである。エラーコード一覧には図7に表されているように「エラーコード」「マッチングパターン」の情報が記録される。「エラーコード」とはエラーコード取得部102で取得したエラーコードであり、「マッチングパターン」はレスポンス解析部104でレスポンスデータからエラーコードを抽出する場合のマッチング抽出条件を正規表現で表したものである。
通常、マッチングパターンはエラーコードと同一文字列であるが、取得されたエラーコードに対応づけて任意の文字列もエラーとして抽出したい場合は、マッチングパターンとして正規表現を定義することができる。
例えば、図7において「エラーコード」に“ERR10010”、「マッチングパターン」に“ERR10010{.*}”と記録されている場合は、レスポンスデータ解析部104で抽出対象となるエラーコードは“ERR10010”または、正規表現“ERR10010{.*}”に該当する文字列であることを表す。
また、対象エラーコード一覧記憶部109には、エラーコード取得部102で取得されたエラーコードの一覧だけでなく、WEBサーバ201のレスポンスデータのヘッダ情報に含まれるHTTPステータスコードのうち、レスポンス解析部104で抽出するHTTPステータスコードの一覧も記憶される。図8はレスポンス解析部104で抽出対象となるHTTPステータスコードの一覧を記憶する抽出対象ステータスコード一覧のデータ構造の例を表したものである。
図8においては抽出対象ステータスコード一覧として「コード」「ステータス」「意味」が記憶されている。「コード」は抽出対象となるHTTPステータスコードを、「ステータス」はコードに対応するHTTPステータスを、「意味」はHTTPステータスの内容をそれぞれ意味する。例えば、「コード」に“200”が、「ステータス」に「OK」が、「意味」に“リクエスト処理成功”が記録されている場合は、レスポンス解析部104で抽出対象となるHTTPステータスコードは“200”であり、抽出対象のHTTPステータスコードのHTTPステータスは“OK”で、その意味は“リクエスト処理が成功”したということを表す。
次に、セッション生成部105について説明する。セッション生成部105は、WEBサーバ201で管理されるセッション情報を識別するためのセッション識別子を生成する処理部である。セッション情報とはWEBアプリケーションを利用する利用者ごとに作成されるWEBアプリケーション利用者の管理情報である。WEBアプリケーションを利用する利用者を識別するために、通常はWEBアプリケーションのログイン処理機能等をWEBサーバ201で実行することによってセッション情報がWEBサーバ201内に作成される。
そして、利用者にはセッション識別子が返却される。利用者はWEBアプリケーションにリクエストを送信する場合はセッション識別子を併せて送信することによって、WEBアプリケーションを実行する際にWEBアプリケーション内に保存されているセッション情報を利用することができるようになる。
WEBアプリケーションによってはセッション情報が生成されていない利用者からのリクエスト処理は行わないようになっているものがあるため、WEBアプリケーションテスト装置100では、セッション生成部105で必要に応じてWEBアプリケーションのログイン処理等の動作を、動作テストを行う前に行い、セッション情報の作成およびセッション識別子の取得を行う。
具体的にセッション生成部105で行うセッション情報の作成およびセッション識別子の取得処理について説明する。図10はWEBアプリケーションのログイン機能をWEBブラウザで表示した場合の画面例を示したものである。WEBアプリケーションをWEBブラウザで利用する場合は、図10に示すようなログイン画面を最初に表示して、ログイン画面で「ログインID]「パスワード」等の情報を入力し、ログイン処理のリクエストをWEBサーバ201に送信することによってログイン処理が行われ、セッション情報の作成が行われる。そして、セッション識別子がWEBブラウザに返却される。
通常、上記の様な処理はWEBブラウザを利用者が操作して行うものであるが、セッション生成部105では、同様の処理を自動的に行うことによってセッション情報の作成およびセッション識別子の取得を行う。
より具体的には、セッション生成部105はセッション情報の生成およびセッション識別子の取得処理を行い場合は、まず始めに、テスト設定記憶部111よりWEBアプリケーションのログイン処理機能を行うURLの情報を取得する。
例えば、図5のテスト設定のデータ構造の例においては「設定値」“LoginURL”に対応する「設定項目」“http://www.hanbai.co.jp/Login.aspx”がWEBアプリケーションのログイン処理機能を行うログインURLとなる。併せてログイン処理を行う為に必要なパラメータ値をテスト設定記憶部111より取得する。図10に示されるようなログイン画面においては、「ログインID」「パスワード」「業務ID」がそれぞれ必要となる。
例えば、図5のテスト設定のデータ構造の例においては「設定値」“ログインID”に対応する「設定項目」“authID=user001”、「設定値」“パスワード”に対応する「設定項目」“authPassword=pass945”、「設定値」“業務ID”に対応する「設定項目」“typeID=HANBAI”がそれぞれ取得される。
そして、取得したログインURLに基づいてWEBサーバ201にログイン処理のリクエストを、取得したパラメータ“authID=user001”“authPassword=pass945”“typeID=HANBAI”と併せて送信することによって、WEBサーバ201でWEBアプリケーションのログイン処理が実行され、WEBサーバ201にセッション情報が作成される。
例えば、図14は取得したログインURL“http://www.hanbai.co.jp/Login.aspx”に取得したパラメータと共にWEBサーバ201に送信するログイン処理リクエスト文字列の例である。
図15のようなリクエスト文字列をWEBサーバ201に送信すると、WEBサーバ201は要求されたログインURLの処理を行い、セッション情報を作成する。そして、WEBサーバ201より図16のようなレスポンス文字列がセッション生成部105に返却される。セッション生成部105はレスポンス文字列よりセッション識別子を読み取る。
例えば、図16はCookie情報でセッション識別子を管理する場合のレスポンス文字列の例であり、この場合においては4行目のseession=で始まる文字列がセッション識別子となる。このように、セッション識別子を取得し、テスト設定記憶部111にWEBアプリケーションのログイン処理に必要な情報を予め記憶させておくことによって、セッション生成部105では自動的にWEBアプリケーションのログイン処理を行い、セッション情報の作成およびセッション識別子の取得を行う事が可能となる。
次に、レスポンス取得部103について説明する。レスポンス取得部103は、対象プログラム一覧記憶部108から動作テストを行う画面プログラムのファイル名の一覧を取得し、取得した画面プログラムのファイル名それぞれに対して動作リクエストをWEBサーバ201に送信し、WEBサーバ201からレスポンスデータを取得する処理を行う。
レスポンス取得部103では、WEBサーバ201に動作リクエストを送信する際に、セッション生成部105で取得されたセッション識別子を併せて送信する。また、WEBサーバ201から取得したレスポンスデータから動作管理情報の取得を行い、WEBサーバ201に動作リクエストを送信する場合は直前に取得された動作管理情報を併せてWEBサーバ201に送信する。
このように、WEBサーバ201に動作リクエストを送信する際に、セッション識別子や動作管理情報を併せて送信することにより、WEBアプリケーションの実行にセッション情報が生成されていることが必要なWEBアプリケーションや、直前の動作状態を動作管理情報で管理するようなWEBアプリケーションであっても、正しく動作させ、レスポンス情報を取得することが可能となる。WEBサーバ201への動作リクエストの送信方法については、図面および処理フローチャートを用いて後述する。
次に、レスポンス解析部104について説明する。レスポンス解析部104は、レスポンス取得部103で取得したWEBサーバ201からのWEBアプリケーション実行結果のレスポンスデータの解析を行う処理部である。レスポンス解析部104ではレスポンスデータのヘッダ情報およびレスポンスに含まれるHTMLデータの情報に対象エラーコード一覧記憶部109に記憶されている対象エラーコードまたは対象HTTPステータスコードが含まれているかどうかを解析することによって、動作リクエストしたWEBアプリケーションの機能が正常に動作しているかどうかを解析する。解析した結果は、テスト結果記憶部110に記録される。
図9はテスト結果記憶部110に記録されるテスト結果のデータ構造の例を表したものである。テスト結果として「画面ファイル名」「実行結果」「アプリケーションエラーコード」「HTTPコード」「HTTPステータス」のそれぞれの値が記憶される。「画面ファイル名」には動作テストを行った画面ファイル名が、「実行結果」には動作テストを行った結果が、「アプリケーションエラーコード」にはレスポンスデータを解析した結果アプリケーションエラーコードが検出された場合に、そのエラーコードが、「HTTPコード」にはレスポンスデータを解析した結果取得されたHTTPステータスコードが、「HTTPステータス」にはHTTPコードに対応するHTTPステータス名が、それぞれ記録される。
例えば、TOP0010.aspxの画面プログラムに対する動作リクエストのレスポンスデータをレスポンス解析部104で解析した結果、HTTPステータスコードとして200が抽出され、アプリケーションエラーコードは抽出されなかった場合は、テスト結果記憶部110には、「画面ファイル名」に“TOP0010.aspx”が、「HTTPコード」に“200”が、「HTTPステータス」に“OK”が記録される。そして、HTTPステータスはOKであり、アプリケーションエラーコードも抽出されていないことから、「実行結果」には“OK”が記録される。
また、URI0010.aspxの画面プログラムに対する動作リクエストのレスポンスデータをレスポンス解析部104で解析した結果、HTTPステータスコードとして200が抽出され、アプリケーションコードとしてERR10010が抽出された場合は、テスト結果記憶部110には、「画面ファイル名」に“URI0010.aspx”が、「HTTPコード」に“200”が、「HTTPステータス」に“OK”が、「アプリケーションエラーコード」には“ERR10010”が記録される。そして、HTTPステータスはOKであり、アプリケーションエラーコードが抽出されていることから「実行結果」には“アプリエラー”が記録される。
また、URI0020.aspxの画面プログラムに対する動作リクエストのレスポンスデータをレスポンス解析部104で解析した結果、HTTPステータスコードとして400が抽出され、アプリケーションエラーコードは抽出されなかった場合は、テスト結果記憶部110には、「画面ファイル名」に“URI0020.aspx”が、「HTTPコード」に“400”が、「HTTPステータス」に“NotFound”が記録される。そして、HTTPステータスがOKではなくNotFoundエラーであり、アプリケーションエラーコードも抽出されていないことから、「実行結果」には“HTTPエラー”が記録される。
以上が、レスポンス解析部104とテスト結果記憶部110の説明となる。レスポンス解析部104におけるレスポンスデータの解析方法については、図面および処理フローチャートを用いて後述する。
次に、テスト結果表示部106について説明する。テスト結果表示部106は、テスト結果記憶部110に記憶されたテスト結果を表示する表示部である。例えば、図11はWEBアプリケーションテスト装置100を利用するためのアプリケーション画面の一例を表示したものである。このようなWEBアプリケーションテスト装置100を利用するためのアプリケーション画面の一部としてテスト結果表示部106は組み込まれる。図11においては、チェック状況と記載された文字列の下部テキストボックス欄がテスト結果表示部106に該当し、テスト結果記憶部110のテスト結果が文字列として表示される。
また、テスト結果出力部107は、テスト結果記憶部110に記憶されたテスト結果を出力する処理部である。例えば、図11のWEBアプリケーションテスト装置100の利用するためのアプリケーション画面においては、「結果出力」ボタンが押下されると、テスト結果出力部107によってテスト結果記憶部110に記憶されているテスト結果がCSV形式などのテキストファイルとして出力され、保存することができる。
以上がWEBアプリケーションテスト装置100の構成と、各構成要素の説明となる。次に、処理フローチャートを利用して、WEBアプリケーションテスト装置100において行われるWEBアプリケーションの動作テストの処理について詳述する。
図12はWEBアプリケーションテスト装置100でおこなうWEBアプリケーションの動作テストの全体処理フローである。WEBアプリケーションテスト装置100でWEBアプリケーションの動作テストを行う場合、まず最初に、WEBアプリケーション運用環境サーバ200などの情報設定を行う(S1201)。
具体的には、テスト設定記憶部111にWEBアプリケーション運用環境サーバ200の環境として、図5に示されているような、各種情報を登録する。動作テストを行うWEBアプリケーション運用環境サーバ200のWEBサーバ201のURLや、WEBアプリケーションのログイン処理を行うログインURL、ログイン処理を行う際のリクエストパラメータ、WEBサーバ201からファイル情報を取得するためのFTP接続情報、プログラムマスタ記憶部202やエラーコードマスタ記憶部203のデータベースからデータを取得するためのデータベース接続情報などである。
WEBアプリケーション運用環境サーバ200の情報がテスト設定記憶部に設定されたら、次に対象画面プログラムのファイル名一覧の取得を行う(S1202)。対象画面プログラムのファイル名一覧の取得は、プログラム一覧取得部101によって、WEBアプリケーション運用環境サーバ200から動作テストの対象とする画面プログラムのファイル名一覧を取得することによって行われる。プログラム一覧取得部101による画面プログラムのファイル名一覧の取得処理と、取得した動作テスト対象の画面プログラムのファイル名一覧の対象プログラム一覧記憶部108への記録処理については前述したとおりである。
動作テストの対象となる画面プログラムのファイル名一覧の取得と記録が行われたら、次にアプリケーションエラーコードの取得を行う(S1203)。アプリケーションエラーコードの取得は、エラーコード取得部102によって、WEBアプリケーション運用環境サーバ200からWEBアプリケーションのエラーコードの一覧を取得することによって行われる。エラーコード取得部102によるアプリケーションエラーコードの取得処理と、取得したエラーコードの対象エラーコード一覧記憶部109への記録処理については前述したとおりである。
アプリケーションエラーコードの取得と記録が行われたら、次にアプリケーション動作テストが実行される(S1204)。アプリケーション動作テストの処理については図13のWEBアプリケーションの動作テスト処理フローを用いて後述する。WEBアプリケーションの動作テストの実行が完了したら、テスト結果の表示や出力が行われる(S1205)。
例えば、テスト結果の表示は、図11に示すようなWEBアプリケーションテスト装置100を利用するためのアプリケーション画面にテスト結果表示部106を組み込んで表示される事は前述したとおりである。
以上が、WEBアプリケーションテスト装置100で行われるWEBアプリケーションの動作テストの全体処理の説明となる。次に、次に図13の処理フローを用いてアプリケーション動作テストの処理について詳述する。この処理は、図12のWEBアプリケーションの動作テストの全体処理フローにおけるS1204のWEBアプリケーションの動作テストの詳細になる。
WEBアプリケーションの動作テストでは、まずはじめに、セッション情報の作成(S1301)が行われる。セッション情報の作成はセッション生成部105で行われる。セッション生成部105で行われるセッション情報の作成およびセッション識別子の取得処理の詳細については前述したとおりである。WEBアプリケーションの動作テストを行う最初の段階で、動作テストの対象となるWEBアプリケーションが稼動するWEBサーバ201にセッション情報を作成し、セッション識別子を取得しておくことによって、WEBアプリケーションの動作にセッション情報を必要とする画面プログラムについても動作テストを行う事が可能となる。
セッション識別子の取得が出来ると、次に動作テストの対象となる画面プログラムのファイル名一覧の取得を行う(S1302)。動作テストの対象となる画面プログラムのファイル名の一覧は、前述したS1202において、プログラム一覧取得部101によって対象プログラム一覧記憶部108に記録されている。動作テストの対象となる画面プログラムのファイル名一覧を取得するためにレスポンス取得部103は、対象プログラム一覧記憶部108に記録されている画面プログラムのファイル名の一覧を読み込み、動作テスト対象の画面プログラム一覧とする。
動作テスト対象の画面プログラムのファイル名一覧が取得できたら、レスポンス取得部103は取得した画面プログラムのファイル名一覧の対象画面プログラムそれぞれについて繰り返し処理を行う(S1303)。まず、レスポンス取得部103は、WEBサーバ201に対象画面プログラムの動作リクエストを送信し、HTML取得処理を行う(S1304)。
図17はレスポンス取得部103がWEBサーバ201に送信する動作リクエストのリクエスト文字列の例である。例えば、画面名がURI0010.aspxの動作テストを行う場合は、テスト設定記憶部111よりWEBサーバ201のBaseURLの値を設定値を読み込み、リクエスト文字列を生成する。図5のテスト設定記憶部111のデータ構造例においては、“BaseURL”の設定項目として“http://www.hanbai.co.jp”が記憶されているので、図16の1行目に表されているようなリクエスト文字列となる。併せて、リクエスト文字列には、3行目に表されているように、セッション生成部105で取得したセッション識別子を送信するための文字列も含まれる。
さらに、リクエスト文字列には、WEBアプリケーションで管理される画面管理情報などの文字列も含まれる。例えば、図17の7行目、8行目の文字列が画面管理情報の文字列となる。画面管理情報の文字列は直前に取得した動作リクエストに対するレスポンスデータから抽出する文字列である。レスポンスデータからの画面管理情報の抽出処理については後述する。
図17のようなリクエスト文字列をレスポンス取得部103からWEBサーバ201に送信すると、WEBサーバ201上でリクエストされた画面プログラムの動作が行われ、レスポンスデータがレスポンス取得部103に返却される。
ここで、リクエスト文字列には、セッション識別子や画面管理情報などのWEBアプリケーションによって管理される情報も含まれているため、WEBアプリケーションの実行にセッション情報や画面管理情報などのWEBアプリケーション管理情報を必要とする機能であっても問題なく動作テストを行うことができる。
レスポンス取得部103はWEBサーバ201に動作テスト対象画面の動作リクエストを送信し、動作結果のレスポンスデータを受け取ると、受け取ったレスポンスデータをレスポンス解析部104に渡す。レスポンス解析部104ではレスポンスデータをレスポンス取得部103から受け取ると、まずヘッダ情報の解析を行い、解析結果のテスト結果記憶部への記録を行う(S1305)。図14はWEBサーバ201からレスポンス取得部103に返却されるレスポンスデータのヘッダ情報の一例を表したものである。レスポンス解析部104ではレスポンスデータのヘッダ情報を受け取ると、ヘッダ情報からHTTPレスポンスコードの読み取りを行う。
通常は図14で表されているように、レスポンスデータのヘッダ情報の1行目にHTTPで始まる文字列でステータスコードは記載されて返却される。図14の1行目の例でいえば、“200”がHTTPステータスコードであり、“OK”がHTTPステータスである。これら以外にも抽出対象となる、HTTPステータスコードとHTTPステータスは対象エラーコード一覧記憶部109に図8に表されているような組み合わせで記録されている。
レスポンス解析部104では、図8に表されているようなHTTPステータスコードとHTTPステータスをレスポンスデータのヘッダ情報から読み取り、読み取ったHTTPステータスコードとHTTPステータスを、対応する画面プログラムのファイル名に対応付けて、テスト結果記憶部104に記録する。
例えば、画面プログラムのファイル名“TOP0010.aspx”の動作リクエストの結果、レスポンスデータのヘッダ情報から、HTTPステータスコード“200”、HTTPステータス“OK”の情報を読みよった場合、図9の1レコード目に示されているような形で「画面ファイル名」に“TOP0010.aspx”が、「HTTPステータスコード」に“200”が、「HTTPステータス」に“OK”が、テスト結果記憶部110にそれぞれ記録される。
ヘッダ情報の解析を行い、テスト結果記憶部110にHTTPステータスコード、HTTPステータスの記録を行ったら、次に、レスポンス解析部104ではHTML情報の解析を行い、解析結果をテスト結果記憶部110への記録を行う(S1306)。レスポンスデータのHTML情報は例えば図18で表されるようなHTML形式のデータである。
レスポンス解析部104では、まず始めに、レスポンスデータのHTMLデータからinputタグの属性項目typeの値がhiddenとなっているタグの項目情報を読み取る。inputタグのtype属性項目の項目と項目値は、通常はクライアントWEBブラウザがWEBサーバにリクエストを送信する際に、リクエスト情報と併せてWEBサーバに送信されるパラメータ値であるからである。例えば、WEBアプリケーションによっては、この値に画面状態の情報や操作状態の情報などの画面管理情報を持たせておくことによって、不正な操作が行われていないかの検証を行うものもある。
図18においては、inputタグの属性項目typeの値がhiddenとなっているタグの項目情報として、nameが“VIEWSTATE”でvalueが“4Gb25M”の情報およびnameが“EVENTVALIDATION”でvalueが“jkwNA9”の情報を読み取り、“VIEWSTATE=4Gb25M”と“EVENTVALIDATION=jkwNA9”の値を次のリクエスト送信のために一時記憶する。一時記憶したこれらの値は、次にレスポンス取得部103がWEBアプリケーションに動作リクエストを送信する際にリクエスト文字列と併せてWEBサーバ201に送信される。
例えば、図17のようなリクエスト文字列において、ここで一時記憶している値を7行目および8行目に表されているように付加して、リクエスト文字例をWEBサーバ201に送信する。このような情報は通常、WEBアプリケーションでは動作管理情報として利用される。
レスポンスデータのHTMLデータからinputタグの属性項目typeの値がhiddenとなっているタグの項目情報を読み取りを行ったら次に、アプリケーションエラーコードがレスポンスデータのHTMLデータに含まれていないかの確認を行う。例えば、図19はアプリケーションエラーコードが含まれているHTMLデータの例を示したものである。レスポンス解析部104では、対象エラーコード一覧記憶部109より抽出対象となるエラーコードおよびマッチングパターンを読み取り、読み取ったエラーコードと同じ文字列がHTMLデータに含まれていないかを検証する。また、マッチングパターンが定義されている場合は、HTMLデータからマッチングパターンによる正規表現のマッチングを試み、該当する文字列がHTMLデータに含まれているかを検証する。
例えば、図19においては、対象エラーコード一覧記憶部109に含まれているエラーコード“ERR10010”がHTMLデータ中に含まれているため、HTMLデータにアプリケーションエラーコードが含まれていると判断される。エラーコードが含まれていると判断された場合は、抽出されたアプリケーションエラーコードをテスト結果記憶部110に記録する。図19が画面ファイル名“URI0010.aspx”の動作リクエストの結果のレスポンスデータに含まれるHTMLデータであったとすると、テスト結果記憶部110には、「画面ファイル名」に“URI0010.aspx”が、「アプリケーションエラーコードに“ERR10010”が記録される。
ヘッダ情報の解析(S1305)、HTML情報の解析(S1306)が完了したら、次に実行結果の判定が行われる(S1307)。実行結果の判定は、テスト結果記憶部110に記憶されている、「HTTPステータス」および「アプリケーションエラーコード」の値によって決定される、例えば、「HTTPステータス」が“OK”であり、アプリケーションエラーコードも抽出されていない場合、いずれも問題なく動作していることになるので、「実行結果」には“OK”が記録される。
また、「HTTPステータス」が“OK”であり、「アプリケーションエラーコード」になんらかのエラーコードが記録されている場合は、アプリケーションエラーが発生していることになることから「実行結果」には“アプリエラー”が記録される。さらに、「HTTPステータス」に“OK”以外が記録されており、「アプリケーションエラーコード」は抽出されていない場合は、なんらかのHTTPエラーが発生している可能性があることから、「実行結果」には“HTTPエラー”が記録される。ここで示した実行結果の判定方法は一例であり、WEBアプリケーションに応じて他の判定方法であってもよい。
以上のような処理により実行結果の判定と記録が完了したら、次にS1302で取得したすべての画面プログラムに対して処理を行ったかを判定する(S1308)。未処理の画面プログラムがある場合は、S1303に戻り次の画面プログラムの処理を行う(S1308:NO)。すべての画面プログラムの処理が完了した場合は、WEBアプリケーションの動作テストの処理を完了する(S1308:YES)。
以上がWEBアプリケーションの動作テスト処理の詳細となる。以上のような処理によって、WEBアプリケーションの動作テストの結果はテスト結果記憶部110に記憶され、記憶されたテスト結果は、前述したようにテスト結果表示部106によって、例えば、図11のようなWEBアプリケーションテスト装置100のアプリケーションプログラムの画面にテスト結果が表示されたり、テスト結果出力部107によって、例えば、テスト結果記憶部110の内容をCSV形式のテキストデータとして出力する事も可能である。
以上、図面やフローチャートを用いて本発明におけるWEBアプリケーションテスト装置の具体的な実施例について説明した。実施例において示したように、本発明のWEBアプリケーションテスト装置の仕組みを利用することによって、WEBアプリケーションの動作テストを自動的にすべての画面プログラムに対して行うことが可能となる。
例えば、WEBアプリケーションプログラムの一部の機能のみが修正され、修正された機能のみがテスト環境サーバで動作テストされたような場合であっても、WEBアプリケーション運用環境サーバ200上で修正を行った機能だけでなく、すべての画面プログラムに対して効率的に動作テストを行う事が可能となり、WEBアプリケーションプログラムの動作テストをWEBアプリケーション運用環境サーバ上で頻繁にやり直す事が容易に可能となる。
上記実施例においては、WEBアプリケーションテスト装置100の各処理部に基づいて説明を行ったが、上記実施例はハードウェアロジックやプログラムによって各種の処理を実行することが実現されているコンピュータに処理を実行させる方法であってもよいし、上記実施例を行う予め用意されたプログラムをコンピュータに読み込ませて実行するようなプログラムであってもよい。
また、本発明の技術範囲は前述した実施形態に左右されるものではなく、当業者であれば特許請求の範囲に記載された技術的思想の範囲内において想到することが明らかである変更例についても当然に本発明の技術的範囲に属するものである。