Webサービス・アプリケーションのテストをする際、重宝するツールの一つにsoapUIがあります。
弊社の製品テストでもbiz-Stream Web Service Server(以降、WSSと記述します)の負荷テストや大量のデータパターン・テストを実施する際、利用しています。
プロジェクトファイル自体がXMLで構成されているので、テキスト・エディタで容易にテストの内容をカスタマイズ出来るところが非常に便利です。
使われている頻度が高い割には、具体的な使用方法についてWeb上等で情報が少ないようなので、
今回はsoapUIを使用し、WSSのサンプルプログラム(WSS_Sample1)と同様のPDF生成を行う方法をご説明します。
まずは準備作業として、WSSは既にテスト環境上に構築済みという前提で、soapUIのサイトよりsoapUI(フリーのオープンソース版)をダウンロードし、PCにインストールします。
※現在の最新Versionは3.6です。
1).soapUIを起動し、新規プロジェクトを作成します
2).任意のプロジェクト名(この場合はbiz-Stream-WebServiceServer_Test)を入力し、
Initial WSDL/WADL:にWSSのWeb サービス処理を定義する、WSDLまでのURLを入力します。(この場合は、http://bizStreamServer:8080/axis2/services/bizstream?wsdl)
3).サービスにアクセスする際のユーザー名、パスワードを聞かれるので、ここはデフォルト
の設定値(bizuser1/bizuser1)を入力します。
4).プロジェクトが作成されました。WSS_Sample1はgenerateOutputを使用したサンプル
なので、同様にツリーより「generateOutput」を選択し、右クリックして「new Request」
を選択、新規のリクエスト・メッセージを作成します。
5).「generateOutputRequest」で使用出来る、全てのリクエスト、及びオプションが表示されますが、WSS_Sample1はレイアウトXMLを基にPDFを生成し、リポジトリに登録するだけのアプリケーションなので、該当する個所のみ残して不要な部分は削除し、レイアウト(CircleSample1.xml)と
出力するPDF名(test.pdf)を追記します。最終的には以下のような記述になります。
- 《 SOAPリクエストメッセージ 》
-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.brainsellers.com/webservices/bizstream/2006-10" xmlns:ns1="http://schemas.brainsellers.com/webservices/common/2006-10" xmlns:xm="http://www.w3.org/2005/05/xmlmime> <soapenv:Header/> <soapenv:Body> <ns:generateOutputRequest> <ns:output> <ns:pdf> <ns:file name="test.pdf" /> </ns:pdf> </ns:output> <ns:layoutData> <ns:layoutDefinition uri="/CircleSample1.xml" /> </ns:layoutData> </ns:generateOutputRequest> </soapenv:Body> </soapenv:Envelope>
6). 編集したリクエスト・メッセージをWSSサーバーに対して、実行してみます。
7).JOBが成功すると、右側のウィンドウの「Raw」タブ1行目に「http/1.1 200 OK」と出力され、
「XML」のタブを確認すると「bsws:file uri=""」に、生成されたPDFファイルが登録された
リポジトリのURLが表記されます。
8.) ↑上記リポジトリのURLを、IE等のブラウザで確認しようとすると、サービスにアクセスする際の
IDとパスワードの入力ダイアログが表示されるので、3)と同様に「bizuser1/bizuser1」を入力します。
9). リポジトリ上のPDFが表示されました。このリクエスト・メッセージの処理内容自体は非常にシンプルな物ですが、レイアウトを変更したり、リクエストにオプションを追加したり、TestSuiteの設定で実行回数の指定等を行ったりする事で、様々なテストに応用する事が出来ます。