ReadyAPI SoapUI NG Pro は、オープンソースで提供されていた SoapUI 製品の有償版として販売されています。
Windows、Linux、MacOS のマルチプラットフォームに対応し、REST API、SOAP API の 機能テストをコーディング レスで設定し、テストを実行できます。レスポンスは、JSON、XML で取得でき、結果に対するチェック機能も提供されています。
今回は、REST API の機能テストの手順を紹介します。
1. Ready API を起動し、File | New | Project をファイルメニューから選択します。
2. 下記の Google Map API の URL を Service Endpoint フィールドに指定し、[OK] ボタンをクリックします。
http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false
以下のダイアログが表示されるので、”Continue to describe your API” を選択して [OK] ボタンをクリックします。
SoapUI が、サービス、リソース、メソッド、現在のリクエストを含むプロジェクトを作成し、リクエスト エディターを開きます。
3. Parameter テーブルで、Path から異なるクエリの引数を自動的に抽出します。
① Request エディター内の緑の矢印のボタンをクリックします。
② サービスから返された XML の出力を確認することができます。
③ XML エディターが表示されない場合は、Response パネルの左のスクロールボタンをクリックして、XML タブを表示させ、クリックしてください。
正しいリクエストが返されていることが確認できましたので、このリソースに対する機能テストを作成していきます。
4. Add to TestCase ボタンをクリックすると、TestSuite、TestCase の名前が追加されます。デフォルトの設定で [OK] ボタンをクリックしていきます。
Projects から SoapUI NG Pro に移行し、TestCase が作成されたことを確認いただけます。
5. 次に、JSON でレスポンスを取得します。
① Projects をクリックします。
② REST のリクエストをクリックします。
③ Resource の情報を、”/maps/api/geocode/json” に変更します。
④ 実行ボタンをクリックします。
実行結果として、JSON フォーマットのレスポンスを確認できます。
6. レスポンスに対して、検証するための Assertion を追加します。
この例では、レスポンスが設定した時間内に返されているかを検証します。
① SoapUI NG Pro をクリックします。
② Add Assertion をクリックします。
③ ダイアログが表示されますので、SLA を選択し、④ のResponse SLA をクリックして、[Add] ボタンをクリックします。
7. 任意のレスポンス時間を指定します。デフォルトでは 200ms が設定されていますが、ここではエラーケースを確認するため、50ms に設定します。
8. 次に別の Assertion を追加します。[Add Assertion] ボタンをクリックし、ダイアログを表示させます。Property Content – XPath Match の順番で選択し、[Add] ボタンをクリックします。
9. XPath Expression の下のボタンをクリックし、Select XPath のダイアログでは、”lat” を選択します。
10. Assertion を保存すると、2 つの実行結果が以下のように表示されます。
Response SLA については、期待値 50ms に対し、実際には56ms かかっているため、エラーとして検出されています。
XPath Match については、期待値と結果値が一致するため、成功となっています。
SoapUI NG Pro では、他にもデータ駆動型のテストや、テストカバレッジの取得など、豊富な機能を備えていますので、14 日間利用可能な評価版を使用してお試しください。