このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2013年1月29日火曜日

第2回:REST API テスト効率化 - テスト結果の自動検証

今回は、SOAtest を使用して REST API のテスト結果を自動検証する方法をサクッと紹介します。
前回のおさらいは、 『第1回:REST API テスト効率化 - テスト作成/実行』 を参照してください。

■目的
・REST API テスト結果の自動検証

手順:
 ・テスト結果検証ツールの追加
 ・テスト結果の検証項目の設定
 ・テスト実行/検証結果の確認

■テスト概要
郵便番号検索APIを開発していると仮定し、この機能のテストを Parasoft SOAtest を使用して行います。
今回は、例として、Yahoo Japan 様が公開している REST API (郵便番号検索API)をテストします。

郵便番号 '108-8588' で検索し、結果の検証を行います。
テスト結果で取得する値は、弊社(テクマトリックス 株式会社)の名前や住所などの情報です。
※2013.01.24時点での Yahoo Japan 様のAPI 仕様に基づいて記載しています。

■それでは、早速はじめましょう。

1. SOAtest の起動

 1-1. SOAtest を起動します。

2. テスト結果検証ツールの追加

2-1. テストクライアントの実行結果に対して、検証ツールで検証を行うようにします。
 [Test 1: REST Client] を右クリックし、シュートカット メニューより [出力の追加] を選択します。




 2-1. ダイアログが開きますので、次の項目を選択し、[終了] ボタンをクリックしてツールを追加します。


■ 左欄 : [レスポンス] より [トラフィック] を選択
このダイアログからは、これから追加するツールを [Test 1: REST Client] のリクエスト、レスポンス、または両方の何処に対して適用するのかを選択できます。
今回は、テスト結果を検証したいので、[レスポンス] を選択します。

■ 右欄 : [Validation] より [JSON Assertor] を選択
今回、検証するメッセージ形式は JSON なので、JSON Assertor を選択します。
仮に、検証するメッセージ形式が XML である場合は、 XML Assertor を選択します。

 2-2. [JSON Asserot] が [Test 1: REST Client] に連結されていることを確認します。


ここまでの操作で、テストクライアントと検証ツールの連結は完了です。

3. テスト結果の検証項目設定

3-1. 追加した JSON Assertor (検証ツール)を開き、[Test 1: REST Client] テスト結果の検証項目を設定していきます。
[設定] タブを選択して [追加] ボタンをクリックします。





 3-2. ダイアログから様々な種類の検証方法を選択できますが、
今回は、テスト結果(レスポンス)の値を検証するため [Value Assertion] より [Value Assertion] を選択し、[次へ] をクリックします。

 3-3. 次に、ツリー ビューで表示されたテスト結果(レスポンス)の要素の一覧から、検証対象とする項目を選択します。
今回は、[PostalName] を選択し、[終了] をクリックします。

3-4. 今回は、テスト結果(レスポンス)の [PostalName] の期待値として、[期待値] に 'test' と入力し、故意にテストを失敗させるように設定します。

4. テスト実行

4-1. [Test 1: REST Client] を選択し、テストを実施します。


4-2. 想定通り、テストが失敗していることを確認します。


5. テスト結果の確認

5-1. [Test 1: REST Client] を右クリックし、[タスクの表示] を選択します。

 5-2. [品質タスク] ビューに問題の詳細が表示されますので、エラー メッセージをダブルクリックします。

 5-3. [詳細] ビューに問題の詳細が表示されます。

次の理由でテストが失敗したことが解ります。
 ・ 検証ツールの期待値: test
 ・ 実際のテスト結果: テクマトリックス 株式会社


いかがでしたか?


■ まとめ

今回は、REST API のテスト結果を自動検証する方法を紹介しました。
サクッと完了ですね。

■ 次回予告

次回は、回帰テストの作成方法について紹介しますのでお楽しみに!