SOAP UIとは?

SOAP UIとは、Webサービスのテストを行うためのGUIフロントエンドで、WebサービスのWSDLからSOAPリクエストを自動生成してリクエストの送信やレスポンスの確認を行ったり、負荷テスト、モックWebサービスの作成などを行うことができる。また、JBoss-WSやAxis、JAX-WSなどに付属するWSDLからクライアントコードなどを生成するツールを呼び出すこともでき、RESTful Webサービスにも対応しているなど、Webサービスの開発を行う際に非常に便利なツールだ。

SOAP UIはSwingで実装されたJavaアプリケーションだが、さまざまなJava IDE向けのプラグインも提供されている。今回はSOAP UIのEclipseプラグイン版を紹介する。Eclipseプラグイン版のSOAP UIはこちらの更新サイトからインストールすることができる。

SOAP UIを使ってみよう

Eclipseプラグイン版のSOAP UIをインストールすると、soapUIパースペクティブが追加される。

図1 soapUIパースペクティブ

パースペクティブの左側に配置されているsoapUI Navigatorビューで右クリック-[New soapUI Project]を選択すると呼び出すWebサービスのWSDLを指定して新たなプロジェクトを作成することができる。指定したWSDLからはリクエスト、テストケース、モックサービスを生成することができる。また、プロジェクトにはプロジェクト作成時に指定したWSDL以外にもあとから任意のWSDLやWADLを追加することができる。

図2 プロジェクトの作成

生成されたリクエストをダブルクリックするとリクエスト内容を編集するためのエディタが開く。このエディタ上でリクエストを送信し、Webサービスの結果を確認することが可能だ。もちろんエディタ内でリクエストの内容を編集することもできる。

Webサービスのテスト

WSDLからテストスイートを作成することも可能だ。テストスイートと同時に負荷テストの設定を生成することもできる。

図3 テストスイートの作成

作成したテストケース、テストスイートはJUnit風のテストランナーで実行することができる。テストケースには単純にリクエストを送信するだけでなく、リクエスト間でプロパティを引き継いだり、ディレイや分岐、Groovyスクリプトによる処理を挿入することも可能だ。

図4 テストランナー

テストケースを使用してWebサービスに負荷をかけることもできる。スレッド数やリクエストの間隔、実行期間などを指定することができ、簡易的な性能測定ツールとしては充分な機能を備えているといえるだろう。

図5 負荷テスト

モックサービス

SOAP UI上でモックサービスを稼働させることができる。モックサービスは固定のレスポンスを返却するサービスだが、複数のレスポンスを用意しておき、順番やランダムで返却したり、条件に一致したものを返却するよう設定することができる。開発中のWebサービスのモックとして使用したり、クライアントのテストなどに使用することができるだろう。

図6 モックサービスの実行中

コードの自動生成

冒頭でも述べたようにSOAP UIはJBoss-WSやAxis、JAX-WSなどに付属するWSDLからクライアントコードなどを生成するツールを呼び出すことができる。ツールのオプションをダイアログから指定することができるため、各ツールをコマンドラインで実行するよりもわかりやすいだろう。

図7 コードの自動生成

ただし、自動生成を行うにはあらかじめ呼び出すツールのパスをEclipseの設定ダイアログで設定しておく必要がある。

図8 外部ツールの設定

まとめ

本稿で紹介したように、SOAP UIは豊富な機能を備えており、Webサービスの開発には必携のツールといえる。Swing版には有償のエディションも提供されており、そちらはさらに高機能なものになっている。

ただし、Eclipseプラグイン版はSwing版のSOAP UIをEclipseに組み込んだだけという印象が強く、Eclipse上で使用するメリットがあまりない。SwingコンポーネントをEclipseのビュー内で動作させているためか、時折描画がおかしくなることもある。Eclipseに拘りがなければSwing版をスタンドアロンアプリケーションとして使用してもよいかもしれない。