JP2012194803A - ファイルアップロードの代理方法、代理プログラム及び代理装置 - Google Patents

ファイルアップロードの代理方法、代理プログラム及び代理装置 Download PDF

Info

Publication number
JP2012194803A
JP2012194803A JP2011058422A JP2011058422A JP2012194803A JP 2012194803 A JP2012194803 A JP 2012194803A JP 2011058422 A JP2011058422 A JP 2011058422A JP 2011058422 A JP2011058422 A JP 2011058422A JP 2012194803 A JP2012194803 A JP 2012194803A
Authority
JP
Japan
Prior art keywords
request
file
proxy
server
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011058422A
Other languages
English (en)
Other versions
JP5594199B2 (ja
Inventor
Yuji Yamaoka
裕司 山岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011058422A priority Critical patent/JP5594199B2/ja
Publication of JP2012194803A publication Critical patent/JP2012194803A/ja
Application granted granted Critical
Publication of JP5594199B2 publication Critical patent/JP5594199B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】ブラウザに依存せずに、サーバに対するファイルアップロードの自動化を図る。
【解決手段】ブラウザ機能部から入力されるリクエストの記述内容と、記述内容に対して予め定められた変換規則テーブルとに基づいて、サーバにアップロードするファイルデータを特定してリクエストに設定し(S18)、ファイルデータが埋め込まれたリクエストをサーバに送信する(S24)。これにより、ブラウザ機能部での設定を行わなくても、ブラウザ機能部から入力されたリクエストを変換規則テーブルに基づいて変換(ファイルデータの埋め込み)して送信することができる。
【選択図】図5

Description

本件は、ファイルアップロードの代理方法、代理プログラム及び代理装置に関する。
Webサーバ上で動作するアプリケーションの動作確認(テスト)を行う場合、様々な入力に対するアプリケーションの動作確認や、様々なWebブラウザを用いた場合の動作確認が必要である。
このテストにおいては、アプリケーションのHTMLフォームにファイルアップロードの入力処理を行う必要がある場合がある。この場合、ファイルアップロードの入力処理は、Webブラウザ上に表示されたフォームのファイル型入力欄にファイルパスを設定することで行うことができる。
ただし、多くのWebブラウザ上では、ファイル型入力欄へのファイルパスの設定が必要な度に、ユーザがファイル選択ダイアログからファイルパスを選択しなければならない。すなわち、このような入力処理を様々なブラウザで行おうとすると手間と時間を要するため、この処理が動作確認作業の効率低下を引き起こすおそれがある。
なお、ブラウザを改造すれば、入力を自動的(又は半自動的)に行うことができる。たとえば、特許文献1では、ブラウザに専用のツールバーを設置し、そのツールバー上のボタンを押すと、入力欄への入力を機械が代行する技術が開示されている。しかし、ブラウザ毎に専用のツールバーを用意する必要があり、そのために大きな初期コストがかかるおそれがある。また、特許文献1ではツールバーのボタンを人手で押す必要があり、手間がかかる。
特開2010−33111号公報 特開2002−63179号公報
一方、ブラウザに依存しない技術として、サーバからのレスポンスをプロキシサーバ上で必要に応じて変換し、ブラウザに渡された時点でブラウザの入力欄に値を自動的に設定する技術が知られている(特許文献2参照)。しかしながら、ファイル型入力欄の場合、ブラウザのセキュリティ制限により自動設定(自動入力)できないため、ファイルアップロードの入力処理を自動化することはできない。
また、ブラウザに依存しない別の技術として、多くのブラウザが実行できるスクリプトを使って、ブラウザの操作を自動化する技術が知られている。例えば、Selenium Remote Control(RC)と呼ばれるテストツールでは、JavaScript(登録商標)をブラウザ上で動かすことでブラウザを操作することができる。しかしながら、スクリプトによる自動入力はブラウザのセキュリティ制限により機能しないため、この方法を用いたファイルアップロードの入力処理の自動化はできない。
そこで本件は上記の課題に鑑みてなされたものであり、ブラウザに依存せずにファイルアップロードを自動化することが可能なファイルアップロードの代理方法、代理プログラム及び代理装置を提供することを目的とする。
本明細書に記載のファイルアップロードの代理方法は、ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理方法であって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み工程と、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信工程と、をコンピュータが実行するファイルアップロードの代理方法である。
本明細書に記載のファイルアップロードの代理プログラムは、コンピュータに、ブラウザ機能部からサーバへのファイルアップロードを代理させるファイルアップロードの代理プログラムであって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、前記リクエストに埋め込み、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する、処理をコンピュータに実行させるファイルアップロードの代理プログラムである。
本明細書に記載のファイルアップロードの代理装置は、ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理装置であって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み部と、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信部と、を備えるファイルアップロードの代理装置である。
本明細書に記載のファイルアップロードの代理方法、代理プログラム及び代理装置は、ブラウザに依存せずにファイルアップロードを自動化することができるという効果を奏する。
一実施形態に係るアプリケーションテストシステムの構成を概略的に示す図である。 端末のハードウェア構成図である。 端末の機能ブロック図である。 変換規則テーブルを示す図である。 プロキシ機能部の一連の処理を示すフローチャートである。 リクエストの一例を示す図である。 図5のステップS18の具体的処理を示すフローチャートである。 図7のステップS50の具体的処理を示すフローチャートである。 図9(a)〜図9(c)は、図8の処理を説明するための図である。 図5のステップS20の具体的処理を示すフローチャートである。 リクエストの変換状態を示す図である。 変換後リクエストを示す図である。
以下、一実施形態について、図1〜図12に基づいて詳細に説明する。図1には、一実施形態に係るアプリケーションテストシステム100の構成が概略的に示されている。図1に示すように、アプリケーションテストシステム100は、端末10と、サーバ80と、を備える。端末10とサーバ80は、インターネットなどのネットワーク70に接続されている。
端末10は、PC(Personal Computer)であり、サーバ80にリクエストを送ってサーバ80上で動作するアプリケーションが正常動作するかをテストするためのものである。図2には、端末10のハードウェア構成が示されている。この図2に示すように、端末10は、CPU90、ROM92、RAM94、記憶部(ここではHDD(Hard Disk Drive))96、表示部91、入力部93、ネットワークインタフェース97、及び可搬型記憶媒体用ドライブ99等を備えている。端末10の構成各部は、バス98に接続されている。端末10では、ROM92あるいはHDD96に格納されているプログラム(ファイルアップロードの代理プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体95から読み取ったプログラム(ファイルアップロードの代理プログラムを含む)をCPU90が実行することにより、図3の各部の機能が実現される。
図3には、端末10の機能ブロック図が示されている。この図3に示すように、端末10では、CPU90がプログラムを実行することで、ブラウザ機能部20と、代理装置としてのプロキシ機能部30としての機能を実現する。
ブラウザ機能部20は、ウェブサイトを閲覧するためのブラウザとして機能する。ブラウザ機能部20は、プロキシ機能部30に対してリクエスト(HTTPリクエスト)を入力する。
プロキシ機能部30は、リクエスト受付部32、埋め込み部としてのリクエスト変換部34、ファイルデータ提供部36、送信部としてのリクエスト送信部38、表示部としての変換規則更新部40、及び規則テーブルとしての変換規則テーブル50とを有する。
リクエスト受付部32は、ブラウザ機能部20から入力されたリクエストを受け付ける。
リクエスト変換部34は、一般的なプロキシサーバと同様の通常のリクエスト変換(リクエスト行や、Connectionなど一部のヘッダフィールドなどの変換)をする。また、リクエスト変換部34は、リクエストのうち、ブラウザで設定されなかったファイル用の各パラメータについて、変換規則テーブル50に基づいてファイルデータ提供部36からファイルデータを取得する。そして、リクエスト変換部34は、取得したファイルデータを用いてリクエストを変換する。すなわち、リクエスト変換部34は、ファイルデータが未だ入力(設定)されていないファイルアップロードのリクエストに対し、ファイルデータを埋め込んで、テストに用いることが可能なファイルアップロードのリクエストを生成する。
なお、リクエスト変換部34ではリクエストのヘッダ部だけでなくボディ部も変換する場合がある。このため、リクエスト変換部34は、処理が簡単になるように、リクエストデータを全てHDD96にコピーして取り扱うようにしてもよい。また、リクエスト変換部34は、HTTPSプロキシサーバのふりをしつつHTTPSを終端させることで、HTTPSで暗号化されたリクエスト/レスポンスデータを参照/変換しても良い。ただし、この場合には、通常、ブラウザ上では安全な通信であることを確認できなくなる(セキュリティの警告がされる)。これらの方法は、例えばThe OWASP Foundationが公開しているWebScarab(http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project)などで実施可能である。
なお、リクエスト変換部34は、図3に示すように、リクエスト変換をどのように行うかを判断するリクエスト変換判断部34aと、リクエスト変換を実行するリクエスト変換実行部34bと、を有している。
ファイルデータ提供部36は、一般的なファイルシステム(例えばNTFS(NT File System))の機能を有する。ファイルデータ提供部36では、リクエスト変換部34(リクエスト変換判断部34a)から入力されたファイルパスに基づいて、ファイルパスに応じたデータをリクエスト変換部34(リクエスト変換判断部34a)に提供する。
リクエスト送信部38は、リクエスト変換部34で変換されたリクエスト(変換後リクエスト)をサーバに対して送信する。変換規則更新部40は、変換規則テーブル50を更新(新たな変換規則を追加)する機能を有する。
変換規則テーブル50は、リクエストに対するファイルアップロードについての変換の規則を定義したものである。変換規則テーブル50には、変換条件と、その条件を満たしたときの変換に使うファイルデータを特定する情報が規定されている。具体的には、図4に示すように、変換規則テーブル50は、評価順序、有効期間、URLパターン、パラメータ名パターン、User-Agentパターン、ファイルパスの6つを列項目とする2次元の表形式で表現できるデータである。これらのうち、有効期間、URLパターン、パラメータ名パターン、User-Agentパターンの4項目が変換条件に相当し、ファイルパスの項目がファイルデータを特定する情報に相当する。
評価順序の項目には、各行で異なる値が割り当てられる。なお、各行を予め評価順序の数値で並べ替えておいてもよいし、行番号を評価順序として用いることとしてもよい。
有効期間の項目には、日時の範囲を示すデータが入力される。たとえば、S−E(S,EはそれぞれISO8601など機械が解析できる日時データ)などと記述される。この場合、S−Eは、S以降でかつEより前の期間を意味する。なお、S及びEのいずれかを省略してもよいし、各行において複数の期間が定められてもよい。
URLパターン、パラメータ名パターン、User-Agentパターンは、それぞれある文字列がリクエストに含まれているか否かを判定するために用いるデータである。各項目は、例えば、正規表現やglob形式(図4ではglob形式)で記述される。
例えば、図4の評価順序=「1」の規則は、現在日時が「2011年1月1日」よりも前で、URLが「http://example.net/」で始まっているパラメータであれば、パス「C:\d」のデータで変換せよ、という意味である。また、評価順位=「2」の規則は、評価順位=「1」の規則を満足せず、かつ、現在日時が「2010年10月1日」以降で、URLが「http://example.com/file」で、名前が「file1」で、User-Agentパターンが「Browser/」で始まっているパラメータであれば、パス「D:\f1」のデータで変換せよ、という意味である。なお、ファイルパスが空の場合、そのパラメータについて「変換しない」の意味であるものとする。
次に、本実施形態のプロキシ機能部30による、サーバ80上で動作するアプリケーションのテスト(動作確認)処理について、図5〜図12に基づいて詳細に説明する。図5は、ブラウザ機能部20からプロキシ機能部30(リクエスト受付部32)に対して、テスト用のリクエストが入力された場合の、プロキシ機能部30の一連の処理を示すフローチャートである。
ここで、ブラウザ機能部20からプロキシ機能部30に対して入力されるリクエストは、図6に示すようなHTTPリクエストであるものとする。図6のリクエストは、ヘッダ部と、ボディ部とを有し、そのURLが「http://example.com/file」となっている。また、図5の処理で用いる変換規則テーブル50は、図4のテーブルであるものとする。更に、ファイルデータ提供部36(ファイルシステム)では、ファイルパス「D:\f1」にはデータ「123」という3バイトから成るファイルが対応づけられているものとする。なお、これら変換規則テーブル50やファイルについては、あらかじめユーザ(テスト実施者)が手動で作成などしておく。
図5の処理では、まず、ステップS10において、リクエスト変換判断部34aが、リクエスト受付部32から取得したリクエストを参照して、当該リクエストがファイルアップロードの形式の可能性があるか否かを判断する。
この場合、リクエスト変換判断部34aは、図6のリクエストのContent-Typeが「multipart/form-data」か否かを確認する。すなわち、リクエスト変換判断部34aは、リクエストヘッダーからContent-Typeフィールドを探し、メディア型を確認する。そして、メディア型が「multipart/form-data」であった場合、ステップS10の判断が肯定されることになる。ステップS10の判断が肯定された場合には、ステップS12に移行し、ステップS10の判断が否定された場合には、図5の全処理を終了する。
ステップS10の判断が肯定されて、ステップS12に移行すると、リクエスト変換判断部34aは、未処理のパラメータ(multipart/form-dataパラメータ)のうち先頭のパラメータを抽出する。この場合、リクエスト変換判断部34aは、リクエストのボディ部をContent-Typeで与えられたboundaryを用いて分解して、パラメータを順に抽出する。すなわち、リクエスト変換判断部34aは、例えば、名前が「title」、「file1」、「file2」のパラメータを順に(ステップS12の度に)抽出することになる。
次いで、ステップS14では、リクエスト変換判断部34aが、パラメータはファイル用か(filename情報を持つか)否かを判断する。このステップS14では、パラメータのContent-Dispositionフィールドに「filename」情報があったときに判断が肯定されて、ステップS16に移行する。一方、「filename」情報がなかった場合には、ステップS14の判断が否定され、ステップS22に移行する。例えば、ステップS12においてパラメータ「title」が抽出されている場合には、ステップS14の判断が否定され、ステップS22に移行する。ステップS22では、リクエスト変換判断部34aが、全パラメータを抽出したか否かを判断するが、ここでの判断が否定されると、ステップS12に戻る。
一方、ステップS12においてパラメータ「file1」又は「file2」が抽出されていた場合には、ステップS14の判断が肯定され、ステップS16に移行する。
ステップS16に移行すると、リクエスト変換判断部34aは、ファイル名項目(filenameの値)が空であるか否かを判断する。この場合、抽出されているパラメータが「file1」、「file2」のいずれであっても、図6に示すように、ファイル名項目は空であるので、ステップS16の判断は肯定され、ステップS18に移行する。一方、ステップS16の判断が否定された場合には、ステップS22に移行する。なお、通常、ブラウザのフォームのファイル型入力欄に何も設定せずに送信(submit)すると、ブラウザ機能部20はfilenameの値が空のパラメータをプロキシ機能部30に対してリクエストすることになる。
ステップS16の判断が肯定されると、ステップS18において、変換規則テーブル50に従った、ファイルデータ取得処理が実行されることになる。このステップS18では、具体的には、図7のフローチャートに沿った処理が実行される。
図7の処理では、まず、ステップS30において、リクエスト変換判断部34aが、変換規則テーブル50の各行を評価順序順に並べ替える。なお、行番号を評価順序としている場合など、あらかじめ評価順序順に並べ替えされているような場合には、このステップS30の処理を省略することができる。
次いで、ステップS32では、リクエスト変換判断部34aが、現在抽出されているパラメータ「file1」に関し、変換規則テーブル50の中に評価していない行があるか否かを判断する。ここでは、まだパラメータ「file1」に関して変換規則テーブル50の1つの行も評価していないので、判断は肯定され、ステップS34に移行する。なお、ステップS32の判断が否定された場合には、ステップS50に移行する。このステップS50の詳細については、後述するものとする。
ステップS32の判断が肯定されて、ステップS34に移行すると、リクエスト変換判断部34aは、評価していない1つの行の各列項目値を抽出する。ここでは、評価順序=「1」の行の各列項目値が抽出されたものとする。次いで、ステップS36では、リクエスト変換判断部34aが、現在日時は有効期間内か否かを判断する。例えば、現在日時が2010年12月24日であれば、図4の有効期間(−20110101)の条件は満たされるので、ここでの判断は肯定され、ステップS38に移行する。一方、ここでの判断が否定された場合には、ステップS32に戻る。
ステップS38では、リクエスト変換判断部34aが、リクエストのURLが、URLパターンにマッチするか否かを判断する。この場合、図6のリクエストのURLは「http://example.com/file」であるため、評価順序=「1」の行のURLパターンとはマッチしていない。このため、ステップS38の判断は否定されて、ステップS32に戻る。
ステップS32に戻ると、リクエスト変換判断部34aは、評価していない行が有るか否かを判断する。ここでの判断が肯定された場合、リクエスト変換判断部34aは、次のステップS34に移行して、評価していない行(ここでは、評価順序=「2」の行)の各列項目値を抽出する。そして、リクエスト変換判断部34aは、ステップS36において、現在日時は有効期間内か否かを判断し、ここでの判断が肯定されると、ステップS38に移行する。
次いで、ステップS38では、リクエスト変換判断部34aが、リクエストのURLがURLパターンにマッチするか否かを判断する。この場合、図6のリクエストのURLは「http://example.com/file」であり、評価順序=「2」の行のURLパターンとマッチしている。このため、ステップS38の判断は肯定されて、ステップS40に移行する。
ステップS40に移行すると、リクエスト変換判断部34aが、現在抽出されているリクエストのパラメータ名が、パラメータ名パターンにマッチするか否かを判断する。現在抽出されているパラメータ名は「file1」であるので、ここでの判断は肯定されて、ステップS42に移行する。なお、ステップS40の判断が否定された場合には、ステップS32に戻る。
ステップS42に移行すると、リクエスト変換判断部34aは、リクエストのUser-Agentが、User-Agentパターンにマッチするか否かを判断する。この場合、リクエストのUser-Agentは、図6に示すように、「Browser/1.0」であり、変換規則テーブル50の評価順序=「2」のUser-Agentパターンは、「Browser/*(*は任意の文字列)」であるので、ステップS42の判断は肯定され、ステップS44に移行する。なお、ステップS42の判断が否定された場合には、ステップS32に戻る。
ステップS44に移行した場合、リクエスト変換判断部34aは、ファイルパスは空か否かを判断する。ここでの判断が肯定された場合には、ステップS46に移行し、リクエスト変換判断部34aは、「変換しない」というデータをリクエスト変換実行部34bに出力する。
一方、図4の変換規則テーブル50の評価順序=「2」の行のように、ファイルパスが空でない場合には、ステップS46の判断が否定されてステップS48に移行する。そして、ステップS48では、リクエスト変換判断部34aが、ファイルパス「D:\f1」と、当該ファイルパスに基づいてファイルデータ提供部36から得られるデータ「123」を、リクエスト変換実行部34bに対して出力する。
なお、図5のステップS12において抽出されたパラメータが「file2」の場合にも、ステップS18(図7)の処理は行われる。この場合、図4の評価順序=「1」の行を評価した場合には、ステップS38の判断が否定される。また、評価順序=「2」の行を評価した場合には、ステップS40の判断が否定され、最終的には、ステップS32の判断が否定されることになる。この場合、ステップS50において、変換規則更新部40による変換規則テーブル50の更新処理が行われることになる。このステップS50は、変換規則の変換条件を満たさないパラメータに適用可能な新たな変換規則を生成するための処理であり、具体的には、変換規則更新部40は、図8のフローチャートに沿った処理を実行する。
図8の処理では、まず、ステップS60において、変換規則更新部40が、新しい行(空白の行)を追加する(図9(a)参照)。次いで、ステップS62では、変換規則更新部40が、評価順序の値を最大値に設定する。なお、図9(a)の場合、評価順序は「3」に設定される(図9(b)参照)。
次いで、ステップS64では、変換規則更新部40が、新しい行の有効期間の値を、所定の日付(例えば本日)に設定する。この場合、現在日時が2010年12月24日であるならば、図9(c)に示すように、有効期間の値「-20101225」を設定する。なお、有効期間としては、本日中に限らず、たとえば本日の17時までや、今週末までなど、様々な値を設定することができるようにしてもよい。
次いで、ステップS66では、変換規則更新部40が、リクエストの、URL、パラメータ名、User-Agentがそれぞれ一致するように、新しい行のURLパターン、パラメータ名パターン、User-Agentパターンを設定する。この場合、図9(c)に示すように、パラメータ「file2」に対しては、URLパターンとして、「http://example.com/file」が設定され、パラメータ名パターンとして、「file2」が設定され、User-Agentパターンとして、「Browser/1.0」が設定される。なお、変換規則テーブル50の各値は、リクエストと完全に一致する値である必要はなく、たとえばそれぞれに値「*」(任意の文字列)を設定するようにしてもよい。
次いで、ステップS68では、変換規則更新部40が、ファイル選択ダイアログを端末10の表示部91上に表示する。この場合、変換規則更新部40は、パラメータ「file2」に関し、新しく変換規則を追加する旨などを端末10の表示部91上に表示する。これにより、ユーザ(テスト実施者)に対し、ファイル選択ダイアログ上でのファイルパスの入力を促すことができる。
次いで、ステップS70では、変換規則更新部40が、ファイルパスが入力されるまで待機する。そして、ユーザ(テスト実施者)が図2の入力部93を介してファイルパスを入力した段階で、ステップS72に移行する。あるいは、ユーザが入力をキャンセルした場合は、ステップS74に移行する(ファイルパスとして空文字列が入力されたこととする)。
ステップS72では、変換規則更新部40が、入力されたファイルパス(例えば、ファイルパス「D:\f2」)を新しい行のファイルパスに設定する(図9(d)参照)。なお、一定時間選択されなかった場合には、ファイルパスの代わりに空文字列を設定するものとする。
次いで、ステップS74では、変換規則更新部40が、新しい行の確認・修正が可能なダイアログを端末10の表示部91表示する。例えば、図9(d)に示すような変換規則テーブル50を、表示部91上に表示する。なお、図9(d)の変換規則テーブル50においては、少なくとも評価順序「3」の行のファイルパスをユーザ(テスト実施者)が修正できるようになっているものとする。
次いで、ステップS76では、変換規則更新部40が、ダイアログが閉じられるまで待機する。そして、ダイアログがユーザ(テスト実施者)によって閉じられた段階で、図8の全処理を終了し、図18のステップS44に移行する。その後は、パラメータ「file2」について、ステップS44〜S48を上記と同様に実行する。そして、ステップS46又はS48が終了した段階で、図5のステップS20に移行する。なお、ファイルデータ提供部36では、ファイルパス「D:\f2」にはデータ「---123」という6バイトから成るファイルが対応づけられているものとする。したがって、ステップS48では、ファイルパス「D:\f2」とデータ「---123」が、リクエスト変換判断部34aからリクエスト変換実行部34bに対して出力されることになる。
図5に戻り、ステップS20では、リクエスト変換実行部34bが、ファイルデータをリクエストに設定する処理を実行する。このステップS20では、具体的には、リクエスト変換実行部34bが、図10のフローチャートに沿った処理を実行する。
図10の処理では、まず、ステップS80において、リクエスト変換実行部34bが、リクエスト変換判断部34aの出力が、「変換しない」であったか否かを判断する。このステップS80の判断が肯定された場合には、ステップS20の全処理を終了して、図5のステップS22に移行する。一方、ステップS80の判断が否定された場合には、ステップS82に移行する。なお、本実施形態のパターン「file1」、「file2」の場合、ステップS80の判断は否定される。
なお、以下においては、図5のステップS12で抽出されたパターンが「file1」であった場合を例にとり、説明する。
ステップS80の判断が否定されて、ステップS82に移行すると、リクエスト変換実行部34bが、パスのファイル名か、ファイルのデータに、boundaryと同じ文字列があるか否かを判断する。パターン「file1」のデータは、「123」であり、boundaryは図6に示すように「--123」であるとする。この場合、「file1」のデータ「123」に、boundaryの値「--123」のすべてが含まれていないので、ステップS82の判断が否定され、ステップS86に移行する。そして、ステップS86では、リクエスト変換実行部34bが、boundaryを変更したか否かを判断するが、ここでは、変更していない(S84を経ていない)ので、ステップS86の判断が否定され、ステップS90に移行する。
ステップS90に移行すると、リクエスト変換実行部34bは、パスのファイル名をfilenameの値に設定する(埋め込む)とともに、データをパラメータのボディ部に設定する(埋め込む)。すなわち、図11に示すように、リクエストのパラメータ「file1」のfilenameを「f1」とし、データ「123」をパラメータ「file1」のボディ部に設定する。そして、ステップS92では、リクエスト変換実行部34bが、Content-Lengthフィールドを更新する。すなわち、リクエスト変換実行部34bは、Content-Lengthフィールドを、ステップS90の設定後のリクエストのボディ部のバイト数に変更する。
なお、図5のステップS12で抽出されたパターンが「file2」であった場合には、パターン「file2」のデータは、「---123」であり、boundaryは、図11に示すように「--123」であるので、ステップS82の判断は肯定される。この場合、ステップS84において、リクエスト変換実行部34bが、boundaryの末尾に任意の文字を追加する。例えば、boundary「--123」の末尾に任意の文字(ここでは、数字の1)を追加して、「--1231」とする。なお、末尾に追加する文字は、適当な英数字でよく、リクエスト変換実行部34bは、当該文字を乱数を用いて決定することとしてもよい。
その後は、ステップS82に戻り、リクエスト変換実行部34bは、再度ステップS82において、ファイル名又はファイルのデータに、boundaryと同じ文字列があるか否かを判断する。ここでの判断が肯定された場合には、リクエスト変換実行部34bは、ステップS84を繰り返すが、ここでの判断が否定された場合には、ステップS86に移行する。ステップS86では、リクエスト変換実行部34bが、boundaryを変更したか否かを判断する。この場合、判断は肯定され、ステップS88に移行する。そして、ステップS88では、リクエスト変換実行部34bが、リクエスト中の元のboundary値を、新しいboundary値で置換する。この場合、図11と図12とを比較するとわかるように、リクエスト変換実行部34bは、元のboundary「--123」をステップS84で新たに生成されたboundary「--1231」に置換する。
そして、その後は、前述したのと同様に、ステップS90において、リクエスト変換実行部34bが、パスのファイル名をfilenameの値に設定し(埋め込み)、データをパラメータのボディ部に設定する(埋め込む)(図12のfilename="f2"、ボディ部の「---123」参照)。また、ステップS92において、リクエスト変換実行部34bが、前述と同様に、Content-Lengthフィールドを更新する。すなわち、リクエスト変換実行部34bは、Content-Lengthフィールドを、ステップS90の設定後のリクエストのボディ部のバイト数に変更する。
以上のようにして、ステップS20の処理が終了すると、図5のステップS22に移行する。
図5のステップS22では、リクエスト変換判断部34aが、全パラメータを抽出したか否かを判断する。ここでの判断が否定された場合、ステップS12に戻るが、判断が肯定された場合には、ステップS24に移行する。ステップS24では、リクエスト送信部38が、変換後のリクエスト(ファイルデータが埋め込まれたファイルアップロード用のリクエスト)をサーバ80に対して送信する。そして、ステップS24が終了した段階で、図5の全処理を終了する。
以上のような処理を経ることで、サーバ80は、ファイルアップロード用のリクエストを取得することができる。サーバ80のアプリケーションでは、当該リクエストに応じた処理(ファイルアップロード)を行い、当該処理結果を端末10の表示部91上に表示する。このようにすることで、ユーザ(テスト実施者)は、サーバ80上で動作するアプリケーションのリクエストに対する処理結果(テスト結果)を表示部91上で確認することが可能となる。
以上、詳細に説明したように、本実施形態によると、ブラウザ機能部20から入力されるリクエストの記述内容と、リクエストの記述内容に対して予め定められた変換規則テーブル50とに基づいて、サーバ80にアップロードするファイルデータを特定し、当該ファイルデータをリクエストに設定し(S18、S20)、ファイルデータが埋め込まれたリクエスト(変換後リクエスト)を前記サーバに送信する(S24)。これにより、ブラウザのフォームのファイル型入力欄に何も設定しなくても、ブラウザ機能部20から入力されたリクエストを変換規則テーブル50に基づいて変換(ファイルデータの埋め込み)して、サーバ80に送信することができる。したがって、ブラウザに依存せずに、サーバ80に対するファイルアップロードの自動化を図ることが可能となる。これにより、サーバ上で動作するアプリケーションにおけるファイルアップロードの動作確認(テスト)の作業効率を向上することができる。
また、本実施形態では、変換規則テーブル50においてリクエストの記述内容に適合する規則が存在していない場合に、変換規則更新部40が、当該記述内容に適合する規則の入力支援画面(ダイアログ)を表示する(S68)。これにより、変換規則テーブル50に不備(抜け)があっても、ユーザ(テスト実行者)は、簡易に変換規則テーブル50に新たな規則(行)を追加することができる。
なお、上記実施形態では、端末10にブラウザ機能部20とプロキシ機能部30を設ける場合について説明したが、これに限られるものではない。例えば、端末10とサーバ80の間に配置される装置(プロキシサーバなど)に、プロキシ機能部30と同様の機能を持たせるようにしてもよい。
また、上記実施形態では、変換規則テーブル50として、図4のようなテーブルを用意する場合について説明したが、これに限られるものではない。テーブルの各列項目としては、その他の項目を採用することとしてもよい。
なお、上記実施形態では、変換規則テーブル50に不備(抜け)があった場合に、ダイアログを表示して、変換規則テーブル50の更新(追加)の作業を簡素化する場合について説明したが、これに限られるものではない。例えば、変換規則テーブルに不備(抜け)があった場合に、その旨をユーザ(テスト実施者)に通知するのみでもよい。
なお、上記実施形態では、予め変換規則テーブル50を作っておき、不備(抜け)があった場合に、ステップS50において変換規則を追加(更新)する場合について説明したが、これに限られるものではない。例えば、変換規則テーブル50を予め作成せずに、都度、ステップS50を行うことで変換規則テーブル50を作成するようにしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理方法であって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み工程と、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信工程と、をコンピュータが実行することを特徴とするファイルアップロードの代理方法。
(付記2) 前記規則テーブルにおいて前記リクエストの記述内容に適合する規則が存在していない場合に、当該記述内容に適合する規則の入力支援画面を表示する表示工程を、前記コンピュータが更に実行することを特徴とする付記1に記載のファイルアップロードの代理方法。
(付記3) コンピュータに、ブラウザ機能部からサーバへのファイルアップロードを代理させるファイルアップロードの代理プログラムであって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、前記リクエストに埋め込み、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する、処理をコンピュータに実行させるファイルアップロードの代理プログラム。
(付記4) 前記規則テーブルにおいて前記リクエストの記述内容に適合する規則が存在していない場合に、当該記述内容に適合する規則の入力支援画面を表示する処理を、前記コンピュータに更に実行させることを特徴とする付記3に記載のファイルアップロードの代理プログラム。
(付記5) ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理装置であって、前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み部と、前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信部と、を備えるファイルアップロードの代理装置。
(付記6) 前記規則テーブルにおいて前記リクエストの記述内容に適合する規則が存在していない場合に、当該記述内容に適合する規則の入力支援画面を表示する表示部を更に備える付記5に記載のファイルアップロードの代理装置。
20 ブラウザ機能部
30 プロキシ機能部
34 リクエスト変換部
38 リクエスト送信部
40 変換規則更新部
50 変換規則テーブル
80 サーバ
90 コンピュータ

Claims (4)

  1. ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理方法であって、
    前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み工程と、
    前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信工程と、をコンピュータが実行することを特徴とするファイルアップロードの代理方法。
  2. 前記規則テーブルにおいて前記リクエストの記述内容に適合する規則が存在していない場合に、当該記述内容に適合する規則の入力支援画面を表示する表示工程を、前記コンピュータに更に実行させることを特徴とする請求項1に記載のファイルアップロードの代理方法。
  3. コンピュータに、ブラウザ機能部からサーバへのファイルアップロードを代理させるファイルアップロードの代理プログラムであって、
    前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、前記リクエストに埋め込み、
    前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する、処理をコンピュータに実行させるファイルアップロードの代理プログラム。
  4. ブラウザ機能部からサーバへのファイルアップロードを代理するファイルアップロードの代理装置であって、
    前記ブラウザ機能部から入力されるリクエストの記述内容と、リクエストの記述内容に対して、ファイルデータを特定する情報を含む予め定められた規則を格納する規則テーブルとに基づいて、前記サーバにアップロードするファイルデータを特定し、当該ファイルデータを前記リクエストに埋め込む埋め込み部と、
    前記ファイルデータが埋め込まれたリクエストを前記サーバに送信する送信部と、を備えるファイルアップロードの代理装置。

JP2011058422A 2011-03-16 2011-03-16 ファイルアップロードの代理方法、代理プログラム及び代理装置 Expired - Fee Related JP5594199B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011058422A JP5594199B2 (ja) 2011-03-16 2011-03-16 ファイルアップロードの代理方法、代理プログラム及び代理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011058422A JP5594199B2 (ja) 2011-03-16 2011-03-16 ファイルアップロードの代理方法、代理プログラム及び代理装置

Publications (2)

Publication Number Publication Date
JP2012194803A true JP2012194803A (ja) 2012-10-11
JP5594199B2 JP5594199B2 (ja) 2014-09-24

Family

ID=47086628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011058422A Expired - Fee Related JP5594199B2 (ja) 2011-03-16 2011-03-16 ファイルアップロードの代理方法、代理プログラム及び代理装置

Country Status (1)

Country Link
JP (1) JP5594199B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003016001A (ja) * 2001-07-03 2003-01-17 Fujitsu Ltd コンテンツ変換方法及び変換後コンテンツ取得方法
JP2003140850A (ja) * 2001-10-30 2003-05-16 Fuji Xerox Co Ltd 情報処理装置
JP2004021691A (ja) * 2002-06-18 2004-01-22 Yamaha Corp 転送ファイル処理プログラム
JP2005149131A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 情報処理装置、方法及びプログラム
JP2009140155A (ja) * 2007-12-05 2009-06-25 Fujitsu Ltd アプリケーションプログラムのテストプログラム
JP2009152847A (ja) * 2007-12-20 2009-07-09 Canon Inc 画像処理装置、及びその制御方法、プログラム、記憶媒体
WO2010116586A1 (ja) * 2009-03-30 2010-10-14 株式会社野村総合研究所 動作検証装置、動作検証方法、および動作検証システム
US20110047480A1 (en) * 2009-08-21 2011-02-24 Primadesk Inc System and Method to aggregate users data that is spread all over the internet and show an uniform view in the form the user is most used to

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003016001A (ja) * 2001-07-03 2003-01-17 Fujitsu Ltd コンテンツ変換方法及び変換後コンテンツ取得方法
JP2003140850A (ja) * 2001-10-30 2003-05-16 Fuji Xerox Co Ltd 情報処理装置
JP2004021691A (ja) * 2002-06-18 2004-01-22 Yamaha Corp 転送ファイル処理プログラム
JP2005149131A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 情報処理装置、方法及びプログラム
JP2009140155A (ja) * 2007-12-05 2009-06-25 Fujitsu Ltd アプリケーションプログラムのテストプログラム
JP2009152847A (ja) * 2007-12-20 2009-07-09 Canon Inc 画像処理装置、及びその制御方法、プログラム、記憶媒体
WO2010116586A1 (ja) * 2009-03-30 2010-10-14 株式会社野村総合研究所 動作検証装置、動作検証方法、および動作検証システム
US20110047480A1 (en) * 2009-08-21 2011-02-24 Primadesk Inc System and Method to aggregate users data that is spread all over the internet and show an uniform view in the form the user is most used to

Also Published As

Publication number Publication date
JP5594199B2 (ja) 2014-09-24

Similar Documents

Publication Publication Date Title
US11880413B2 (en) Transforming datasets for visualization within widgets across multiple platforms and software applications
JP4940791B2 (ja) テスト支援プログラム、テスト支援装置、およびテスト支援方法
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
US10572546B2 (en) Information processing apparatus, document display method, document display system, and medium
JP2020187733A (ja) アプリケーション・プログラミング・インターフェースのドキュメンテーションの注釈付け
WO2010001871A1 (ja) アプリケーション拡張システム、拡張方法、拡張プログラム
US20130191814A1 (en) Test scenario generation method, test scenario generation system, and test scenario generation program
CN101354721A (zh) 服务器、数据处理装置及其中的数据处理方法
US20130198333A1 (en) Method and device for recording and reproducing web operation
WO2022000888A1 (zh) 执行定制化人工智能生产线的装置和方法、设备和介质
JP5463717B2 (ja) アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
CN104283865A (zh) 一种下载处理方法、装置、服务器及客户端设备
JP2006252001A (ja) ドキュメント処理装置
CN113268232B (zh) 一种页面皮肤生成方法、装置和计算机可读存储介质
JP2006065467A5 (ja)
JP5594199B2 (ja) ファイルアップロードの代理方法、代理プログラム及び代理装置
US20100287292A1 (en) Method, apparatus and computer program product for generating a content website in a data communications network
JP6367721B2 (ja) テストシナリオを用いたテスト装置および方法
JP6552162B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP5668492B2 (ja) データ処理装置、コンピュータプログラム及びデータ処理方法
CN110888883A (zh) 数据存储方法、装置、系统和存储介质
JPWO2015029242A1 (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
JP5941823B2 (ja) 整合性確認方法およびシステム
JP6261244B2 (ja) Webアプリケーションテスト装置およびそのプログラム
JP5737166B2 (ja) 中継装置、中継プログラムおよび中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140721

R150 Certificate of patent or registration of utility model

Ref document number: 5594199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees