Webサービスのテストとsoapui

satonaoki2006-04-22


最近、本業ではBPM(Oracle BPEL Process Manager)やESB(Oracle ESB)といったSOA関連製品をやってまして、Webサービスのテスト実行をしたり、実際に送受信されるSOAPメッセージを確認したい場合があります。

ラクル製品で言えば、OracleAS Web ServicesのWSDLのURLにブラウザでアクセスすると表示されるテスト実行画面や、Oracle BPEL Console(Oracle BPEL Process Managerの管理ツール)のテスト実行画面といった、実行環境が提供するテスト機能があります。SOAPメッセージのキャプチャには、Apache AxisのTCPモニタや、これと同等の機能を提供するOracle BPEL Process Managerのobtunnelコマンドあたりが便利です。

また、JDeveloper 10.1.3で、WSDLをもとにWebサービス・プロキシを自動生成して、Webサービスのクライアントをさくっと作ったり、HTTPアナライザで送受信されるSOAPメッセージをキャプチャしたり、といった感じで、開発環境サイドでテストすることもできます。

別の方法として、特定の実行環境や開発環境に依存しないツールを使う方法もあります。たとえば、soapuiを使うと、既存のWebサービスに対してテスト実行、SOAPメッセージのキャプチャ、JUnitテスト・ケースの生成、負荷テストの実行などを簡単に行えます。

テスト実行やSOAPメッセージのキャプチャは、soapuiが提供するJavaアプリケーション上で行います。

JUnitテスト・ケースの生成は、JDeveloper 10.1.3でWebサービス・プロキシでも生成できますが、soapuiだといくつかのResponse Assertionが追加されているので便利かも。


負荷テストの実行は、これまではJMeterの"SOAP/XML-RPC Request"を使ってまして、これはこれで必要十分な機能を提供しています。soapuiのページには、JMeterとの比較情報もあり、soapuiサイドも意識しているようですね。soapuiの負荷テスト機能はまだ本格的には使っていませんが、今度負荷テストを行う時には、試してみようかと思ってます。

この手のツール、他にもいいものをご存知の方いましたら、是非教えてください。